Ad Widget

Collapse

Zabbix 1.8.2 жарит mysql

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sybertuk
    Junior Member
    • Jul 2010
    • 9

    #1

    Zabbix 1.8.2 жарит mysql

    Zabbix генерирует большую загрузку на БД (mysql 5.1), при тысячи контролируемых итемов и 222-ух трегеров нагрузка на БД 18000 Queries per second, что невероятно сильно грузит довольно приличный сервер. На дашборде есть поле "Требуемое быстродействие сервера, новые значения в секунду" у меня там 30, насколько я читал это число отражает среднее количество запросов заббикса к БД, почему вместо 30 запросов/с реально заббикс грузит бд на 18000 запр/с ?
    Конфиг заббикс сервера подрехтовал немного, поллеров побольше поставил, ну и так по мелочи выкрутил кое-что, может что напортачил помогите пожалуйста разобраться.
    Конфиг mysql - за основу был взят шаблон my-innodb-heavy-4G.cnf, из важного ничего не менял, насколько я помню, может только некоторые буферы увеличил. Конфиги прикрепил

    Сервер: depo storm, два четырехядерных ксеона 2.66GHz (xeon 5430), 8GB RAM ECC, sata RAID5

    софт: FreeBSD 7.3 Release; mysql-server-5.1.47; zabbix-server-1.8.2_2,2; zabbix-frontend-1.8.2_2,2; zabbix-agent-1.8.2_2,2; apache-2.2.15_9; phpMyAdmin-3.3.3; php5-5.3.2_1 и по мелочи

    С дашборда:
    Zabbix сервер запущен Да -
    Количество узлов сети (контролируется/не контролируется/шаблоны/удалено) 87 23 / 11 / 53
    Количество элементов данных (активных/неактивных/не поддерживается)[trapper] 1270 917 / 95 / 258
    Количество триггеров (активированных/деактивированных)[истина/неизвестно/ложь] 238 222 / 16 [0 / 2 / 220]
    Количество пользователей 5 1
    Требуемое быстродействие сервера, новые значения в секунду 30.7581 -
  • ugh
    Senior Member
    • Jun 2009
    • 296

    #2
    mysql>show processlist
    в студию

    или mytop поставьте
    и тоже в студию

    Comment

    • dima_dm
      Senior Member
      • Dec 2009
      • 2697

      #3
      Включите log для MySQL
      /etc/my.cnf
      log
      И посмотрите, что это за запросы?

      Comment

      • Sybertuk
        Junior Member
        • Jul 2010
        • 9

        #4
        Originally posted by dima_dm
        Включите log для MySQL
        /etc/my.cnf
        log
        И посмотрите, что это за запросы?
        select-ы и update-ы примерно в равных количествах. фарш какой-то, на мысли пока не наводит

        mysql>show processlist
        прикрепил
        Attached Files

        Comment

        • dima_dm
          Senior Member
          • Dec 2009
          • 2697

          #5
          Посмотрите, может это Housekeeping работает?
          У меня так:
          /etc/zabbix/zabbix_server.conf
          ### Option: HousekeepingFrequency
          # How often Zabbix will perform housekeeping procedure (in hours).
          # Housekeeping is removing unnecessary information from history, alert, and alarms tables.
          # If PostgreSQL is used, suggested value is 24, as it performs VACUUM.
          #
          # Mandatory: no
          # Range: 1-24
          # Default:
          HousekeepingFrequency=24


          А сколько вы процессов запустили?
          /etc/zabbix/zabbix_server.conf
          ### Option: StartPollers
          # Number of pre-forked instances of pollers.
          # You shouldn't run more than 30 pollers normally.
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          StartPollers=20

          ### Option: StartIPMIPollers
          # Number of pre-forked instances of IPMI pollers.
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          # StartIPMIPollers=0

          ### Option: StartPollersUnreachable
          # Number of pre-forked instances of pollers for unreachable hosts.
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          StartPollersUnreachable=5

          ### Option: StartTrappers
          # Number of pre-forked instances of trappers
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          StartTrappers=1

          ### Option: StartPingers
          # Number of pre-forked instances of ICMP pingers.
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          StartPingers=5

          ### Option: StartDiscoverers
          # Number of pre-forked instances of discoverers.
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          StartDiscoverers=0

          ### Option: StartHTTPPollers
          # Number of pre-forked instances of HTTP pollers.
          #
          # Mandatory: no
          # Range: 0-255
          # Default:
          # StartHTTPPollers=1
          Last edited by dima_dm; 15-07-2010, 12:44.

          Comment

          • Sybertuk
            Junior Member
            • Jul 2010
            • 9

            #6
            вначале было подумал что изза хаускипера, но сейчас опять подскочила загрузка на БД (((
            А сколько вы процессов запустили?
            40 запустил, поллеров я побольше чем по умолчанию поставил
            Last edited by Sybertuk; 15-07-2010, 12:56.

            Comment

            • ugh
              Senior Member
              • Jun 2009
              • 296

              #7
              врятли хаускипинг
              на таких маленьких размерах базы и на таком сравнительно хорошем железе
              upd
              ёклмн, из-за него оказывается mysql был под прессингом ) спасибо большое!!! доволен как полосатый слон
              как так ???


              прикрепил
              не показательно к сожалению, совершенно нормально

              а qps такое вы откуда взяли/как считали?
              может с полерами перебор?

              пы: это конечно особого значения не играет, но примерно! оценить кол-во запросов от заббикса можно так "цифра требуемого быстродействия * 4"

              Comment

              • dima_dm
                Senior Member
                • Dec 2009
                • 2697

                #8
                Originally posted by ugh
                пы: это конечно особого значения не играет, но примерно! оценить кол-во запросов от заббикса можно так "цифра требуемого быстродействия * 4"
                Я qps считаю так
                mysqladmin -uroot -pXXXXXXX status|cut -f9 -d":"
                На моей системе, среднее значение qps получается "цифра требуемого быстродействия * 5". Оценка даёт достаточно точное представление.

                Comment

                • Sybertuk
                  Junior Member
                  • Jul 2010
                  • 9

                  #9
                  ugh: я слишком быстро поспешил обрадоваться дело не в хаускипере. Я отредкатировал пост

                  а qps такое вы откуда взяли/как считали?
                  в субд смотрю каманда status. Можно еще mysqladmin -u -p status;
                  вот
                  mysql> status;
                  --------------
                  mysql Ver 14.14 Distrib 5.1.47, for portbld-freebsd7.3 (amd64) using 5.2

                  Connection id: 410
                  Current database:
                  Current user: root@localhost
                  SSL: Not in use
                  Current pager: more
                  Using outfile: ''
                  Using delimiter: ;
                  Server version: 5.1.47-log FreeBSD port: mysql-server-5.1.47
                  Protocol version: 10
                  Connection: Localhost via UNIX socket
                  Server characterset: utf8
                  Db characterset: utf8
                  Client characterset: utf8
                  Conn. characterset: utf8
                  UNIX socket: /tmp/mysql.sock
                  Uptime: 24 min 53 sec

                  Threads: 125 Questions: 30544242 Slow queries: 0 Opens: 155 Flush tables: 1 Open tables: 148 Queries per second avg: 20458.300
                  --------------

                  уменьшил, результата нет. Поллеры теперь выглядят так:
                  ### Option: StartPollers
                  #<----->Number of pre-forked instances of pollers.
                  #<----->You shouldn't run more than 30 pollers normally.
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  StartPollers=30

                  ### Option: StartIPMIPollers
                  #<----->Number of pre-forked instances of IPMI pollers.
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  # StartIPMIPollers=3

                  ### Option: StartPollersUnreachable
                  #<----->Number of pre-forked instances of pollers for unreachable hosts.
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  StartPollersUnreachable=15

                  ### Option: StartTrappers
                  #<----->Number of pre-forked instances of trappers
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  StartTrappers=10

                  ### Option: StartPingers
                  #<----->Number of pre-forked instances of ICMP pingers.
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  StartPingers=10

                  ### Option: StartDiscoverers
                  #<----->Number of pre-forked instances of discoverers.
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  StartDiscoverers=3

                  ### Option: StartHTTPPollers
                  #<----->Number of pre-forked instances of HTTP pollers.
                  #
                  # Mandatory: no
                  # Range: 0-255
                  # Default:
                  StartHTTPPollers=5

                  Comment

                  • dima_dm
                    Senior Member
                    • Dec 2009
                    • 2697

                    #10
                    Уменьшайте количество запущенных (StartPollersUnreachable, StartIPMIPollers, StartPollers и т.д.) для примера, возьмите мои значения из предыдущего поста.
                    Если вы не используете проверки по IPMI, то
                    StartIPMIPollers=0
                    и т.д
                    Исключение StartTrappers.
                    Параметр ZABBIX сервер запущен на странице Dashboard определяется по активности порта 10051 (Trappers)
                    Нужно чтобы хотя бы один Trappers был запущен, и слушал порт 10051 и номер порта совпадал в конфигурации Web интерфейса
                    /etc/zabbix/zabbix_server.conf
                    StartTrappers=1
                    /var/www/html/zabbix/conf/zabbix.conf.php
                    $ZBX_SERVER_PORT = "10051";

                    Cмотрите как уменьшается qps в MySQL

                    Comment

                    • Sybertuk
                      Junior Member
                      • Jul 2010
                      • 9

                      #11
                      Originally posted by dima_dm
                      Уменьшайте количество запущенных (StartPollersUnreachable, StartIPMIPollers, StartPollers и т.д.) для примера, возьмите мои значения из предыдущего поста.
                      Если вы не используете проверки по IPMI, то
                      StartIPMIPollers=0
                      и т.д
                      Исключение StartTrappers.
                      Параметр ZABBIX сервер запущен на странице Dashboard определяется по активности порта 10051 (Trappers)
                      Нужно чтобы хотя бы один Trappers был запущен, и слушал порт 10051 и номер порта совпадал в конфигурации Web интерфейса
                      /etc/zabbix/zabbix_server.conf
                      StartTrappers=1
                      /var/www/html/zabbix/conf/zabbix.conf.php
                      $ZBX_SERVER_PORT = "10051";

                      Cмотрите как уменьшается qps в MySQL
                      спасибо за совет, резльтаты дали инфомарцию к размышлению.
                      Выяснил что загрузка на БД начинает бешено расти, когда есть хотя бы один пингер StartPingers. Если поставить StartPingers=0 то загрузка в норме 90 запросов/с. Не знаю правда что с этой инфомарцией пока делать

                      Comment

                      • zalex_ua
                        Senior Member
                        Zabbix Certified Trainer
                        Zabbix Certified SpecialistZabbix Certified Professional
                        • Oct 2009
                        • 1286

                        #12
                        Originally posted by Sybertuk
                        Не знаю правда что с этой инфомарцией пока делать
                        может попробовать создать новую пустую базу данных (например zabbixtest), так как описано в документации и переключить на эту базу сам сервер, вернуть параметры конфига пуллеров заббикс-сервера в дефолтные (сразу или потом) и убедится что в таком состоянии все нормально и запросов должно быть очень мало.
                        Если так тогда может у вас в БД ошибочно "завалялись" какие то Итемы с очень малым интервалом обновления, и может это какраз Итемы которые работают по ICMP?
                        я бы так действовал.

                        Comment

                        • a.vaskin
                          Junior Member
                          • Jul 2010
                          • 22

                          #13
                          Отредактируй items. Начни с чистки мониторинга ненужных параметров, потом время update. База будет подчищаться после disable/delete items.

                          Comment

                          Working...