w3wp がハングアップ - スレッドがブロックされている可能性がありますか? WinDbg でデバッグしようとしています

w3wp がハングアップ - スレッドがブロックされている可能性がありますか? WinDbg でデバッグしようとしています

過去 1 週間、IIS で実行されている Web アプリの 1 つが 1 日に少なくとも 1 回はランダムにハングするという問題が発生しており、アプリ プールをリサイクルして再起動する必要があります。CPU とメモリは正常なようです。

IIS マネージャーのワーカー プロセス セクションでアクティブなスレッドを見ると、スレッドがスタックしたかのように蓄積されていることがわかります。ハングしているときは約 25 以上のスレッドがあり、正常に実行されているときは、どの時点でも 3 ~ 6 個のスレッドがあります。

これは C# Web アプリのコード変更によるものだと思いますが、それがどこで何なのかはわかりません。私が覚えている限りでは、いくつかの小さな変更が加えられただけです。

先週、WinDbg や dotTrace などのいくつかのツールを使用して診断し、明らかな問題を追跡できるかどうかを確認しようと一生懸命努力しましたが、現時点では少々手に負えません。

NoSql データベース (RavenDb) に接続する際にタイムアウト エラーが発生するスレッドが多数あることがわかりますが、これは誤解であり、別の IIS アプリから同じデータベースに問題なく接続でき、データベース管理ツールを使用してデータベースを管理/クエリできるため、IIS でスレッドがブロックされていることが原因だと思います。

ミニダンプと dotTrace スナップショットを使って遊ぶことができます。

以下は、WinDbg での「~*e !clrstack」の結果です。 https://gist.github.com/phinett/7901d82fa526696d3c92

犯人を突き止めるために何に注意すべきかについて、何か助言やアイデアはありますか? 必要であれば、ミニダンプへのアクセスを喜んで提供します。

ありがとう!

答え1

おそらく、DebugDiag v2 アップデート 1 から始めてプロセス ダンプを強制し、ハング分析を実行する方がはるかに簡単で迅速です。

関連情報