サーバー上のすべてのサービスがダウンしているのに、pingに応答し続ける原因は何でしょうか?また、その原因を突き止める方法は何でしょうか?

サーバー上のすべてのサービスがダウンしているのに、pingに応答し続ける原因は何でしょうか?また、その原因を突き止める方法は何でしょうか?

数日のうちにサーバーが完全にダウンし、http、ssh、ftp、dns、smtp など基本的にすべてのサービスが応答しなくなるという現象がすでに 2 回発生しました。サーバーの電源がオフになったかのようですが、ping には応答し続けます。これが最も困惑する点です。

少数のユーザーによって使用される、短時間のバーストでサーバーに大量の負荷 (CPU とメモリ) をかける PHP スクリプトがいくつかありますが、通常、サーバーはこれらのバーストに完全に「耐え」、ダウンしても使用量のピークと重なることはありません (関連がないとは言いませんが、それらの直後には発生しません)。

これらのクラッシュの根本的な原因を魔法のように教えてくれと言っているわけではありません。私の質問は、1 つのプロセスが停止すると、これらすべてのサービスが同時にダウンする可能性があるかどうかです。面白いのは、ping 以外のすべてのネットワーク サービスがダウンすることです。サーバーの CPU が何らかのプロセスによって 100% 消費された場合、ping にも応答しません。たとえば、壊れた PHP スクリプトが原因で Apache がクラッシュした場合、影響は http のみで、ssh や dns には影響しません...など。

私のOSはCent OS 5.6です

最も重要なのは、サーバーをハードリブートした後、どのシステムログを確認すればよいかということです。/var/log/messages には疑わしいものは何も表示されません。

答え1

要約ping に応答するのは想定内の動作です。メモリ使用量を確認してください)

ICMP エコー要求 (つまり ping) は、他の依存関係なしにカーネル内のネットワーク スタックによって処理されます。

カーネルは「メモリ常駐」として知られており、常に RAM 内に保持され、通常のアプリケーションのようにディスクにスワップすることはできません。

これは、物理メモリが不足した状況では、アプリケーションはディスクにスワップされますが、カーネルはそのまま残ります。物理メモリとスワップメモリ​​の両方がいっぱいになると(システムがプログラムを管理できなくなると)、マシンはフォールオーバーします。ただし、a)カーネルはまだメモリ内にあり、b)他の何の助けも借りずに ping 要求に応答できるため、すべてが停止しているにもかかわらず、システムは ping に応答し続けます。

あなたの問題に関しては、メモリの問題が強く疑われます。「sysstat」をインストールし、「sar」コマンドを使用して、メモリ/CPU/負荷/IO 負荷などのログを確認します。クラッシュ時には、100% の物理メモリとスワップの両方が使用されていることがわかります。

私も検討してみたいと思いますdmesgまたは/var/log/メッセージOOM-killer (メモリ不足キラー) が呼び出される兆候がないか確認してください。これはカーネルの緊急システムで、メモリが不足した場合にプロセスを強制終了します。その効果は、強制終了されるプロセスによって大きく異なります。メモリを消費している単一のプロセスは効率的に強制終了され、メモリが解放されますが、Apache ベースの Web サイトでは、子プロセスが強制終了されるとすぐに代替プロセスが生成されます。

答え2

通常、これは I/O またはディスク サブシステムの問題です。多くの場合、これは非常に高いシステム負荷平均と結びついています。たとえば、以下のグラフに詳細が示されているシステムは、スクリプトが誤って実行され、多数のファイルがロックされ、4 CPU システムで負荷が 36... に上昇したときに応答しなくなりました (ただし、ping は可能でした)。

ここに画像の説明を入力してください

RAM で実行されていてディスク アクセスを必要としないサービスは引き続き実行されます...したがって、ネットワーク スタック (ping) は起動しますが、ディスク アクセスが必要なときに他のサービスは停止します...キーが参照されるかパスワード検索が必要なときに SSH が停止します。SMTP は、負荷平均が 30 程度に達するとシャットダウンする傾向があります...

システムがこの状態にある場合は、nmapサーバーの IP に対してリモート アクセスを試して、何が起こっているかを確認します。

ディスクまたはストレージの問題である場合、ログ記録はおそらく機能しません...

ハードウェアの設定について説明していただけますか? これは仮想マシンですか? ストレージのレイアウトはどうなっていますか?

ログに記録するだけでなく、システム パフォーマンスをグラフ化して、いつこれが起こっているかを把握できるかどうかを確認します。これが特定のアクティビティと相関しているかどうかを確認します。

関連情報