这是一个正在进行的工作.
使Zabbix系统正确调整以获得最佳性能是非常重要的。
关于硬件的一般建议:
*使用最快的处理器
* SCSI或者SAS都是比IDE和SATA更好的选择 (使用实用程序hdparm可以显着提高IDE磁盘的性能)
* 15K RPM优于10K RPM,优于7200RPM
* 使用快速RAID存储
* 使用快速以太网适配器
* 拥有更多的内存总是更好
可以调整许多参数以获得最佳性能。
StartPollers
一般规则 -保持此参数的值尽可能低。 zabbix_server的每个附加实例都会添加已知的开销, 同时,并行性增加。当队列平均包含最小参数数量(理想情况下,在任何给定时刻为0)时,实现最佳实例数。可以通过使用内部检查zabbix [queue]来监视此值。
参见"See also" 以了解如何配置zabbix进程的最佳数量.
DebugLevel
最佳值为3.
DBSocket
仅限MySQL. 建议使用DBSocket连接数据库。 那是最快和最安全的方式。
这可能是Zabbix调优中最重要的部分。 Zabbix在很大程度上取决于数据库引擎的可用性和性能。
*仅监控所需参数
* 调整所有项目的“更新间隔”。 保持较小的更新间隔对于漂亮的图形可能是好的,但是这可能会超载Zabbix
* 调整默认模板的参数
* 调整管理参数
* 不监视返回相同信息的参数。
* 避免使用长期给出的触发器作为函数参数。 例如,max(3600)的计算速度明显比max(60)慢。
由于Zabbix 2.2进程更改其命令行以显示当前活动和有意义的统计信息,如:
UID PID PPID C STIME TTY TIME CMD
zabbix22 4584 1 0 14:55 ? 00:00:00 zabbix_server -c /home/zabbix22/zabbix_server.conf
zabbix22 4587 4584 0 14:55 ? 00:00:00 zabbix_server: configuration syncer [synced configuration in 0.041169 sec, idle 60 sec]
zabbix22 4588 4584 0 14:55 ? 00:00:00 zabbix_server: db watchdog [synced alerts config in 0.018748 sec, idle 60 sec]
zabbix22 4608 4584 0 14:55 ? 00:00:00 zabbix_server: timer #1 [processed 3 triggers, 0 events in 0.007867 sec, 0 maint.periods in 0.005677 sec, idle 30 sec]
zabbix22 4609 4584 0 14:55 ? 00:00:00 zabbix_server: timer #2 [processed 2 triggers, 0 events in 0.004209 sec, idle 30 sec]
zabbix22 4637 4584 0 14:55 ? 00:00:01 zabbix_server: history syncer #4 [synced 35 items in 0.166198 sec, idle 5 sec]
zabbix22 4657 4584 0 14:55 ? 00:00:00 zabbix_server: vmware collector #1 [updated 0, removed 0 VMware services in 0.000004 sec, idle 5 sec]
zabbix22 4670 1 0 14:55 ? 00:00:00 zabbix_proxy -c /home/zabbix22/zabbix_proxy.conf
zabbix22 4673 4670 0 14:55 ? 00:00:00 zabbix_proxy: configuration syncer [synced config 15251 bytes in 0.111861 sec, idle 60 sec]
zabbix22 4674 4670 0 14:55 ? 00:00:00 zabbix_proxy: heartbeat sender [sending heartbeat message success in 0.013643 sec, idle 30 sec]
zabbix22 4688 4670 0 14:55 ? 00:00:00 zabbix_proxy: icmp pinger #1 [got 1 values in 1.811128 sec, idle 5 sec]
zabbix22 4690 4670 0 14:55 ? 00:00:00 zabbix_proxy: housekeeper [deleted 9870 records in 0.233491 sec, idle 3599 sec]
zabbix22 4701 4670 0 14:55 ? 00:00:08 zabbix_proxy: http poller #2 [got 1 values in 0.024105 sec, idle 1 sec]
zabbix22 4707 4670 0 14:55 ? 00:00:00 zabbix_proxy: history syncer #4 [synced 22 items in 0.008565 sec, idle 5 sec]
zabbix22 4738 1 0 14:55 ? 00:00:00 zabbix_agentd -c /home/zabbix22/zabbix_agentd.conf
zabbix22 4739 4738 0 14:55 ? 00:00:00 zabbix_agentd: collector [idle 1 sec]
zabbix22 4740 4738 0 14:55 ? 00:00:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix22 4741 4738 0 14:55 ? 00:00:00 zabbix_agentd: listener #2 [processing request]
主要的过程是一个例外。 而不是当前的活动,显示原始的命令行。 这有助于区分具有多个Zabbix实例的系统上的进程。
Microsoft Windows不能实现此功能。
如果日志级别设置为** DebugLevel = 4 **这些活动和统计信息也被写入日志文件。
在Linux系统上,“ps”命令可以与“watch”命令一起使用,以观察Zabbix的工作。 例如,要每秒运行“ps”命令5次以查看进程活动:
仅显示Zabbix代理和代理进程:
仅显示历史记录进程:
“ps”命令产生一个宽输出(大约190列),因为一些活动消息很长。 如果您的终端有少于190列文本,您可以尝试
仅显示没有UID,PID,开始时间等的命令行
top
命令也可用于观察Zabbix的性能。在top
中按'c'键显示其命令行的进程。 在我们对Linux“top”和“atop”的测试中,正确显示了Zabbix进程的变化活动,但是“htop”不显示不断变化的活动。
如果没有安装watch
命令, 可以实现类似的效果
如果“watch”命令不可用,可以尝试
默认情况下,“ps”命令不显示更改的活动. 一个选项是使用/ usr / ucb / ps
。 如果未安装“watch”命令,则可以显示一个周期性更新的进程列表
On Solaris 11:
*“/ usr / ucb / ps”默认情况下未安装。 Y你可能需要安装// ucb // package,例如. ''pkg install compatibility/ucb'',
* 如果Zabbix守护进程已由特权用户启动,则其活动不会显示给非特权用户。
*''sleep''命令不仅接受整秒钟,而且接受第二秒的分数(例如“睡眠0.2”)。