システムで 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 に固有のスケジューリングの問題ですか? 適切な間隔でチェックをディスパッチする方法を知っているはずですか、それとも間隔パラメーターによって制御されるべきものですか?
ありがとう!