Zabbix — Utilization of housekeeper processes over 75%
I’m monitoring about 1300 hosts on Zabbix. After I defined bulk templates for all hosts, I got the «Utilization of housekeeper processes over 75%» alarm, but it was not resolved for about 20 hours. I did not define a housekeeper in my server settings. How can I resolve this alarm and what is the effect? Using postgresql. Server config;
StartPollers=50 StartPollersUnreachable=50 StartPingers=50 StartDiscoverers=50 StartHTTPPollers=50 CacheSize=1024M HistoryCacheSize=1024M TrendCacheSize=1024M ValueCacheSize=1024M LogSlowQueries=3000 MaxHousekeeperDelete=5000
Postgreqsql config;
max_connections = 1000 shared_buffers = 8GB effective_cache_size = 24GB maintenance_work_mem = 2GB checkpoint_completion_target = 0.9 wal_buffers = 16MB default_statistics_target = 100 random_page_cost = 1.1 effective_io_concurrency = 200 work_mem = 1048kB min_wal_size = 1GB max_wal_size = 4GB max_worker_processes = 12 max_parallel_workers_per_gather = 4 max_parallel_workers = 12 max_parallel_maintenance_workers = 4
Zabbix and HouseKeeper Trouble Story!!

Today i want show a problem discovered on one of our Zabbix Server and the Housekeeper process.
The Housekeeper is a periodical process, executed by Zabbix server. The process removes outdated information and information deleted by user.
Most of us know the two parameters inside zabbix_server.conf to limit the process behavior:
HousekeepingFrequency
The Housekeeper is a periodical process, executed by Zabbix server. The process removes outdated information and information deleted by user.
MaxHousekeeperDelete
No more than ‘MaxHousekeeperDelete‘ rows will be deleted per one task in one housekeeping cycle.
Actually for most of the times no one care so much about that but today we fall on a big Zabbix Server slow down and this problemi s coming from Housekeeper.
Today we understood much better the logic behind the Housekeeper process, i will try to explain below.
Few days ago we have removed 3 items prototypes from a template that it was linked to 60 hosts and for every hosts that prototype items is near to 300 real items.
So how many orphaned items we have? 3 (proto items) *60 (hosts)*100(expanded proto items)=18000 !
But the huge strange behaviour is here, MaxHousekeeperDelete. If we set to MaxHousekeeperDelete=500 zabbix will try to remove 500 history value per orphaned items.
So what happend?
In the beginning the Housekeeper process it will try to remove 18000×500=9.000.000 of history value.
For example if we look on Zabbix server Log:
————–
housekeeper [deleted 68 hist/trends, 4522000 items, 0 events, 0 sessions, 0 alarms, 0 audit items in 2649.273207 sec, idle 1 hour(s)]
————–
The “4522000 items” is the deleted orphaned items value for a single Housekeeper process.
To discuss about this strange logic we have opened an official trouble ticket in Zabbix
Решение Zabbix housekeeper processes more than 75% busy
Процессы housekeeper предназначены для очистки устаревших данных, например в каждом элементе данных указывается период хранения истории и период хранения трендов, все что больше этих значений, то и очищается процессами housekeeper чтобы база данных не выросла до гигантских размеров.
Первое что можно оптимизировать, это интервал обновления, чем он реже, тем меньше данных заносится в базу данных и меньше потом придётся очищать. Все шаблоны я создавал сам, если есть существующие шаблоны, то их можно полностью клонировать и изменить. Например для клиентских коммутаторов на доступе я указывал интервал обновления 15m, период хранения истории 1d, период хранения трендов 60d. На серверах и прочем сетевом оборудовании в ядре естественно делал интервал обновления чаще по мере необходимости и больше период хранения трендов.
В конфигурации Zabbix сервера есть параметры для настройки housekeeper, откроем файл конфигурации в текстовом редакторе:
nano /etc/zabbix/zabbix_server.conf
Параметр HousekeepingFrequency определяет как часто процессы housekeeper будут выполнять очистку (в часах), по умолчанию значение равно 1, что означает — каждый час, доступные значения 0-24.
Параметр MaxHousekeeperDelete определяет сколько значений в таблицах базы данных будет удалено, по умолчанию 5000, что очень мало для сервера с большим количеством хостов и элементов данных, доступные значения 0-1000000. Если указать 0, то это уберет лимит, но нужно учитывать производительность дисковой системы и количество данных которые нужно удалить в базе данных, чтобы не получилось что процессы housekeeper будут запускать очистку каждый час и выполнять ее более часа. По умолчанию триггер «Zabbix housekeeper processes more than 75% busy» срабатывает если процесс очистки длится более 30 минут, за временем выполнения и нагрузкой на дисковую систему можно следить на графиках.

На момент написания статьи, этот Zabbix сервер обслуживал 754 хоста и имел 25609 элементов данных, в конфигурации я указал параметры:
HousekeepingFrequency=1 MaxHousekeeperDelete=550000
Как видим по графикам, очистка выполняется не дольше 15 минут.
Обычно если очистка выполняется более 30 минут, то это связано с тем что процессы housekeeper выполняются редко (например не каждый час) или не хватает дисковой производительности и не оптимизирован сервер баз данных.
Если собралось очень много устаревших данных, то можно остановить Zabbix сервер и очистить данные SQL запросами, примеры смотрите в другой моей статье, а также SQL запросы для массового изменения интервалов обновления в элементах данных.
- Нажмите, чтобы открыть на Facebook (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Ещё
- Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне)
- Нажмите, чтобы поделиться на Reddit (Открывается в новом окне)
- Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
- Нажмите для печати (Открывается в новом окне)
Zabbix housekeeper processes more than 75% busy
I keep getting the above warning on our Zabbix server. I’ve gone through the Zabbix forum, but there isn’t a lot of information there about this. And what is there isn’t explained very well (IMO).
I’ve looked at server.conf and have read the notes with and taking warning of «you must know what you are doing!» at the end of it.
So I just added HousekeepingFrequency=1 and left the MaxHousekeeperDelete alone.
Has anyone come across this warning before?
Current set up is
Zabbix 4.0.4 — 10.1.34-MariaDB
260 host
4534 items
2392 triggers
![]()
- local_offer Tagged Items
- Zabbix star 4.5


Strix19