
プロセッサ % 割り込み時間が高いサーバー (Windows 2003 および 2008) に時々遭遇します。割り込みの原因となっているプログラムまたはデバイスを確認する方法はありますか?
答え1
ドキュメントを詳しく調べた後(ここにある他の回答に基づいて)、最終的に次のプロセスを使用しました。
問題のETWログをキャプチャする
これを行う最も簡単な方法は、Windows パフォーマンス レコーダーいつ初めて登場したのかはわかりませんが、最近のバージョンの 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 パフォーマンス ツールキットの一部) で開きます。代わりに を使用することを記載している箇所もありますxperfview
。展開
Computation
->CPU Usage (Sampled)
->DPC and ISR Usage by Module, Stack
、右クリックしてadd graph to analysis view
これは問題のドライバーを正確に示しています。この場合、HDAudBus.sys は割り込みによって CPU の 10.82% を一定に使用しており、これはまさに Process Explorer が示していた内容です。
答え2
低レベルのシステムツールを扱うことができる場合;
Windows Performance Analyzer (WPA) は、Microsoft Windows オペレーティング システムおよびアプリケーションの詳細なパフォーマンス プロファイルを作成するために使用されるパフォーマンス監視ツールのセットです。
xperf の使い方を学んだら、以下を確認してください。
DPC/ISR アクションは、DPC と ISR に関するさまざまなメトリックをまとめたテキスト レポートを生成します。このアクションの使用方法は次のとおりです。
コードをコピー -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2 ]
オプション
説明
dpc
DPC のみの統計情報を表示
イスラ
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 種類のレポートすべてが印刷されます。
答え3
以下に、チュートリアル、スクリーンショット、関連ツールのダウンロード リンクを含む、これを行う方法に関する最良の記事を示します。
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
答え4
2つの素晴らしいツールはレイテンシーモンそしてDPC レイテンシー チェッカー。