CPUが断続的にスパイクする原因となるWebサイトの問題のトラブルシューティングを試みています。このサイトはWebサーバーのファーム上にあり、すべてのサーバーで異なる時間に断続的に発生します。スパイクを引き起こすプロセスはw3wp.exeです。私はすべての明白なことをチェックしました、そして今スパイクを引き起こすw3wp.exeのためにダンプファイルの複数のセットを分析したいと思います。
指定された時間に指定されたCPUしきい値に達したときに、w3wp.exeプロセスのダンプファイルを自動的に生成しようとしています。
ProcDump.exeを使用してこれを行うことができ、PID(プロセスID)が変更される前に起動された場合は処理されます。
例:
procdump -ma -c 80 -s 10 -n 2 5844
(5844はPIDです)
- -maすべてのプロセスメモリを含むダンプファイルを書き込みます。デフォルトのダンプ形式には、スレッドとハンドルの情報が含まれています。
- -cプロセスのダンプを作成するCPUしきい値。
- -sダンプが書き込まれる前にCPUしきい値に到達する必要がある連続秒数(デフォルトは10)。
- -n終了する前に書き込むダンプの数。
上記のコマンドは、CPUが10秒間80%スパイクするまで、w3wp.exeを監視し、少なくとも2回の反復で完全なダンプを取ります。
問題:
w3wp.exeの複数のインスタンスを実行しているため、プロセス名を使用できません。PIDを指定する必要があります。PIDは、アプリプールがリサイクルされるたびに変更されます。これにより、複数のダンプファイルをキャプチャする前にPIDが変更されます。次に、各Webサーバーでprocdumpを再度開始する必要があります。
私の質問:
PIDが変更された後でも、ダンプファイルを自動的に生成し続けるにはどうすればよいですか?