Ad Widget

Collapse

Housekeeper не справляется с очисткой базы

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MONro
    Junior Member
    • Dec 2015
    • 9

    #1

    Housekeeper не справляется с очисткой базы

    Добрый день!

    Исходные:
    Zabbix 3.0.3 на Debian8
    БД Postgres 9.4
    Количество узлов сети 310
    Количество элементов данных 8500
    Количество триггеров 4000
    Необходимая производительность 140 значений/сек

    Период хранения истории большинства айтемов 30 дней, период хранения трендов 365 дней.

    Housekeeper настроен следующим образом
    HousekeepingFrequency=24
    MaxHousekeeperDelete=10000

    Раз в сутки перезапускаю сервис ночью, чтобы housekeeper гарантированно запускался в одно и тоже время и не мешал пользователям.

    На версии 2.4 все было замечательно. База была стабильных размеров. Количество записей в таблице history было в районе 150 миллионов. На диске база данных занимала порядка 30 Гиг и незначительно росла (вследствии появления новых узлов и айтемов).

    После обновления на версию 3.0 база стала стабильно расти. Обнаружилось это не сразу, а только через месяц. Причина разрастания базы - housekeeper удаляет очень мало устаревших данных из базы данных. Сейчас, за один проход с текущими настройками удаляется 2 миллиона записей (истории и трендов). Сколько удалялось раньше на версии 2.4 - посмотреть уже нельзя, т.к. обновился больше месяца назад и посмотреть это уже негде.
    MaxHousekeeperDelete уже перепробовал разные варианты, в том числе и 0. Все равно больше 2 миллионов записей не удаляется.

    Генерируется за сутки около 12 миллионов записей (140*86400). Сейчас, чтобы хоть как то стабилизировать размер базы данных перезапускаю сервис 12 раз за сутки. Соответственно, удаляется из базы порядка 24 миллионов записей в сутки

    Как его заставить удалять эти данные за один проход, ночью?
    Attached Files
  • MONro
    Junior Member
    • Dec 2015
    • 9

    #2
    Сейчас стоит в настройках
    MaxHousekeeperDelete=0
    Поэкспериментировал с HousekeepingFrequency. Ставил вместо 24 другие значения - 10, 5, 3.
    Это тоже никак не влияет на количество удаленных записей из базы данных. За проход удаляется не больше 2 миллионов.

    В версии 2.4 явно удалялось больше, т.к. не было проблем с ростом базы.

    Comment

    • hedgehog
      Junior Member
      • Jul 2013
      • 15

      #3
      давным давно уже настроил партиционирование и выключил HouseKeeper для истории трендов. и все работает просто отлично)
      Как сделать партиционирование есть в официальной вики http://zabbix.org/wiki/Main_Page для большого объема данных это лучший вариант

      Comment

      • MONro
        Junior Member
        • Dec 2015
        • 9

        #4
        Про партиционирование знаю, но пока у меня вроде как не было в нем необходимости. Настраивать не пробовал.
        На версии 2.4 производительности моей системы хватало. Housekeeper запускался раз в сутки и работал не более 30 минут. И этого хватало, чтобы база была стабильных размеров.
        Что изменилось: обновил Zabbix с 2.4.8 до версии 3.0.3 и PostgreSQL с 9.2 до 9.4
        Сейчас, после этих обновлений, housekeeper работает минут 15-20 и удаляет не больше 2 миллионов записей. Т.е. однозначно процесс удаления стал более медленным. Раньше за 30 минут удалялось 10-12 миллионов записей. И появилось какое то искусственное ограничение по количеству удаляемых записей - 2 миллиона. Изменение настроек, касающихся housekeeper в конфиге сервера, никак не влияет на эту цифру. Больше 2 миллионов удалить за один проход не получается.

        Comment

        Working...