Ad Widget

Collapse

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

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ugh
    Senior Member
    • Jun 2009
    • 296

    #46
    Originally posted by den_crane
    Ага сделал '.DBcondition('t.triggerid+0',$available_triggers)
    вроде и у меня стало шустрее
    действительно, стало лучше

    но в слоуквери теперь ловлю:
    1 место
    Code:
    SELECT DISTINCT n.nodeid, n.name as node_name, h.hostid, h.host, min(r.permission) as permission, ug.userid FROM hosts h LEFT JOIN hosts_groups hg ON hg.hostid=h.hostid LEFT JOIN groups g ON g.groupid=hg.groupid LEFT JOIN rights r ON r.id=g.groupid LEFT JOIN users_groups ug ON ug.usrgrpid=r.groupid and ug.userid=800800000000013 LEFT JOIN nodes n ON (h.hostid div 100000000000000)=n.nodeid WHERE (h.hostid div 100000000000000) in (8) GROUP BY h.hostid,n.nodeid,n.name,h.host,ug.userid ORDER BY n.name,n.nodeid, h.host, permission, ug.userid;
    вылечилось (ну вроде получше стало)
    create index rights_test on rights(id);




    2 место
    чаще всего это в:
    triggers.inc.php
    PHP Code:
    if(!empty($hostids)){
                            
    $sql_where.= ' AND '.DBcondition('i.hostid',$hostids);
                    }
                    
    $sql =  'SELECT /*1*/ DISTINCT t.triggerid '.
                                    
    ' FROM triggers t, functions f, items i '.
                                    
    ' WHERE t.triggerid=f.triggerid '.
                                            
    ' AND f.itemid=i.itemid'.
                                            
    ' AND '.DBcondition('i.hostid',$available_hosts,true).
                                            
    $sql_where;
                    
    $db_triggers DBselect($sql);
                    while(
    $trigger DBfetch($db_triggers)){
                            
    $denied_triggers[] = $trigger['triggerid']; 
    и
    PHP Code:
    if(!empty($denied_triggers)){
                            
    $sql_where.= ' AND '.DBcondition('t.triggerid',$denied_triggers,true);
                    }

                    
    $sql =  'SELECT /*2*/ DISTINCT t.triggerid '.
                                    
    ' FROM triggers t, functions f, items i '.
                                    
    ' WHERE t.triggerid=f.triggerid '.
                                            
    ' AND f.itemid=i.itemid'.
                                            
    $sql_where;
                    
    $db_triggers DBselect($sql);
                    while(
    $trigger DBfetch($db_triggers)){
                            
    $result[$trigger['triggerid']] = $trigger['triggerid']; 


    Code:
    SELECT DISTINCT t.triggerid FROM triggers t, functions f, items i WHERE t.triggerid=f.triggerid AND f.itemid=i.itemid AND (t.triggerid NOT IN (800800000013006,....................,800800000169749,800800000169750,800800000169751));
    3 место
    Code:
    SELECT DISTINCT u.userid, MAX(s.lastaccess) as lastaccess, MAX(u.autologout) as autologout, s.status FROM users u LEFT JOIN sessions s ON s.userid=u.userid AND s.status=0 WHERE (u.userid div 100000000000000) in (8) GROUP BY u.userid,s.status


    upd. становятся "медленными" когда 6-7+ клиентов в веб-интерфейсе сидит... если залогиненых 1-2, то в нашем случае уже наблюдается прогресс - 60-80% мускул стал потреблять
    Last edited by ugh; 24-06-2009, 08:04.

    Comment

    • sersad
      Senior Member
      • May 2009
      • 518

      #47
      Originally posted by den_crane
      update items set moditemid = mod(itemid,30);

      Все, загрузка процессора 0-2%, осталось добавить заполнение поля moditemid при добавлении item-ов.
      Пересобрал забикс с Вашей корректировкой, но теперь при добавлении устройств приходиться ручками давать команду
      update items set moditemid = mod(itemid,30);
      чтоб итемы устройства подцепились.
      Как бы сделать это автоматом?

      Comment

      • ugh
        Senior Member
        • Jun 2009
        • 296

        #48
        все же хотелось бы обратить внимание разработчиков на селекты с перечислением, вроде
        Code:
         Time: 090626 15:17:02
        # User@Host:
        # Query_time: 12  Lock_time: 0  Rows_sent: 11  Rows_examined: 63340
        SELECT DISTINCT g.groupid,g.name  FROM groups g, hosts_groups hg, hosts h, items i, functions f, triggers t  WHERE  (h.hostid IN (800800000010473,80080000001............
        Code:
        SELECT /*2*/ DISTINCT t.triggerid FROM triggers t, functions f, items i WHERE t.triggerid=f.triggerid AND f.itemid=i.itemid AND (t.triggerid NOT IN (800800000035686,800800000069480,800800000069481,800800000069482,800800000069483,800800000069484,800800000069485,800800000069486,800800000069487,800800000069488,800800000069489,800800000069490,800800000069491,800800000069492,80080000006
        вероятно при достаточно большом количестве итемов они начинают серьезно сказываться на производительности

        Comment

        • sersad
          Senior Member
          • May 2009
          • 518

          #49
          Все также хотелось бы услышать комментарии разработчиков по поводу улучшения производительности. Будут ли внесены изменения в код повышающие производительность при работе с большим количеством итемов, тригеров и хостов? Если будет то когда ждать новую версию?

          Готов выступить тестером, количество итемов будет близко или будет переваливать за полмилиона.

          Comment

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

            #50
            Originally posted by sersad
            Все также хотелось бы услышать комментарии разработчиков по поводу улучшения производительности. Будут ли внесены изменения в код повышающие производительность при работе с большим количеством итемов, тригеров и хостов? Если будет то когда ждать новую версию?

            Готов выступить тестером, количество итемов будет близко или будет переваливать за полмилиона.
            Улучшение производительности - один из главных приоритетов Zabbix 1.8. Что касается GUI, то уже реализован быстрый поиск, переходим на постраничный вывод с поиском и делаем рефакторинг существующего кода для скорости и удобства. Тестируем на: 100K hosts, 10М items, 5M triggers,...

            Zabbix 1.8 планируется выпустить в октябре; первая beta - пока ничего не могу сказать.
            Alexei Vladishev
            Creator of Zabbix, Product manager
            New York | Tokyo | Riga
            My Twitter

            Comment

            • sersad
              Senior Member
              • May 2009
              • 518

              #51
              Бета будет распространяться свободно?

              Comment

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

                #52
                Originally posted by sersad
                Бета будет распространяться свободно?
                Безусловно. А разве есть другие варианты?
                Alexei Vladishev
                Creator of Zabbix, Product manager
                New York | Tokyo | Riga
                My Twitter

                Comment

                • sersad
                  Senior Member
                  • May 2009
                  • 518

                  #53
                  А следующая версия будет сразу 1.8 ? или будет все же 1.7?
                  И где их нужно искать?

                  Comment

                  • sersad
                    Senior Member
                    • May 2009
                    • 518

                    #54
                    Originally posted by alexei
                    Что касается gui, то уже реализован быстрый поиск, переходим на постраничный вывод с поиском и делаем рефакторинг существующего кода для скорости и удобства. Тестируем на: 100k hosts, 10М items, 5m triggers,...
                    И еще Где взять новый гуй, хотя бы бету?
                    Какое железо и какая ось будет использоваться для тестирования?

                    Comment

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

                      #55
                      Originally posted by sersad
                      А следующая версия будет сразу 1.8 ? или будет все же 1.7?
                      И где их нужно искать?
                      1.7 - это beta-1.8, стабильные версии чётные. Искать можно на www.zabbix.com/ru/developers.php
                      Alexei Vladishev
                      Creator of Zabbix, Product manager
                      New York | Tokyo | Riga
                      My Twitter

                      Comment

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

                        #56
                        Originally posted by sersad
                        Какое железо и какая ось будет использоваться для тестирования?
                        Железо разное, ось - в основном Linux (Ubuntu, Debian, RedHat, SuSE). Агенты тестируются на множестве осей.
                        Alexei Vladishev
                        Creator of Zabbix, Product manager
                        New York | Tokyo | Riga
                        My Twitter

                        Comment

                        • sersad
                          Senior Member
                          • May 2009
                          • 518

                          #57
                          Originally posted by alexei
                          Железо разное, ось - в основном linux (ubuntu, debian, redhat, suse).
                          Интересует конфига тестового сервера с таким количеством хостов, итемов и тригеров.

                          Comment

                          • Nikolaicheg
                            Senior Member
                            • Feb 2009
                            • 111

                            #58
                            выдержка из мануала:
                            very large
                            redhat enterprise
                            intel xeon 2xcpu
                            8gb
                            fast raid10
                            mysql innodb
                            or
                            postgresql
                            >10000 items

                            Comment

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

                              #59
                              Originally posted by sersad
                              Интересует конфига тестового сервера с таким количеством хостов, итемов и тригеров.
                              Мы ставим себе две задачи:
                              - сделать GUI рабочим и быстрым для такого количества елементов на средненьком железе (1xQuad, 4ГБ)
                              - оптимизация сервера, пока не ясно какую пиковую нагрузку можно будет получить. Цель (идеал): обработка 1М значений в минуту.
                              Last edited by Alexei; 08-07-2009, 08:08. Reason: секунду->минуту
                              Alexei Vladishev
                              Creator of Zabbix, Product manager
                              New York | Tokyo | Riga
                              My Twitter

                              Comment

                              • sersad
                                Senior Member
                                • May 2009
                                • 518

                                #60
                                Originally posted by alexei
                                Мы ставим себе две задачи:
                                - сделать gui рабочим и быстрым для такого количества елементов на средненьком железе (1xquad, 4ГБ)
                                - оптимизация сервера, пока не ясно какую пиковую нагрузку можно будет получить. Цель (идеал): обработка 1М значений в минуту.
                                Заманчиво) Быстрее бы.

                                Comment

                                Working...