IISログからアプリケーションプールのクラッシュを診断する方法は?
アプリケーションプールのクラッシュは、IISログを分析することにより、原因をすばやく見つけることができます。 1.最初に、クラッシュ時点でW3SVCログを確認し、503エラーを検索し、アプリケーションプールのクラッシュまたは頻繁なリサイクルによって引き起こされるかどうかを判断します。 2。HTTPERRログと組み合わせて、Connection_DroppedやRequestQueUefullなどの根本的なエラーエントリがあるかどうかを確認し、バックエンドが応答できないことを確認します。 3.イベントビューアーのアプリケーションとシステムログを確認し、5002、5015、5017からのイベントを見つけました。 4.コードの例外、依存関係の利用不能、急速な障害トリガー、メモリリークなどの一般的な原因をトラブルシューティングし、デバッグツールとパフォーマンスモニターを組み合わせてさらに分析します。マルチログの相互検証を通じて、問題の範囲を徐々に狭めます。
あなたのウェブサイトがIISで実行されると、アプリケーションプールがクラッシュするという問題に遭遇することがあります。イベントの視聴者とログはいくつかの手がかりを提供できますが、多くの場合、真に有用な情報がIISのログファイルに隠されています。これらのログを分析することにより、問題を解決するために推測や再起動に頼るのではなく、問題の根本原因をより速く見つけることができます。

IISログの例外時点を表示します
デフォルトでは、IISはC:\inetpub\logs\LogFiles
ディレクトリにログファイルを生成し、各サイトには個別のフォルダーがあります。まず、アプリケーションプールがクラッシュする概算時間を確認し、対応する期間のログエントリを見つける必要があります。
一般的な慣行は次のとおりです。

- クラッシュの前後に数分かかるログファイルを開きます
- ステータスコード503でリクエストを検索します(サービスは利用できません)
- 連続503エラーに注意してください。これは通常、アプリケーションプールがクラッシュしたか、頻繁にリサイクルされていることを意味します
503エラーは常にアプリケーションプールのクラッシュによって引き起こされるわけではありませんが、重要な信号です。アプリケーションプールのスタートアップ時間と故障制限と組み合わせることで、高速障害保護メカニズムのためにアプリケーションプールが無効になっているかどうかを判断できます。
W3SVCログとHTTPERRログ交差分析を組み合わせます
IIS独自のW3SVCログ(サイトごとにアクセス情報を記録)に加えて、 C:\Windows\System32\LogFiles\HTTPERR
にある別の見過ごされがちなHTTPERR
ログがあります。

これら2つのログの違いは次のとおりです。
- W3SVCログ:ユーザーがアクセスしたページや返されたステータスコードなど、成功または失敗したHTTP要求の詳細を記録します。
- HTTPERRログ:接続タイムアウト、プロトコルエラー、サーバービジーなど、より根本的なエラーを記録します。
Connection_Dropped
やRequestQueueFull
などの多数のエントリがHTTPERRに表示されると、バックエンドアプリケーションプールがリクエストに応答できなくなっていることを示し、アプリケーションプールのクラッシュまたはハングをさらに実証します。
ログを見ることに加えて、システムログとアプリケーションログを確認します
IISログ自体では、アプリケーションプールがクラッシュする理由はわかりません。詳細な診断を受けるには、確認する必要があります。
- Windowsイベントビューアー→アプリケーションログとシステムログ
-
WAS
(Windows Process Activation Service)またはIIS-WMSVC
からのエントリを見つける - イベントIDに注意してください: 5002、5015、5017およびアプリケーションプールのライフサイクルに関連するその他のイベント
たとえば、イベントID 5002のログが表示されている場合、「リサイクルに失敗したために「アプリケーションプール」myApppool」が無効になっているように見える場合、リサイクルに失敗したため、アプリケーションプールが無効になっていることを意味します。
さらに、 IISに対して障害のある要求トレースが有効になっている場合、より詳細なエラースタック情報を取得できます。
一般的な原因と調査の提案
ログから手がかりを見つけた後、次のステップは特定の理由を見つけることです。アプリケーションプールのクラッシュを引き起こすいくつかの一般的な原因とトラブルシューティング方法は次のとおりです。
コード例外は処理されていません
たとえば、.NETのnullReferenceExceptionまたはstackoverflowexceptionは、W3WP.EXEプロセスをクラッシュさせます。 Debugdiagなどのデバッグツールを使用して、 Windowsエラーレポート(WER)を有効にするか、メモリダンプを生成することにより、さらに分析できます。サービスやリソースへの依存は利用できません
データベースに接続できないこと、サードパーティのコンポーネントのロードに失敗したこと、許可不十分などの問題も間接的にクラッシュを引き起こす可能性があります。データベース接続タイムアウトやcomコンポーネントコールの障害などのキーワードがあるかどうかを確認してください。高速障害保護トリガー
アプリプールが頻繁にクラッシュする場合(1分あたり複数回など)、IISはアプリプールを自動的に無効にします。アプリプール設定のクイック障害保護オプションを確認し、しきい値を適切に調整します。メモリリークまたは過度の使用
ログに明らかなエラーがないが、アプリケーションプールが定期的にクラッシュする場合、メモリの使用量が制限を超える可能性があります。 Performance Monitor(Perfmon)を使用して、w3wp.exeのメモリ使用傾向を表示できます。
基本的にそれだけです。アプリケーションプールのクラッシュの診断は1段階のタスクではなく、複数のログソースの相互検証が必要です。重要なのは、IISログから始めて、例外の時点を見つけてから、システムログと実際のコード動作でスコープを徐々に狭めることです。
以上がIISログからアプリケーションプールのクラッシュを診断する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

IISログは、デフォルトでCドライブのinetpub \ logs \ logfilesディレクトリに保存され、自動的にクリーニングされません。保持期間は、手動またはスクリプトを通じて制御する必要があります。パスを変更するには、IISマネージャーを開くことができます→[サイト]またはサーバーノードを選択→[ログイン]→[ログイン]をダブルクリックして、「...」をクリックして、新しいディレクトリを選択します。 d:\ iislogsまたは複数のサーバーなどの非システムディスクを使用して、統一された方法でネットワークパスを構成することをお勧めします。設定時間は、LogParserスクリプト、タスク計画PowerShellスクリプト(30日間の保持など)、サードパーティツールなどを通じて達成できます。さらに、必要に応じてログ形式を調整したり、不必要なフィールドを閉じたり、デバッグログを一時的に閉じたり、ログ圧縮を有効にしてパフォーマンスとスペースの使用を最適化することをお勧めします。

アプリケーションプールのクラッシュは、IISログを分析することにより、原因をすばやく見つけることができます。 1.最初に、クラッシュ時点でW3SVCログを確認し、503エラーを検索し、アプリケーションプールのクラッシュまたは頻繁なリサイクルによって引き起こされるかどうかを判断します。 2. HTTPERRログを組み合わせて、Connection_DroppedまたはRequestQueUefullなどの根本的なエラーエントリがあるかどうかを確認し、バックエンドが応答できないことを確認します。 3.イベントビューアーのアプリケーションとシステムログを確認し、5002、5015、5017からのイベントを見つけました。 4.コードの例外、依存関係リソースの利用不能、急速な障害トリガー、メモリリークなどの一般的な原因をトラブルシューティングし、デバッグツールの組み合わせ

IISログで特定の文字列を検索するには、組み込みのWindowsツールまたはスクリプトを使用します。 1。コマンドプロンプトのFindSTRコマンドを使用して、次のような再帰的に検索します。 2。PowerShellを使用して、次のような柔軟な検索を実行します。 3.頻繁に使用する場合、LogParserツールを使用してSQL構文クエリをサポートし、結果をエクスポートできます。 4.ログの場所が異なる場合があり、検索方法を最適化するには大きなファイルが必要であることに注意してください。

複数のサーバーのIISログは、次の方法で実装できます。1。ログがイベントログに書き込まれ、中央サーバーにサブスクリプションを作成し、各IISサーバーで転送ルールを構成するシナリオに適したWindowsイベント転送を使用します。 2.ファイル共有スクリプトを使用して、小さな環境に適した定期的に収集し、スクリプトを使用して各サーバーからログファイルを定期的にコピーし、ロボコピーまたはXcopyとスケジュールされたタスク実行を組み合わせます。 3. Logstash、Nxlog、Fluentdなどのログコレクションツールを展開し、大規模な環境に適し、自動収集、フィルタリング、圧縮、転送をサポートし、再試行およびブレークポイントの連続伝送機能に失敗しました。さらに、ログパスを統合し、アクセス権限を構成し、ログの回転メカニズムに注意を払い、圧縮を検討する必要があります

parsingiislogswithpowershellは、複雑なツールなしで有用な情報を迅速に取得する方法です。 1.最初に、W3Cの拡張ログ形式にデフォルトで、フィールドはスペースで分離されているIISログ形式を理解します。 2。Import-CSVコマンドを使用してログファイルをインポートし、コメント行をスキップし、引用符の処理に注意してください。 3. where-object、Group-Object、その他のコマンドを使用して、404エラー、IPリクエストをカウントし、特定のページアクセスを照会します。 4.分析結果は、レポートのためにCSVにエクスポートできます。 5.この方法は、中規模のログファイルに適しています。大規模または複雑な分析では、LogParserやElkstackなどのツールを検討できます。

IISは、レジストリ構成を介してファイルサイズごとにログを自動的に分割できます。 1。IISマネージャーに「ログ」設定を入力し、「enableLogroloveroverbasedOnfilesize」をチェックし、「スケジュール」をチェックします。 2。レジストリパスhkey_local_machine \ system \ currentcontrolset \ services \ w3svc \パラメーターを変更し、100MBなどのmaxfilesizedword値(ユニットバイト)を追加または変更します。

theedefaultiislogfilepathisc:\ inetpub \ logs \ logfiles、buticcanbecustomized.1.eachwebsitehasitsownsubfolderlikew3svc1.2.tofindthe ExactPath、openiismanager、selectthesite、andchecktheloggingsection.3.logsuseThew3cformatandcontaindetailslikerequesttime、iPaddr

IISログを自動的にアーカイブするには、ログローリングサイクルを設定し、PowerShellスクリプトを使用してレガシーログを圧縮し、タスクスケジューラを使用して自動的に実行できます。 1. IISマネージャーにログファイルスクロール間隔を設定します。毎日スクロールしたり、サイズごとにスクロールしたり(10MB〜100MBなど)、その後の処理を容易にすることをお勧めします。 2. PowerShellスクリプトを書き、指定されたパスの下の設定日数(7日など)を超えるログファイルを見つけ、指定されたディレクトリに圧縮して元のファイルを削除します。 3.タスクスケジューラを介して基本的なタスクを作成し、トリガー周波数(毎日など)を設定し、スクリプトを最高の許可で実行し、パラメーター-ExecutionPolicyBypassを追加して、スクリプトの安定した実行を確保します。さらに、明確にする必要があります
