Ad Widget

Collapse

Производительность серверов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • joker
    Junior Member
    • Apr 2009
    • 19

    #1

    Производительность серверов

    Уважаемое сообщество, кто сталкивался может.

    Железо
    CPU: Intel(R) Xeon(R) CPU X3210 @ 2.13GHz
    Cores per package: 4
    RAM 8Gb
    OS FreeBSD 7.2

    На 2х аналогичных машинках подняты:
    1. Mysql для Zabbix'a
    2. Zabbix 1.6.5 и Apache+nginx+php-акселератор

    На первой машине мускуль ест 380% процессора

    На второй машине с производительностью все нормально.

    Тестируется:
    ZABBIX сервер запущен Да -
    Количество узлов сети (контролируется/не контролируется/шаблоны/удалено) 9434 9185 / 161 / 88
    Количество элементов данных (активных/неактивных/не поддерживается)[trapper] 106419 9760 / 96606 / 53
    Количество триггеров (активированных/деактивированных)[истина/неизвестно/ложь] 9726 9315 / 411 [158 / 23 / 9134]
    Количество пользователей 36 7
    Требуемое быстродействие сервера, новые значения в секунду 112.6742 -

    Такое малое количество активных элементов обусловлено и так низкой производительностью, а хочется больше.

    Из практики - можно ли решить проблему бешенной нагрузки мускуля софтовыми средствами?
    Поможет ли внедрение zabbix-прокси(одного или двух)?
    Или менять железку под мускуль и ставить что-нибудь 4 процессорное за 100тыщмильёнов
  • codework
    Junior Member
    • May 2009
    • 6

    #2
    А на postgresql пробовали?

    Comment

    • joker
      Junior Member
      • Apr 2009
      • 19

      #3
      мне казалось что иннодб производительнее.
      плюс по постгресу нет знаний(

      Comment

      • Alexei
        Founder, CEO
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Sep 2004
        • 5654

        #4
        Originally posted by joker
        Из практики - можно ли решить проблему бешенной нагрузки мускуля софтовыми средствами?
        Поможет ли внедрение zabbix-прокси(одного или двух)?
        Или менять железку под мускуль и ставить что-нибудь 4 процессорное за 100тыщмильёнов
        Железо вполне адекватно задаче. Обратите внимание на:

        - DB cache (StartDBSyncers)
        - настройки MySQL
        - количество поллеров (StartPollers)
        Alexei Vladishev
        Creator of Zabbix, Product manager
        New York | Tokyo | Riga
        My Twitter

        Comment

        • joker
          Junior Member
          • Apr 2009
          • 19

          #5
          Originally posted by Alexei
          Железо вполне адекватно задаче. Обратите внимание на:

          - DB cache (StartDBSyncers)
          - настройки MySQL
          - количество поллеров (StartPollers)
          А можно уточнить по пунктам рекомендуемые параметры?
          Уже бьемся и так крутим и так - ни в какую.
          Очень большая нагрузка на базу, ее очень сильно увеличивает веб-интерфейс.
          При этом на установленные интервалы снятия параметров(для очень критичных - 30 сек, для критичных 60 сек, для малокритичных 120-600 секунд) реально получаемые значения 1 раз в 15-25 минут, что очень негативно сказывается на оперативном мониторинге.

          Спасибо за понимание.

          Андрей, Уфа

          Comment

          • Hober
            Senior Member
            • Dec 2008
            • 109

            #6
            Originally posted by joker
            А можно уточнить по пунктам рекомендуемые параметры?
            Уже бьемся и так крутим и так - ни в какую.
            Очень большая нагрузка на базу, ее очень сильно увеличивает веб-интерфейс.
            При этом на установленные интервалы снятия параметров(для очень критичных - 30 сек, для критичных 60 сек, для малокритичных 120-600 секунд) реально получаемые значения 1 раз в 15-25 минут, что очень негативно сказывается на оперативном мониторинге.

            Спасибо за понимание.

            Андрей, Уфа

            А для тюнинга MySQL я использовал mysqltunner.
            Да и какое значение StartPollers в конфиге сервера?
            Last edited by Hober; 16-06-2009, 07:38.
            Zabbix Servers - 1
            Zabbix Proxy - 145
            Monitored Servers: ~ 1400

            Comment

            • sersad
              Senior Member
              • May 2009
              • 518

              #7
              Количество узлов сети (контролируется/не контролируется/шаблоны/удалено) 277 218 / 0 / 59
              Количество элементов данных (активных/неактивных/не поддерживается)[trapper] 373518 254407 / 60910 / 58201
              Количество триггеров (активированных/деактивированных)[истина/неизвестно/ложь] 3879 3879 / 0 [10 / 102 / 3767]
              Количество пользователей 3 2
              Требуемое быстродействие сервера, новые значения в секунду 60.274 -

              Два сервера один из них виртуальный.
              На реальном крутится сам Zabbix апач фронтэнд, TclMon и много всего по мелочам. Машинка с двумя оптеронами (суммарно 4 ядра) и 2 гигами оперативы на Ubuntu server 8.10 64bit. Загрузка в пиках не доходит до 150%.
              А на виртуальной машинке, выделено два ядра ксеонов и 4 гига оперативы, 32 гига диска стоит Ubuntu server 9.04 32bit. Путем долгой оптимизации MySQL производительность вполне удовлетворительна, хотя хочется 64 бита и процессорной мощности с 16 гигами озу, так как около 50% временных таблиц создается на диске что ни есть гуд.

              Вот конфиг my.conf может быть он вам поможет
              # * Fine Tuning
              key_buffer = 128M
              max_allowed_packet = 16M
              thread_stack = 128K
              thread_cache_size = 32
              thread_cache = 32
              # This replaces the startup script and checks MyISAM tables if needed
              # the first time they are touched
              myisam-recover = BACKUP
              max_connections = 200
              table_cache = 512
              thread_concurrency = 8

              tmp_table_size = 2048M
              max_heap_table_size = 1536M

              # * Query Cache Configuration
              #
              query_cache_limit = 1M
              query_cache_size = 256M
              query_cache_min_res_unit = 512
              #
              # * Logging and Replication

              long_query_time = 5

              expire_logs_days = 10
              max_binlog_size = 100M


              # * InnoDB

              default-storage-engine=innodb


              innodb_open_files = 500
              innodb_file_per_table
              innodb_buffer_pool_size = 1024M
              innodb_flush_log_at_trx_commit = 2
              innodb_thread_concurrency =8
              innodb_lock_wait_timeout = 500
              interactive_timeout = 20
              back_log = 75
              wait_timeout = 30
              connect_timeout = 10
              часть конфига забикса
              ############ GENERAL PARAMETERS #################
              StartPollers=30

              StartPollersUnreachable=1

              StartPingers=3

              StartDiscoverers=2
              С этими настройками просроченные очереди практически отсутствуют иногда появляется задержки до 1000 значений больше 10 минут, но редко. Обычно их не бывает, а когда бывает так я понимаю все связано с железом которое не успевает ответить на snmp запрос.
              Last edited by sersad; 16-06-2009, 10:31.

              Comment

              • den_crane
                Senior Member
                • Feb 2006
                • 272

                #8
                мне помогло увеличение
                innodb_log_file_size = 64M
                innodb_log_buffer_size = 8M
                после этого надо удалить(переименовать) (после корректного завершения) уже существующие лог файлы
                /var/lib/mysql/ib_logfileXXXX
                он их заново создаст при старте с новым размером


                для поиска долгих запросов
                log-slow-queries = /tmp/slow_queries.log
                long_query_time = 1
                log-queries-not-using-indexes
                но у меня там ничего интересного

                а не смог я победить проблему временных таблиц

                mysql> SHOW global STATUS LIKE '%tmp%';
                +-------------------------+----------+
                | Variable_name | Value |
                +-------------------------+----------+
                | Created_tmp_disk_tables | 79615178 |
                | Created_tmp_files | 5 |
                | Created_tmp_tables | 82072979 |
                +-------------------------+----------+

                Comment

                • Alexei
                  Founder, CEO
                  Zabbix Certified Trainer
                  Zabbix Certified SpecialistZabbix Certified Professional
                  • Sep 2004
                  • 5654

                  #9
                  Originally posted by den_crane
                  а не смог я победить проблему временных таблиц
                  Её не победить. Очень рекомендую держать tmpdir в памяти (tmpfs на 512МБ, например). Ето немедленно отразится на disk IO.
                  Alexei Vladishev
                  Creator of Zabbix, Product manager
                  New York | Tokyo | Riga
                  My Twitter

                  Comment

                  • den_crane
                    Senior Member
                    • Feb 2006
                    • 272

                    #10
                    Originally posted by Alexei
                    Её не победить. Очень рекомендую держать tmpdir в памяти (tmpfs на 512МБ, например). Ето немедленно отразится на disk IO.
                    Скорее всего это вовсе не проблема в моем случае. У меня какбы и нет проблемы с произоводительностью.



                    HTML Code:
                    nag:~ # ll /var/lib/mysql/.tmp/
                    итого 12
                    -rw-rw---- 1 mysql mysql    0 Июн 16 14:04 #sql_181_0.MYD
                    -rw-rw---- 1 mysql mysql 1024 Июн 16 14:04 #sql_181_0.MYI
                    -rw-rw---- 1 mysql mysql    0 Июн 16 14:04 #sql_181_1.MYD
                    -rw-rw---- 1 mysql mysql 1024 Июн 16 14:04 #sql_181_1.MYI
                    -rw-rw---- 1 mysql mysql    0 Июн 16 14:04 #sql_181_2.MYD
                    -rw-rw---- 1 mysql mysql 1024 Июн 16 14:04 #sql_181_2.MYI
                    
                    nag:~ # sar -d 30 2
                    14:08:10          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
                    14:08:40       dev8-0     23,86      9,04   1015,09     42,92      1,08     45,40      3,95      9,43
                    
                    уменьшаю tmp_table_size = 16M
                    
                    стопим все
                    nag:~ # mount tmpfs /var/lib/mysql/.tmp -t tmpfs -o size=100M
                    стартуем
                    ждем 28757:20090616:141426 Deleted 15713 records from history and trends
                    
                    nag:~ # sar -d 30 2
                    14:15:52          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
                    14:16:22       dev8-0     20,33     10,10   1126,54     55,92      0,46     22,87      3,84      7,80
                    
                    вроде как io не поменялся

                    Comment

                    • den_crane
                      Senior Member
                      • Feb 2006
                      • 272

                      #11
                      увиличил с 8M до innodb_log_buffer_size = 16M

                      HTML Code:
                      14:46:44          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
                      14:47:14       dev8-0     18,94     29,29    671,11     36,98      0,57     30,17      3,80      7,20
                      вроде поменьше стало, но в лог последовательная запись.
                      а загрузка процессора mysqld не меняется.

                      Comment

                      • ugh
                        Senior Member
                        • Jun 2009
                        • 296

                        #12
                        всем доброго времени суток, продолжаю поднятую Джокером тему
                        крутили мы крутили, а загруз CPU впринципе все тот же )))
                        на данный момент my.cnf
                        Code:
                        key_buffer_size = 256M
                        join_buffer_size = 8M
                        sort_buffer_size = 16M
                        table_cache = 512
                        thread_cache_size = 20
                        thread_concurrency = 12
                        max_allowed_packet = 8M
                        max_connect_errors = 10
                        query_cache_limit = 8M
                        query_cache_size = 256M
                        query_cache_type = 1
                        memlock
                        tmpdir=/mysql-tmp
                        tmp_table_size = 256M
                        max_heap_table_size = 256M
                        max_connections=75
                        
                        # innodb
                        innodb_data_home_dir = /var/db/mysql
                        innodb_data_file_path = ibdata1:10M:autoextend
                        innodb_log_group_home_dir = /var/db/mysql
                        innodb_log_arch_dir = /var/db/mysql
                        innodb_buffer_pool_size = 3000M
                        innodb_additional_mem_pool_size = 10M
                        innodb_log_file_size = 256M
                        innodb_log_buffer_size = 8M
                        innodb_flush_log_at_trx_commit = 2
                        innodb_lock_wait_timeout = 50
                        mysqltunner советует еще увеличить
                        Code:
                        query_cache_limit
                        query_cache_size
                        join_buffer_size
                        в логах заббикса (и в слоуквери) постоянно проскальзывает
                        Code:
                        [Z3005] Query failed: [1205] Lock wait timeout exceeded; try restarting transaction [update ids set nextid=nextid+1 where nodeid=8 and table_name='history_text' and field_name='id']
                        это от вебморды квери
                        если выключить ее, то остаются
                        Code:
                        select i.itemid,i.key_,h.host,h.port,i.delay,i.description,i.nextcheck,i.type,i.snmp_community,i.snmp_oid,h.useip,h.ip,i.history,i.lastvalue,i.prevvalue,i.hostid,h.status,i.value_type,h.errors_from,i.snmp_port,i.delta,i.prevorgvalue,i.lastclock,i.units,i.multiplier,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.formula,h.available,i.status,i.trapper_hosts,i.logtimefmt,i.valuemapid,i.delay_flex,h.dns,i.params,i.trends,h.useipmi,h.ipmi_port,h.ipmi_authtype,h.ipmi_privilege,h.ipmi_username,h.ipmi_password,i.ipmi_sensor,i.lastlogsize from hosts h, items i where mod(h.hostid,10)=1 and h.status=0 and h.hostid=i.hostid and h.proxy_hostid=0 and h.useip=1 and h.ip='10.7.38.35' and i.key_='icmppingsec' and i.status in (0,3) and i.type=3 and i.nextcheck<=1245211565 and h.hostid between 800000000000000 and 899999999999999;
                        с временем выполнения от 0,05 до 0,3


                        в какую сторону посоветуете дальше рыть?
                        Last edited by ugh; 17-06-2009, 07:28.

                        Comment

                        • Alexei
                          Founder, CEO
                          Zabbix Certified Trainer
                          Zabbix Certified SpecialistZabbix Certified Professional
                          • Sep 2004
                          • 5654

                          #13
                          Originally posted by ugh
                          в логах заббикса (и в слоуквери) постоянно проскальзывает
                          Кажется в 1.6.5 это исправлено.
                          Alexei Vladishev
                          Creator of Zabbix, Product manager
                          New York | Tokyo | Riga
                          My Twitter

                          Comment

                          • mschedrin
                            Senior Member
                            • Jun 2009
                            • 179

                            #14
                            Originally posted by sersad
                            ...
                            Вот конфиг my.conf может быть он вам поможет

                            ...
                            Сколько памяти ест мускул на сервере с такими настройками?

                            Comment

                            • ugh
                              Senior Member
                              • Jun 2009
                              • 296

                              #15
                              Originally posted by mschedrin
                              Сколько памяти ест мускул на сервере с такими настройками?
                              HTML Code:
                              CPU: 95.3% user,  0.0% nice,  2.1% system,  0.0% interrupt,  2.6% idle
                              Mem: 3105M Active, 2935M Inact, 393M Wired, 337M Cache, 214M Buf, 1149M Free
                              нормально все с памятью вроде как

                              Comment

                              Working...