Ad Widget

Collapse

Проблемы с отображением на дашборде

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • GeorgeKup
    Member
    • Nov 2019
    • 98

    #1

    Проблемы с отображением на дашборде

    Первоначальные условия:

    ОС RHEL 7.6 Zabbix 4.4.6. nginx и zabbix сервер на одном сервере , база данных (mariadb 10.4) на другом сервере.
    Оперативная память: на сервере - 16 Гб, на базе данных - 32 Гб. Количество узлов - 600. Количество элементов данных - 10000.
    Конфигурационный файл mariadb:
    # path
    datadir = /var/lib/mysql
    # tmpdir = /dev/shm
    #pid-file = /var/run/mysqld/mysqld.pid
    #socket = /var/run/mysqld/mysqld.sock
    basedir = /usr
    lc-messages-dir = /usr/share/mysql
    # network
    connect_timeout = 60
    wait_timeout = 28800
    max_connections = 3000
    max_allowed_packet = 256M
    max_connect_errors = 1000
    #interactive_timeout<--><------>= 180
    #net_read_timeout<-----><------>= 900
    #net_write_timeout<----><------>= 900
    # limits
    tmp_table_size = 1G
    max_heap_table_size = 1G
    table_open_cache = 1024
    # logs
    # general_log_file<----><------>= /tmp/mysql.log
    # general_log<-><------><------>= 1
    slow_query_log<><------><------>= ON
    log_error = /tmp/mysql-error.log
    slow_query_log_file = /tmp/mysql-slow.log
    slow_query_log = 1
    long_query_time = 5
    # innodb
    ################################################## ###############################
    #query_cache_type=1
    #query_cache_size=2G
    query_cache_type=0
    query_cache_size=0
    query_cache_limit=1M
    innodb_buffer_pool_instances=21
    join_buffer_size=512K
    ################################################## ###############################
    thread_cache_size=16
    innodb_data_file_path = ibdata1:128M;ibdata2:128M:autoextend:max:4096M
    innodb_file_per_table = 1
    innodb_status_file = 1
    innodb_buffer_pool_size = 12G
    innodb_flush_method = O_DIRECT
    innodb_io_capacity = 2000
    innodb_flush_log_at_trx_commit = 2
    innodb_log_buffer_size = 16M
    innodb_strict_mode<----><------>= 0
    # innodb_use_native_aio><------>= 0
    innodb_log_file_size<--><------>= 1G
    innodb_buffer_pool_instances<-->= 12
    # performance_schema<--><------>= ON

    в конфигурационном файле zabbix_server изменены только значения: StartPollers=50; StartPollersUnreachable=10

    В логе медленных запросов много записей вида:

    # Time: 200304 9:12:08
    # User@Host: zabbix[zabbix] @ [IP]
    # Thread_id: 834904 Schema: zabbix QC_hit: No
    # Query_time: 5.098264 Lock_time: 0.000122 Rows_sent: 0 Rows_examined: 3668171
    # Rows_affected: 0 Bytes_sent: 331
    use zabbix;
    SET timestamp=1583302328;
    SELECT p.eventid,p.objectid,p.clock,p.ns,p.name,p.severit y FROM problem p WHERE p.source='0' AND p.object='0' AND NOT EXISTS (SELECT NULL FROM functions f,items i,hosts_groups hgg LEFT JOIN
    rights r ON r.id=hgg.groupid AND r.groupid=15 WHERE p.objectid=f.triggerid AND f.itemid=i.itemid AND i.hostid=hgg.hostid GROUP BY i.hostid HAVING MAX(permission)<2 OR MIN(permission) IS NULL OR
    MIN(permission)=0) AND NOT EXISTS (SELECT NULL FROM event_suppress es WHERE es.eventid=p.eventid) AND (p.r_eventid IS NULL OR p.r_clock>1583302023) ORDER BY p.eventid DESC LIMIT 1001;

    MySQL использует только 6 Гб памяти.


    Проблема:

    Медленно (минуту и более) открываются дашбоды. Причем, что интересно - если пользователь имеет права на всё, т.е. админ,
    то его дашборд открывается за приблизительно 3 секунды, если пользователь имеет ограничения по правам, то его
    дашборд открывается минуту и более. Изменение параметров конфигурации MySQL в сторону увеличения параметров
    ничего не дало. Перевод на гораздо более мощное железо базы данных ничего не дало.


  • GeorgeKup
    Member
    • Nov 2019
    • 98

    #2
    Запросы вида

    SELECT count(itemid) AS history_uint FROM history_uint WHERE itemid NOT IN (SELECT itemid FROM items WHERE status='0');

    при почти пустой базе проходят за 12 минут

    Comment

    Working...