jlu*_*olt 46 windows performance debugging kernel interrupts
偶尔我会遇到具有高处理器中断时间百分比的服务器(Windows 2003 和 2008)。有没有办法查看导致中断的程序或设备?
小智 54
在仔细阅读文档后(基于此处的其他答案),这是我最终使用的过程:
捕获问题的 ETW 日志
最简单的方法是使用Windows 性能记录器。我不确定它何时首次出现,但似乎内置于最新版本的 Windows 中。将配置文件设置为CPU usage
.
或者,使用提升的命令提示符,导航到包含它的文件夹并使用命令行工具 xperf:
xperf -on base+interrupt+dpc
Run Code Online (Sandbox Code Playgroud)
请注意,您需要关闭 Process Monitor 或任何其他使用 ETW 的应用程序,否则您将收到以下错误: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
停止跟踪/保存日志
xperf -d interrupt_trace.etl
Run Code Online (Sandbox Code Playgroud)在Windows Performance Analyzer
(Windows Performance Toolkit 的一部分)中打开跟踪;有些地方提到使用xperfview
代替。
展开Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
,右键单击并add graph to analysis view
这直接指向了有问题的司机。在这种情况下,HDAudBus.sys 通过中断使用恒定 10.82% 的 CPU,这正是 Process Explorer 向我展示的。
如果你能处理低级系统工具;
Windows 性能分析器 (WPA) 是一组性能监视工具,用于生成 Microsoft Windows 操作系统和应用程序的深入性能配置文件。
在您学习如何使用 xperf 后;查看;
DPC/ISR 操作会生成一份文本报告,其中总结了有关 DPC 和 ISR 的各种指标。此操作的用法是:
语言:c-a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2 ]
选项
描述
数据中心
仅显示 DPC 的统计信息
ISR
仅显示 ISR 的统计数据
概括
显示总结报告
间隔[dt]
显示 dt 间隔的使用情况报告,默认为 1 秒
桶[dt]
显示 dt 间隔的直方图,默认为 2 秒
范围 T1 T2
显示 T1 和 T2 之间的延误
Run Code Online (Sandbox Code Playgroud)If no data type is specified, default is to show report for both DPC
和情监侦。如果未指定报告类型,则默认打印所有三种报告。
归档时间: |
|
查看次数: |
65382 次 |
最近记录: |