Ad Widget

Collapse

Open table count растет

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MaksimsE
    Junior Member
    • Nov 2017
    • 23

    #1

    Open table count растет

    Заметил, что количество открытых таблиц непрерывно растет. Достигая заданного максимума в 1024 Zabbix начинает накапливать cache и данные в базу попадают с очень большой задержкой, до нескольких часов.

    Почему количество открытых таблиц в данный момент всегда растет и как это исправить? В самой базе Zabbix 147 таблиц.

    Установленный порог:

    MariaDB [zabbix]> select @@table_open_cache;
    +--------------------+
    | @@table_open_cache |
    +--------------------+
    | 1024 |
    +--------------------+
    1 row in set (0.00 sec)

    В данный момент:

    MariaDB [zabbix]> show status like 'Open_tables';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Open_tables | 682 |
    +---------------+-------+
    1 row in set (0.00 sec)

    Сейчас проблем нет (682/1024).

    Собственно конфиг my.cnf:

    innodb_flush_log_at_trx_commit=0
    skip-name-resolve
    datadir=/db/mysql
    slow_query_log = 1
    long_query_time = 10
    log_output = FILE
    connect_timeout = 60
    wait_timeout = 10
    max_connections = 20000
    max_allowed_packet = 512M
    max_connect_errors = 2000
    tmp_table_size = 512M
    max_heap_table_size = 256M
    table_cache = 1024
    default_storage_engine=InnoDB
    innodb_file_per_table = 1
    innodb_status_file = 1
    innodb_additional_mem_pool_size = 128M
    innodb_buffer_pool_instances = 20
    innodb_buffer_pool_size = 20G # Значение этого параметра должно быть не более 60% от объема ОЗУ на сервере
    innodb_flush_method = O_DIRECT
    innodb_io_capacity = 2000
    innodb_flush_log_at_trx_commit = 2
    innodb_support_xa = 0
    innodb_log_buffer_size = 2G
    innodb_write_io_threads = 16
    innodb_read_io_threads = 16
    innodb_lock_wait_timeout = 500
    event_scheduler = 1
    query_cache_type = 1
    query_cache_size = 64M
    join_buffer_size=16M
    query_cache_limit=64M
    sort_buffer_size=2M
    read_buffer_size=2M
    read_rnd_buffer_size=4M
    key_buffer = 256M
    key_buffer_size=64M
    open_files_limit = 100000
    thread_cache_size = 100
  • Gabalino
    Senior Member
    • Mar 2013
    • 103

    #2
    В моей инсталляции вполне хватает 2000. Больше смущает что у Вас 20000 подключений и всего 20ГБ кэша, а также сначала
    innodb_flush_log_at_trx_commit=0
    потом
    innodb_flush_log_at_trx_commit = 2

    Comment

    • MaksimsE
      Junior Member
      • Nov 2017
      • 23

      #3
      Gabalino,
      Спасибо за отзыв.

      Max_used_connections у меня 302 на данный момент. Uptime базы чуть более суток.

      Threads_cached | 80 |
      | Threads_connected | 27 |
      | Threads_created | 4666 |
      | Threads_running | 13 |

      innodb_flush_log_at_trx_commit поправил, теперь 0.

      Базу пока не перезапускал.

      History syncer в данный момент 100%:

      9529 ? S 31:58 /usr/sbin/zabbix_server: history syncer #1 [synced 38815 items in 60.380606 sec, syncing history]
      9531 ? S 31:14 /usr/sbin/zabbix_server: history syncer #2 [synced 39635 items in 61.959868 sec, syncing history]

      Всего у меня StartDBSyncers=2.

      И в данный момент в базу данные поступают с опозданием.

      Активные запросы в данный момент:

      Id User Host/IP DB Time Cmd Query or State
      -- ---- ------- -- ---- --- ----------
      234579 zabbix localhost zabbix 0 Query insert into history_uint (itemid,clock,ns,value) values (3279102,1511989601,189027
      539892 zabbix localhost zabbix 0 Query insert into history_uint (itemid,clock,ns,value) values (514374,1511989604,9282724
      628735 zabbix localhost zabbix 0 Query show full processlist
      631484 zabbix localhost zabbix 0 Query UPDATE sessions SET lastaccess='1511992131' WHERE sessionid='372861b1ba8c56b5

      Завтра перезапущу базу с новыми параметрами и посмотрим.

      Может еще что-то порекомендуете?

      Comment

      • Gabalino
        Senior Member
        • Mar 2013
        • 103

        #4
        1) уменьшите max_connections до 400, чтоб не расходовать оперативную память зря.
        2) сколько NVPS в zabbix, есть ли очередь?
        3) какая дисковая подсистема?
        4) попробуйте утилиту mysqltuner.pl

        Comment

        • MaksimsE
          Junior Member
          • Nov 2017
          • 23

          #5
          1) Уменьшил пока до 2000, т.е. в 10 раз, чтобы сразу В 50 раз не умньшать. Оперативки свободной у меня около 30G.
          2) 1110 NVPS. В очереди за последние 12 часов максиум 5.
          3) RAID1 из двух Samsung SSD 850 PRO 1TB, XFS.
          4) Уже смотрю, спасибо.

          Comment

          • Gabalino
            Senior Member
            • Mar 2013
            • 103

            #6
            Посмотрите графики zabbix сервера, для 1к nvps, думаю, нужно больше поллеров - т.е. количество данных больше количества поллеров, поэтому данные сохраняются в кэше zabbix сервера и не сразу попадают в БД
            Last edited by Gabalino; 30-11-2017, 10:31.

            Comment

            • MaksimsE
              Junior Member
              • Nov 2017
              • 23

              #7
              Загруженность поллеров до 20% по графикам за сутки.
              У меня есть подозрение, что LLD, который у меня раз в день, запускается одновременно. Интересно, что я не нашел инфы какой поллер выполняет LLD. Discovery poller у меня всегда почти 0%, discovery отключен вообще, но есть много LLD.

              Comment

              • Semiadmin
                Senior Member
                • Oct 2014
                • 1625

                #8
                Originally posted by MaksimsE
                З Интересно, что я не нашел инфы какой поллер выполняет LLD. Discovery poller у меня всегда почти 0%, discovery отключен вообще, но есть много LLD.
                Полагаю, что LLD выполняются теми же процессами, что и обычные однотипные им проверки. Т.е. если тип LLD Zabbix agent - то это poller, если Zabbix agent (active) или Zabbix trapper - то trapper.

                Comment

                Working...