偶尔我会遇到具有高处理器%中断时间的服务器(
Windows 2003和2008).有没有办法看到什么程序或设备导致中断?
在深入了解文档后(基于此处的其他答案),这是我最终使用的过程:
>捕获问题的ETW日志
最简单的方法是使用Windows Performance Recorder.我不确定它何时首次出现,但似乎内置在最新版本的Windows上.将配置文件设置为cpu使用率.
或者,使用提升的命令提示符,导航到包含它的文件夹并使用命令行工具xperf:
xperf -on base+interrupt+dpc
注意,您需要关闭Process Monitor或使用ETW的任何其他应用程序,否则您将收到以下错误:xperf:error:NT Kernel Logger:当该文件已存在时无法创建文件. (0xb7).
>停止跟踪/保存日志
xperf -d interrupt_trace.etl
>在Windows性能分析器(Windows性能工具包的一部分)中打开跟踪;有些地方提到使用xperfview代替.
>展开计算 – > cpu使用率(采样) – >按模块,堆栈进行DPC和ISR使用,右键单击并将图形添加到分析视图
>这指向了有问题的司机.在这种情况下,HDAudBus.sys通过中断使用我的cpu的常量10.82%,这正是Process Explorer向我展示的内容.