私はCentOSLinuxを実行しているサーバーを持っていますが、非常にまれに(おそらく、3か月に1回)、サーバーのCPU負荷が非常に高く(400%)、サーバーが基本的にフリーズするようなことが起こります。
私が抱えている問題は、サーバーを再起動すると、スパイクの原因がわからないことです。時々ログファイルに上位10個のCPUプロセスをダンプするようにcronジョブを設定しようとしましたが、CPU負荷が高い場合、cronジョブも実行されないようです。
私はサーバーの実行に少し慣れていないので、プロセスをより適切にログに記録し、次に突然のスパイクが発生する原因を特定する方法について、皆さんにアドバイスをいただければ幸いです。制御不能になるのはスクリプトまたはプロセスだけだと確信していますが、どれがどれであるかがわかるまで、私は途方に暮れています...
あなたが提供できるどんな助けにも感謝します!
そのロギングcronジョブをどのくらいの頻度で実行しましたか? CPU使用率がすぐにピークに達しないため、もっと頻繁に実行する必要があるかもしれません。どこかで増加が見られる必要があります。または、atopを使用して、リソース負荷(CPU負荷を含む)を時間の経過とともに監視することもできます。
あなたの質問に対する答えを厳密に言えばではありませんが、チェックしてください monit 。グローバルシステム統計を含む、あらゆる種類のものを監視するように構成できます。たとえば、CPU使用率が3分間で97%を超えると、サーバーが再起動します。 Apacheが80%を超えるCPUを5分間使用すると、再起動されます。これは非常に便利なソフトウェアであり、夜はずっと楽に眠れます。 :-)
CPUとは全く関係がない可能性があります。 sar(sysstat)のようなユーティリティを見ると、システムがハングしたときに何が起こっていたかについての詳細情報を取得できる可能性があります(CPU /ディスクIO /メモリ/スワッピング/等)。
私はいくつか質問があります:
再起動後、システムがフリーズした期間のログエントリが表示されますか?
システムがフリーズしていることをどのように判断しますか?
ログインできますか?