ときどき、プロセッサ(%)の割り込み時間が長いサーバー(Windows 2003および2008)に遭遇します。割り込みを引き起こしているプログラムまたはデバイスを確認する方法はありますか?
(ここでの他の回答に基づいて)ドキュメントを掘り下げた後、これは私が最終的に使用したプロセスです:
問題のETWログをキャプチャする
これを行う最も簡単な方法は Windows Performance Recorder を使用することです。いつ最初に表示されたかはわかりませんが、最近のバージョンのWindowsに組み込まれているようです。プロファイルを_CPU usage
_に設定します。
または、昇格したコマンドプロンプトを使用して、それを含むフォルダーに移動し、コマンドラインツールxperfを使用します。
_xperf -on base+interrupt+dpc
_
注:Process MonitorまたはETWを使用するその他のアプリを閉じる必要があります。そうしないと、次のエラーが発生します。xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
トレースを停止する/ログを保存する
_xperf -d interrupt_trace.etl
_
_Windows Performance Analyzer
_(Windows Performance Toolkitの一部)でトレースを開きます。一部の場所では、代わりにxperfview
を使用することに言及しています。
Computation
-> CPU Usage (Sampled)
-> _DPC and ISR Usage by Module, Stack
_を展開し、右クリックして_add graph to analysis view
_
これは問題のドライバーを正しく指し示していました。この場合、HDAudBus.sysは割り込みを介してCPUの10.82%を一定に使用しています。これは、Process Explorerが表示していたものとまったく同じです。
低レベルのシステムツールを処理できる場合。
Windowsパフォーマンスアナライザー(WPA)は、Microsoft Windowsオペレーティングシステムおよびアプリケーションの詳細なパフォーマンスプロファイルを作成するために使用されるパフォーマンス監視ツールのセットです。
Xperfの使用方法を学習した後。チェックアウト;
DPC/ISRアクションは、DPCおよびISRに関するさまざまなメトリックを要約するテキストレポートを生成します。このアクションの使用法は次のとおりです。
コードのコピー-a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]
オプション
説明文
dpc
DPCのみの統計を表示
isr
ISRのみの統計を表示
概要
概要レポートを表示
間隔[dt]
Dtの間隔の使用状況レポートを表示します。デフォルトは1秒です
バケット[dt]
Dtの間隔のヒストグラムを表示、デフォルトは2秒
範囲T1 T2
T1とT2の間の遅延を表示
If no data type is specified, default is to show report for both DPC
およびISR。レポートタイプが指定されていない場合、デフォルトでは3種類すべてのレポートが印刷されます。
これは、チュートリアル、スクリーンショット、および関連ツールへのダウンロードリンクを使用して、これを行う方法について私が見つけた最高の記事です。
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
2つの優れたツールは LatencyMon および DPC Latency Checker です。
Windows Process Explorerを見てください。
http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx
それは役立つはずです。