根据 Process Explorer 的显示,我的服务器在硬件中断上占用了 10-25% 的 CPU 时间。
我该如何记录/诊断所有这些 IRQ 调用的原因?
该机器是虚拟的,所以我知道物理硬件不是问题(尽管可能是驱动程序等)。
更新:尝试了本文中的信息: http://msdn.microsoft.com/en-us/library/ms797921.aspx
关于使用 tracelog.exe 和 tracerpt.exe 捕获 DPC 和 ISR 事件,但当我运行跟踪时,它没有任何信息,即使使用 -dpcisr 开关也是如此。我在报告中获得了磁盘和进程信息,但没有中断...我知道中断正在发生,因为 Process Explorer 仍然显示它们使用 6-15% 的 CPU
答案1
启动命令提示符 -> 转到 KRView 文件夹
C:\Program Files\KrView\Kernrates>Kernrate_i386_XP.exe
你会得到类似
时间 51354 次点击,每次点击 25000 个事件 模块命中数 毫秒 %Tot 事件数/秒 -------- ----- ----- ---- ---------- 英特尔 ppm 36726 64582 71 % 14216809 ntoskrnl 6681 64582 13 % 2586246 哈尔 5246 64582 10% 2030751 Ntfs 637 64582 1% 246585 传输控制协议
按下CTRL+后C(但让其运行一段时间),这将指示您要查看的位置。
现在要查找有关这些驱动器的更多信息,如果您无法根据驱动器名称猜测谁制造了驱动器,您可以在 Windows 系统文件夹中找到它(tcpip 将是文件 tcpip.sys,右键单击该文件,您可以看到谁对其进行了签名)。
当您在您最喜欢的搜索引擎上搜索可能遇到类似问题的其他人时,我会开始搜索 none microsoft once。
请注意,intelppm能可能是问题的根源,但它会在列表中显示得非常高,因为它向 CPU 发送了睡眠命令,因此它在输出中的位置会非常高(如果您有 AMD CPU,请用 amd 驱动程序替换 intelppm)。
您可能已经注意到,这并没有很好地指向您的问题,它仍然需要您做一些工作来追踪问题的根源,但它应该可以帮助您集中精力进行搜索。
答案2
尝试这个:
酷视
XP 版 KrView 可在 Vista 上运行,但您需要以管理员身份运行它。以管理员身份启动 cmd shell,并在发生硬件中断问题时运行 c:\program files\krview\kernrates\kernrate_i386_xp.exe。将结果与未发生问题时的结果进行比较。这将告诉您哪些硬件驱动程序占用了 CPU。
答案3
尝试以下操作:开始、设置、控制面板、系统、设备管理器、IDE、主 IDE 通道属性、高级设置,将两种传输模式都设置为“如果可用则使用 DMA”。