Windowsで割り込みの原因を調べるにはどうすればよいですか?


37

時々、プロセッサ%割り込み時間が長いサーバー(Windows 2003および2008)に遭遇します。割り込みの原因となっているプログラムまたはデバイスを確認する方法はありますか?

回答:


41

(ここの他の回答に基づいて)ドキュメントを掘り下げた後、これは私が使用したプロセスです:

  1. 問題のETWログをキャプチャします

    これを行う最も簡単な方法は、Windows Performance Recorderを使用することです。いつ最初に登場したのかはわかりませんが、最近のバージョンのWindowsに組み込まれているようです。プロファイルをに設定しますCPU usage

    Windowsパフォーマンスレコーダー

    または、昇格したコマンドプロンプトを使用して、それを含むフォルダーに移動し、コマンドラインツールxperfを使用します。

    xperf -on base+interrupt+dpc
    

    注、プロセスモニターまたはETWを使用する他のアプリを閉じる必要があります。そうしないと、次のエラーが表示されます。 xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. トレースを停止/ログを保存

    xperf -d interrupt_trace.etl
    
  3. Windows Performance Analyzer(Windows Performance Toolkitの一部)でトレースを開きます。xperfview代わりに使用することに言及している場所もあります。

  4. 展開Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack、右クリックしてadd graph to analysis view

    Windowsパフォーマンスアナライザー

  5. これは問題のドライバーを指し示していました。この場合、HDAudBus.sysは割り込みを介してCPUの一定の10.82%を使用していますが、これはまさにProcess Explorerが示していたものです。


良いですね!非常によくやりました。
ミハルソコロウスキ

よく説明した。私の場合、それはaudiodg.exeであることが判明しました。殺すとすぐに、DPCはほとんど何もしませんでした。:私はここでこの問題を解決する方法についての詳細見つかっwindows-exe-errors.com/...
CJBSを

1つの修正-計算-> CPU使用率(サンプル)を展開する必要があります-「CPU使用率」があいまいです。
ブルースドーソン

私の場合、タスクマネージャーには10%のDPCがありましたが、トレースのほとんどはntoskrnl.exeでした。ただし、そのモジュールのスタックを拡張すると、Killer Performance Suiteの一部であるサードパーティサービス「RfeCo10X64.sys」が明らかになりました。私はそのソフトウェアをアンインストールし(試みたのと反対のことを行っていたネットワーク優先順位付けシステム)、私の問題は解決しました。
クリス

Windows 10で動作しますか?他に利用可能なツールはありますか?パック全体のGiBファイルをインストールしたくありません。
不明123

4

低レベルのシステムツールを処理できる場合。

Windowsパフォーマンスアナライザー(WPA)

Windowsパフォーマンスアナライザー(WPA)は、Microsoft Windowsオペレーティングシステムおよびアプリケーションの詳細なパフォーマンスプロファイルを生成するために使用されるパフォーマンス監視ツールのセットです。

xperfの使用方法を学んだ後、チェックアウト;

DPC / ISRアクション

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種類すべてのレポートが印刷されます。


3

チュートリアル、スクリーンショット、および関連ツールへのダウンロードリンクを含む、これを行う方法について見つけた最高の記事を次に示します。

http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/


1
サーバー障害へようこそ!一般に、サイト上の回答は自分で立つことができるようにしています-リンクは素晴らしいですが、そのリンクが壊れた場合でも、回答はまだ役立つように十分な情報を持っている必要があります。回答を編集して詳細を含めることを検討してください。詳細については、FAQを参照してください
slm


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.