甚至可能/推荐吗?
我们正在尝试设置一些配置为 1 秒间隔的活动项目。然而,这些项目并没有保持所需的间隔,而是我们大约每 30 秒收集一个值(如相应图表所示)。
在客户端使用简单的“echo 1”作为用户参数来测试上述内容,它应该每 1 秒发送一次,没有延迟,但不是。我们在服务器本身上部署了一个客户端,其配置方式与上述相同,每秒成功收集一次。
我们的 Zabbix 设置相对较新,因此底层 MySQL 数据库相当小,我们没有那么多客户端/项目。服务器在 Linux VM 中运行,客户端在专用 Linux 主机上(而不是在本地网络上)。
我们查看了服务器/客户端上的配置文件,但没有看到什么可以帮助我们实现这一点(除了添加更多的陷阱)。这似乎不是连接问题,因为客户端缓冲区应该克服这个问题。
- 这种行为的原因可能是什么?
- 如何找到瓶颈?通过Zabbix 服务器统计可以看到什么?
- 硬件是最重要的因素吗?
- MySQL优化是强制性的吗?
无法发布更多链接,因此我们查看了以下内容:
- Zabbix 参考手册中的性能调优页面
- Alexei Vladishev zabbix 性能调整幻灯片(在 slideshare 上找到)
感谢@Richlv,经过我进行的一些测试(请参阅评论),我们发现了问题。因为活动项目是按顺序处理的,并且这些项目背后的命令可能需要一些时间才能返回,因此会为每个项目产生一些延迟叠加,代理正在尽最大努力循环所有项目。
由于无法并行处理活动项目,因此在这种情况下可能的解决方案如下: