0

我在我的系统上运行 < 24 次检查。服务器不会经常负载过重。在正常操作期间,平均负载保持在 1 以下。

我注意到一个反复出现的问题,即 check-cpu 检查将开始在没有自然原因导致高负载的系统上触发高负载平均值。进一步调查显示,高负载报告实际上是由于 check-cpu 脚本与其他检查并行运行。在执行检查之外,cpu 负载很好。

我从 sensu 0.20 升级到 0.23 并继续观察同样的问题。

我们发现重新启动 sensu-server 和 sensu-client 服务会在一段时间(大约 24 小时)内解决问题,然后它会返回。

我们在这一点上进行了推理,在主机上的检查的调度/执行中必须存在某种时间延迟,这会导致这种重叠最终发生。

所有检查都设置为以 30 或 60 的间隔运行。

我决定将 check-cpu 检查的间隔设置为 83,此后问题未发生。大概是因为 check-cpu 检查与任何其他检查不重合,因此在那短时间内看不到高 cpu 负载。

这是sensu的某种固有调度问题吗?它应该知道如何以足够的间距发送检查,还是应该由间隔参数控制?

谢谢!

4

1 回答 1

2

我注意到检查在执行时间上漂移。即它们不是每 30 秒运行一次,而是每 30.001 秒或类似的时间运行一次。我想在不同的检查中漂移可能会有所不同。所以最终你会遇到检查同步并同时运行的问题,从而导致问题。定期运行更多检查(30 秒、60 秒等)会使这个问题更频繁地发生。如果你想改变这个问题,你必须直接向sensu报告。我认为他们最终可能会修复它,因为他们可能希望系统具有可扩展性。

于 2016-05-06T22:24:08.317 回答