Zabbix 性能调优

参考:https://www.zabbix.com/documentation/4.0/zh/manual/appendix/performance_tuning

硬件

关于硬件的一般建议:

  • 使用最快的处理器
  • SCSI/SAS都是比IDE/SATA更好的选择 (使用实用程序hdparm可以显着提高IDE磁盘的性能)
  • 15K RPM优于10K RPM,优于7200RPM
  • 使用快速RAID存储
  • 使用快速以太网适配器
  • 内存总是越多越好

操作系统

  • 使用最新(稳定版!)版本的操作系统
  • 从内核中排除不必要的功能
  • 调整内核参数

Zabbix配置参数

可以调整许多参数以获得最佳性能。

zabbix_server

  • StartPollers

一般规则 - 保持此参数的值尽可能低。 zabbix_server的每个附加实例都会添加已知的开销, 同时, 并行性增加。当队列平均包含最小参数数量(理想情况下,在任何给定时刻为0)时,实现最佳实例数。可以通过使用内部检查zabbix [queue]来监视此值。

  • DebugLevel

最佳值为3。

  • DBSocket

仅限MySQL. 建议使用DBSocket连接数据库。那是最快和最安全的方式。

/var/run/mysqld/mysqld.sock  # Server version: 5.7.29

数据库引擎

这可能是Zabbix调优中最重要的部分。 Zabbix在很大程度上取决于数据库引擎的可用性和性能。

  • 使用最快的数据库引擎, 即MySQL或PostgreSQL
  • 使用稳定版本的数据库引擎
  • 从源重建MySQL或PostgreSQL以获得最大的性能
  • 遵循从MySQL或PostgreSQL文档获取的性能调优说明
  • 对于MySQL,使用InnoDB表结构
  • 如果使用InnoDB,ZABBIX的运行速度至少要快1.5倍(与MyISAM相比). 这是因为并行性增加。但是,InnoDB需要更多的CPU性能。
  • 强烈建议调整数据库服务器以获得最佳性能。
  • 将数据库表保留在不同的硬盘上
  • 'history', 'history_str, 'items' 'functions', triggers', and 'trends' 是使用最多的表格。
  • 对于大型安装,建议在tmpfs中保留MySQL临时文件:
    • MySQL >= 5.5: not recommended (MySQL bug #58421)
    • MySQL < 5.5: recommended

一般建议

  • 仅监控所需参数
  • Zabbix LLD 设置过滤条件,不自动监控某些item
  • 调整所有项目的“更新间隔”。 保持较小的更新间隔对于漂亮的图形可能是好的,但是这可能会超载Zabbix
  • 调整默认模板的参数
  • 调整housekeeping参数
  • 不监视返回相同信息的参数。
  • 避免使用长期给出的触发器作为函数参数。 例如,max(3600)的计算速度明显比max(60)慢。

使用“ps”和“top”查看Zabbix进程性能

Linux

在Linux系统上 ps 命令可以与 watch 命令一起使用,以观察Zabbix的工作。 例如,要每秒运行 ps 命令5次以查看进程活动:

watch -n 0.2 ps -fu zabbix

仅显示Zabbix代理和代理进程:

watch -tn 0.2 'ps -f -C zabbix_proxy -C zabbix_agentd'

仅显示历史记录进程:

watch -tn 0.2 'ps -fC zabbix_server | grep history'

“ps”命令产生一个宽输出(大约190列),因为一些活动消息很长。 如果您的终端有少于190列文本,您可以尝试

watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'

仅显示没有UID,PID,开始时间等的命令行。

top 命令也可用于观察Zabbix的性能。 在top中按'c'键显示其命令行的进程。 在我们对Linux top 和 atop的测试中,正确显示了Zabbix进程的变化活动, 但是 htop 不显示不断变化的活动。

posted @ 2021-12-02 08:41  Varden  阅读(425)  评论(0编辑  收藏  举报