数日前にWindows 2003サーバーで発生した問題を調査しています。約15のアプリプールがあり、数分以内にそれらすべてがシステムログに以下のエラーを生成しました。
A process serving application pool 'Pool 31x' failed to respond to a ping. The process id was '7144'.
その後、プールは自動的に再起動されましたが、起動中にタイムアウトになり、すべてのサイトがダウンしたままになりました。
私の質問は、ほぼ同時にすべてのアプリプールに「pingタイムアウト」が発生するのはなぜですか。それから、起動が遅すぎるのはなぜですか。
各プールのアプリは、.NET 1.1フレームワークを使用するWCMSです。リモートDBに接続しますが、それ以外の点では他のマシンから独立しています。
IISの "Ping"は、ワーカープロセスの状態を監視するためにW3SVCによって行われるヘルスチェックにすぎません。 pingに応答します。」は、プロセスがデッド状態であることを意味します。
ラピッドフェールプロテクションは、このような問題に対処し、appPoolを自身でリサイクルして、ワーカープロセスの正常性を維持するリサイクルオプションです。
問題の根本原因に到達するには、プロセスをデバッグする必要があります。
ワーカープロセスに.netアプリケーションが読み込まれているので、アプリケーションイベントログをチェックして、.netフレームワークの警告またはエラーがないか確認することはお勧めです。デバッグ診断ツールをプロセスに接続し、ダンプをとって問題の原因を確認できます。記事に従ってください デバッグ診断ツールを使用して、IISで応答を停止したプロセスをトラブルシューティングする方法
グローバルHTTPエラーログを確認しましたか?
それは呼ばれています httperr.log
で、通常はログファイルディレクトリにありますC:\windows\system32\LogFiles
、メインの下W3CSVC1
サービス。
アプリプールで問題が発生したときはいつでも、そのファイルは非常に役に立ちました。