Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Occasionally I come across servers (Windows 2003 and 2008) with high processor % interrupt time. Is there a way to see what program or device is causing the interrupts?

share|improve this question

After digging through the documentation (based on the other answers here), this is the process I ended up using:

  1. Capture the ETW log of the problem

    The easiest way to do this is using the Windows Performance Recorder. I'm not sure when it first appeared, but seems to be built in on recent versions of Windows. Set the profile to CPU usage.

    Windows Performance Recorder

    or use the command-line tool xperf:

    xperf -on base+interrupt

    Note, you will need to close Process Monitor or any other app which uses ETW or you will get the following error: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. Stop tracing / save the log

    xperf -d interrupt_trace.etl
  3. Open the trace in Windows Performance Analyzer (part of Windows Performance Toolkit); some places mention using xperfview instead.

  4. Expand Computation -> CPU Usage (Sampled) -> DPC and ISR Usage by Module, Stack, right-click and add graph to analysis view

    Windows Performance Analyzer

  5. This pointed right to the driver in question. In this case, HDAudBus.sys is using a constant 10.82% of my cpu via interrupts, which is exactly what Process Explorer was showing me.

share|improve this answer
Nice one! Very well done. – Michal Sokolowski Dec 1 '15 at 11:57
Well explained. In my case, it turned out to be audiodg.exe. As soon as I killed it, DPCs went to almost nothing. I found additional details on how to resolve this here:… – CJBS Feb 9 at 20:03
One correction - you need to expand Computation-> CPU Usage (Sampled) - "CPU Usage" is ambiguous. – Bruce Dawson Feb 24 at 18:42
@BruceDawson - thanks for pointing this out! – Dave Andersen Feb 24 at 21:37

If you can handle low-level system tools;

Windows Performance Analyzer (WPA)

Windows Performance Analyzer (WPA) is a set of performance monitoring tools used to produce in-depth performance profiles of Microsoft Windows operating systems and applications.

After you learn how to use xperf; check out;

The DPC/ISR Action

The DPC/ISR action produces a text report that summarizes the various metrics regarding DPCs and ISRs. The usage for this action is:

Copy Code -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2 ]




Show statistics for DPC only


Show statistics for ISR only


Show summary report

interval [dt]

Show usage report for intervals of dt, default is 1 second

bucket [dt]

Show histogram for intervals of dt, default is 2 seconds

range T1 T2

Show delays between T1 and T2

If no data type is specified, default is to show report for both DPC

and ISR. If no report type is specified, default is to print all three kinds of report.

share|improve this answer

Here's the best article I've found on how to do this, with tutorials, screenshots, and download links to the relevant tools:

share|improve this answer
Welcome to Server Fault! Generally we like answers on the site to be able to stand on their own - Links are great, but if that link ever breaks the answer should have enough information to still be helpful. Please consider editing your answer to include more detail. See the FAQ for more info. – slm May 15 '13 at 21:40

Have a look at the Windows Process Explorer:

That should help.

share|improve this answer
Process Explorer shows how much processor time is spent serving interrupts, but it doesn't, as far as I can tell, provide a way of determining what is causing the interrupts. – jlupolt Jan 19 '10 at 18:23

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.