Ad Widget

Collapse

Беда с секционированием

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vanyadog
    Junior Member
    • Jun 2018
    • 8

    #1

    Беда с секционированием

    Добрый день.
    Заббикс сервер Zabbix 3.4.4


    Количество активированных узлов сети 1492
    Количество активированных элементов данных 144339
    Количество активированных триггеров 126659
    Требуемое быстродействие сервера, новые значения в секунду 964.09

    Размер бд ~ 800 Гб

    Секционирование настроено по этому мануалу https://www.zabbix.org/wiki/Docs/how...l_partitioning

    Все было нормально, но последние 2 дня заббикс зависает в 4 утра (время создания новых партиций)

    Отключил планировщик в mysql, и попробовал создать новые разделы руками (через вызов процедур), видно что mysql зависает на этапе создания разделов для таблиц history (может и не зависает, но консоль блокируется на очень большое время, после 3 часов прервал процесс)

    Если посмотреть в processlist mysql, то видно
    | 38863 | Sending data | select itemid,min(clock) from history_uint group by itemid | 36650 | 0 |
    подозреваю что причина в этом

    т.е. zabbix "работает" с этой таблицей и поэтому я не могу создать раздел

    Кто-нибудь сталкивался с подобным? Дадите какой-нибудь совет?


    Логи zabbix показывают следующее
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18892]: ERROR [file:lld_item.c,line:3694] Something impossible has just happened.
  • kernbug
    Senior Member
    • Feb 2013
    • 330

    #2
    Originally posted by vanyadog
    Добрый день.
    Заббикс сервер Zabbix 3.4.4


    Количество активированных узлов сети 1492
    Количество активированных элементов данных 144339
    Количество активированных триггеров 126659
    Требуемое быстродействие сервера, новые значения в секунду 964.09

    Размер бд ~ 800 Гб

    Секционирование настроено по этому мануалу https://www.zabbix.org/wiki/Docs/how...l_partitioning

    Все было нормально, но последние 2 дня заббикс зависает в 4 утра (время создания новых партиций)

    Отключил планировщик в mysql, и попробовал создать новые разделы руками (через вызов процедур), видно что mysql зависает на этапе создания разделов для таблиц history (может и не зависает, но консоль блокируется на очень большое время, после 3 часов прервал процесс)

    Если посмотреть в processlist mysql, то видно
    | 38863 | Sending data | select itemid,min(clock) from history_uint group by itemid | 36650 | 0 |
    подозреваю что причина в этом

    т.е. zabbix "работает" с этой таблицей и поэтому я не могу создать раздел

    Кто-нибудь сталкивался с подобным? Дадите какой-нибудь совет?


    Логи zabbix показывают следующее
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18807]: ERROR [file:lld_item.c,line:716] Something impossible has just happened.
    zabbix_server [18892]: ERROR [file:lld_item.c,line:3694] Something impossible has just happened.
    Здравствуйте,

    Какое у Вас количество StartDBSyncers в конфигурации Zabbix Server, есть ли медленные запросы в логах mysql и какие блокировки активны в момент выполнения ротации партиций?

    Comment

    • vanyadog
      Junior Member
      • Jun 2018
      • 8

      #3
      StartDBSyncers осталось в дефолтном значении
      медленные запросы за сегодня
      # Time: 2018-06-26T15:36:24.087087Z
      # User@Host: zabbix[zabbix] @ [172.16.27.201] Id: 254411
      # Schema: zabbix Last_errno: 0 Killed: 0
      # Query_time: 63559.524771 Lock_time: 0.001895 Rows_sent: 38820 Rows_examined: 38820 Rows_affected: 0
      # Bytes_sent: 854113
      SET timestamp=1530027384;
      select itemid,min(clock) from history group by itemid;
      # Time: 2018-06-26T18:16:49.952491Z
      # User@Host: zabbix[zabbix] @ [172.16.27.201] Id: 254411
      # Schema: zabbix Last_errno: 0 Killed: 0
      # Query_time: 9625.842999 Lock_time: 0.001281 Rows_sent: 27750 Rows_examined: 27750 Rows_affected: 0
      # Bytes_sent: 610621
      SET timestamp=1530037009;
      select itemid,min(clock) from history_str group by itemid;
      # Time: 2018-06-26T18:53:16.755244Z
      # User@Host: zabbix[zabbix] @ [172.16.27.201] Id: 346834
      # Schema: zabbix Last_errno: 0 Killed: 0
      # Query_time: 12.972787 Lock_time: 0.000178 Rows_sent: 20 Rows_examined: 1285607 Rows_affected: 0
      # Bytes_sent: 1239
      SET timestamp=1530039196;
      SELECT DISTINCT e.eventid,e.clock,e.ns,e.objectid,er1.r_eventid FROM events e LEFT JOIN event_recovery er1 ON er1.eventid=e.eventid WHERE e.source='0' AND e.object='0' AND e.o<='8308452' AND e.value='1' ORDER BY e.eventid DESC LIMIT 20;

      насчет блокировок, в конфиге включена опция skip-external-locking.

      Comment

      • kernbug
        Senior Member
        • Feb 2013
        • 330

        #4
        Originally posted by vanyadog
        StartDBSyncers осталось в дефолтном значении


        насчет блокировок, в конфиге включена опция skip-external-locking.
        Здравствуйте,

        В таком случае по порядку:
        1. Загруженность дисковой подсистемы (iostat/iotop).
        2. Блокировки в момент создания партиций, посмотреть через innotop (shift+k);

        Comment

        • vanyadog
          Junior Member
          • Jun 2018
          • 8

          #5
          Загруженность дисков

          Total DISK READ : 1989.77 K/s | Total DISK WRITE : 917.76 K/s
          Actual DISK READ: 1989.77 K/s | Actual DISK WRITE: 1010.31 K/s
          TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
          31687 be/4 mysql 1989.77 K/s 0.00 B/s 0.00 % 97.24 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
          783 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.87 % [jbd2/sdc1-8]
          23451 be/4 mysql 0.00 B/s 131.11 K/s 0.00 % 0.12 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
          23423 be/4 mysql 0.00 B/s 200.52 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
          23424 be/4 mysql 0.00 B/s 200.52 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
          23425 be/4 mysql 0.00 B/s 185.10 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
          23426 be/4 mysql 0.00 B/s 200.52 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

          Дальше были нули

          Блокировки
          WThread Waiting Query WWait BThread BRowsMod BAge BWait BStatus Blocking Query
          Но, это на данный момент, партиции должны создаваться в 04:00, сегодня проверю и напишу


          Очень похоже что диск не справляется.

          Comment

          • vanyadog
            Junior Member
            • Jun 2018
            • 8

            #6
            Добрый день, прошу прощения за паузу, решил отложить проблему в долгий ящик.

            Мое предположение выше неверное, как мне сказали там СХД, значит со скоростью чтения/записи проблем быть недолжно.

            Сегодня ночью попробовал собрать данные
            iotop --only
            Total DISK READ : 371.20 K/s | Total DISK WRITE : 494.94 K/s
            Actual DISK READ: 371.20 K/s | Actual DISK WRITE: 614.81 K/s
            TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
            1576 be/4 mysql 371.20 K/s 0.00 B/s 0.00 % 89.99 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
            822 be/3 root 0.00 B/s 3.87 K/s 0.00 % 0.40 % [jbd2/dm-1-8]
            1409 be/4 mysql 0.00 B/s 38.67 K/s 0.00 % 0.05 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
            1357 be/4 mysql 0.00 B/s 123.73 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
            1358 be/4 mysql 0.00 B/s 77.33 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
            1359 be/4 mysql 0.00 B/s 108.27 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
            1360 be/4 mysql 0.00 B/s 92.80 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
            1381 be/4 mysql 0.00 B/s 50.27 K/s 0.00 % 0.00 % mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

            Простой запуск innotop
            Uptime MaxSQL ReplLag QPS Cxns Run Miss Lock Tbls Repl SQL
            8d 1d0h 262.10 351 9 37.70 9 1989 Off SELECT history

            Смотрю блокировки (shift+k)
            WThread Waiting Query WWait BThread BRowsMod BAge BWait BStatus Blocking Query

            Блокировок нет.

            Обнаружил что у меня не отключен housekeeper.
            В конфиге настройки для него стоят дефолтные

            HousekeepingFrequency=1
            MaxHousekeeperDelete=5000
            Правильно ли я понимаю что все дело именно в housekeeper’е (т.е. он запускается, пытается очистить историю, и не успевает закончить к началу создания партиций)?
            Attached Files

            Comment

            Working...