Ad Widget

Collapse

postgre база только растет

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sersad
    Senior Member
    • May 2009
    • 518

    #16
    Сделал partitioning table скрипт взял тут http://www.zabbix.com/forum/showthread.php?t=14208 , чуть его модифицировал чтобы добавить еще и тренды.
    Теперь таблицы хистори и тренды бъются по месяцам, разбиение на более мелкие части по моему не разумно.

    Comment

    • sire
      Senior Member
      • Jul 2010
      • 210

      #17
      Originally posted by sersad
      Сделал partitioning table скрипт взял тут http://www.zabbix.com/forum/showthread.php?t=14208 , чуть его модифицировал чтобы добавить еще и тренды.
      Теперь таблицы хистори и тренды бъются по месяцам, разбиение на более мелкие части по моему не разумно.
      А тренды тоже много занимают? Есть смысл их разбивать?
      Regards,
      Sergey Syreskin

      Monitored hosts: 2646 / Active items: 23604 / Server performance: 765.74

      Temporary out of Zabbix business

      Comment

      • sersad
        Senior Member
        • May 2009
        • 518

        #18
        Originally posted by sire
        А тренды тоже много занимают? Есть смысл их разбивать?
        по количеству элементов да, учитывая отключенный хаускипер проще чистить и обслуживать БД по частям, дропнул таблицу за месяц и хорошо

        Comment

        • sire
          Senior Member
          • Jul 2010
          • 210

          #19
          Мне интересно, есть ли какие-либо недостатки у партишенинга БД? Если нет, то почему бы разрабам Zabbix не делать так из коробки? Ну и хаускипер переработать, чтобы он грохал устаревшие партиции.
          Regards,
          Sergey Syreskin

          Monitored hosts: 2646 / Active items: 23604 / Server performance: 765.74

          Temporary out of Zabbix business

          Comment

          • sersad
            Senior Member
            • May 2009
            • 518

            #20
            Сами разработчики пишут, что partitioning table нужно использовать для больших проектов.
            Недостатков не заметил.

            Originally posted by Alexei
            Feel free to use it, we already strongly recommend use of table partitions for large MySQL/Oracle/PostgreSQL databases.
            Last edited by sersad; 20-05-2011, 13:23.

            Comment

            • sire
              Senior Member
              • Jul 2010
              • 210

              #21
              Originally posted by sersad
              Сами разработчики пишут, что partitioning table нужно использовать для больших проектов.
              Недостатков не заметил.
              А для мелких и средних, кроме того, что это лишние настройки, есть недостатки? Может попросить их сделать partitioning по-умолчанию?
              Regards,
              Sergey Syreskin

              Monitored hosts: 2646 / Active items: 23604 / Server performance: 765.74

              Temporary out of Zabbix business

              Comment

              • novoselov.ai
                Senior Member
                • Jun 2009
                • 107

                #22
                Для чего используется в cтруктуре базы

                WITH (
                OIDS=TRUE
                );

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

                Решил создать структуру без них, вроде всё работает, кроме housekeeper.

                [delete from trends_uint where itemid=116784 and oid in (select oid from trends_uint where itemid=116784 limit 500)]
                14287:20110520:134009.146 [Z3005] Query failed: [0] PGRES_FATAL_ERROR:ERROR: column "oid" does not exist
                LINE 1: ...rends_uint where itemid=116812 and oid in (select oid from t...


                вот выдержка из текста housekeeper


                #elif defined(HAVE_POSTGRESQL)
                deleted = DBexecute(
                "delete from %s"
                " where %s=" ZBX_FS_UI64
                " and oid in (select oid from %s"
                " where %s=" ZBX_FS_UI64 " limit %d)",


                Что теперь лучше сделать? пересоздавать базу с OIDS=TRUE, или избавиться от них исправив этот запрос? Нужны ли OIDS реально для базы?



                для Mysql гораздо понятней текст:

                #elif defined(HAVE_MYSQL)
                deleted = DBexecute(
                "delete from %s"
                " where %s=" ZBX_FS_UI64 " limit %d",
                housekeeper.tablename,
                housekeeper.field,
                housekeeper.value,
                CONFIG_MAX_HOUSEKEEPER_DELETE);
                Last edited by novoselov.ai; 20-05-2011, 21:37.

                Comment

                • sersad
                  Senior Member
                  • May 2009
                  • 518

                  #23
                  Я вообще выключил хаускипер, ибо он вызывает ошибки при удалении большого кол-ва данных.

                  Comment

                  • sersad
                    Senior Member
                    • May 2009
                    • 518

                    #24
                    Проблема решена переездом на mysql и использованием опыта из блога пользователя форума: http://zabbixzone.com/zabbix/partitioning-tables/
                    Описал свой опыт здесь http://habrahabr.ru/blogs/sysadm/120955/

                    Comment

                    • rahs
                      Senior Member
                      • Nov 2009
                      • 125

                      #25
                      А для чего такой сложный метод создания партиций? В документации mysql есть вот такой пример:
                      Code:
                      CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
                          ENGINE=INNODB
                          PARTITION BY HASH( MONTH(tr_date) )
                          PARTITIONS 6;
                      Так не будет проще?

                      Comment

                      • sersad
                        Senior Member
                        • May 2009
                        • 518

                        #26
                        Проще, я не писал код, воспользовался наработками других людей. Была необходимость привести систему мониторинга в рабочий вид за минимальный срок. Тут уж не до красот)))

                        Comment

                        • sire
                          Senior Member
                          • Jul 2010
                          • 210

                          #27
                          sersad, а в постгресе что не так с партишенингом? Вы же вроде его настроили.
                          Regards,
                          Sergey Syreskin

                          Monitored hosts: 2646 / Active items: 23604 / Server performance: 765.74

                          Temporary out of Zabbix business

                          Comment

                          • sersad
                            Senior Member
                            • May 2009
                            • 518

                            #28
                            Сплошные деадлоки здесь http://www.zabbix.com/forum/showthread.php?t=21441 обсуждали.
                            ПЫСЫ После переезда на mysql загрузка упала с 50-100% на 10-20%

                            Comment

                            • novoselov.ai
                              Senior Member
                              • Jun 2009
                              • 107

                              #29
                              А в примерах конфигурации Postgresql для больших и очень больших инсталляций советуется.

                              Большая Ubuntu Linux 64 bit Intel Dual Core 6400 4GB RAID10 MySQL InnoDB или PostgreSQL >1000

                              Postgresql удобна тем, что поддерживает пространственные базы данных, у меня например оборудование на карте высвечивается, благодаря использованию postgis. Удобно было бы сделать расширение для постгрес, zabbix и триггерами самой базы выполнять внешне действия...

                              А оно вот как... Загрузка процессора большая... дедлоки. Без OID не работает Housekeeper. Может тогда вычеркнуть Postgresql из списка поддерживаемых, чтобы народ не метался.


                              А по этому вопросу....

                              Есть ли у кого опыт? или опыт партицирования Postgres?

                              Comment

                              • rahs
                                Senior Member
                                • Nov 2009
                                • 125

                                #30
                                Originally posted by rahs
                                А для чего такой сложный метод создания партиций? В документации mysql есть вот такой пример:
                                Code:
                                CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
                                    ENGINE=INNODB
                                    PARTITION BY HASH( MONTH(tr_date) )
                                    PARTITIONS 6;
                                Так не будет проще?
                                Разобрался, проще не будет. Мускуль не поддерживает unixtime в выражениях для партиций

                                Comment

                                Working...