"poller processes"可以看出zabbix server轮询进程繁忙,Zabbix进程分配到内存不足都有可能,如果需要彻底解决,可以通过如下解决:
- 观察zabbix server所在的服务器,是否内存不够,可以正常分配内存到zabbix server进程
- 增加Zabbix Server启动时初始化的进程数量,这样直接增加了轮询的负载量,这样就可以降低忙的情况
增加初始化进程的方法:编辑Zabbix Server的配置文件/etc/zabbix/zabbix_server.conf,找到配置StartPollers的段落:
### Option: StartPollers
# Number of pre-forked instances of pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartPollers=5
取消StartPollers=一行的注释或者直接在后面增加:
StartPollers=12
将StartPollers改成多少取决于服务器的性能和监控的数量。如果内存足够的话可以设置更高。设置完成之后运行:
service zabbix-server restart
重启Zabbix。
当然还有另外一种从整体上降低Zabbix服务器负载的方法就是定期重启Zabbix。
这种方法可以用Cron实现,运行:
@daily service zabbix-server restart > /dev/null 2>&1
计划可以每天自动重启Zabbix服务以结束僵尸进程并清理内存等。