jlupolt Asked: 2010-01-20 04:43:00 +0800 CST2010-01-20 04:43:00 +0800 CST 2010-01-20 04:43:00 +0800 CST 如何找出导致 Windows 中断的原因? 772 有时我会遇到处理器中断时间百分比较高的服务器(Windows 2003 和 2008)。有没有办法查看导致中断的程序或设备? windows performance debugging kernel interrupts 4 个回答 Voted Dave Andersen 2014-08-20T12:45:15+08:002014-08-20T12:45:15+08:00 在深入研究文档(基于此处的其他答案)之后,这是我最终使用的过程: 捕获问题的 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 性能工具包的一部分)中打开跟踪Windows Performance Analyzer;有些地方提到使用xperfview。 展开Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack,右键单击并add graph to analysis view 这指向了有问题的司机。在这种情况下,HDAudBus.sys 通过中断使用了我的 cpu 的恒定 10.82%,这正是 Process Explorer 向我展示的内容。 RandomNickName42 2011-06-09T19:25:15+08:002011-06-09T19:25:15+08:00 如果您可以处理低级系统工具; Windows 性能分析器 (WPA) Windows Performance Analyzer (WPA) 是一组性能监控工具,用于生成 Microsoft Windows 操作系统和应用程序的深入性能配置文件。 在你学会如何使用 xperf 之后;查看; DPC/ISR 行动 DPC/ISR 操作会生成一份文本报告,其中总结了有关 DPC 和 ISR 的各种指标。此操作的用法是: 语言:c-a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2] 选项 描述 个人电脑 仅显示 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。如果未指定报表类型,则默认打印所有三种报表。 Syclone0044 2013-05-16T12:33:40+08:002013-05-16T12:33:40+08:00 这是我找到的关于如何执行此操作的最佳文章,其中包含教程、屏幕截图和相关工具的下载链接: http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/ ron 2019-03-09T03:48:04+08:002019-03-09T03:48:04+08:00 LatencyMon和DPC Latency Checker是两个很棒的工具。
在深入研究文档(基于此处的其他答案)之后,这是我最终使用的过程:
捕获问题的 ETW 日志
最简单的方法是使用Windows Performance Recorder。我不确定它何时首次出现,但似乎内置于最新版本的 Windows 中。将配置文件设置为
CPU usage
。或者,使用提升的命令提示符,导航到包含它的文件夹并使用命令行工具 xperf:
请注意,您将需要关闭 Process Monitor 或任何其他使用 ETW 的应用程序,否则您将收到以下错误:
xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
停止跟踪/保存日志
在(Windows 性能工具包的一部分)中打开跟踪
Windows Performance Analyzer
;有些地方提到使用xperfview
。展开
Computation
->CPU Usage (Sampled)
->DPC and ISR Usage by Module, Stack
,右键单击并add graph to analysis view
这指向了有问题的司机。在这种情况下,HDAudBus.sys 通过中断使用了我的 cpu 的恒定 10.82%,这正是 Process Explorer 向我展示的内容。
如果您可以处理低级系统工具;
在你学会如何使用 xperf 之后;查看;
这是我找到的关于如何执行此操作的最佳文章,其中包含教程、屏幕截图和相关工具的下载链接:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
LatencyMon和DPC Latency Checker是两个很棒的工具。