根据Process Explorer,我有一个服务器在硬件中断上使用10-25%的CPU时间。
我将如何去logging/诊断所有这些IRQ调用的原因?
机器是虚拟的,所以我知道物理硬件不是问题(虽然可能是驱动程序等)。
更新:尝试从这篇文章中的信息: http : //msdn.microsoft.com/en-us/library/ms797921.aspx
关于使用tracelog.exe和tracerpt.exe来捕获DPC和ISR事件,但是当我运行跟踪时,即使使用-dpcisr开关,也没有任何信息。 我得到的报告中的磁盘和进程信息,但没有中断…我知道中断正在发生,因为进程资源pipe理器仍然显示他们使用6-15%的CPU
KrView
启动命令promt – >进入KRView文件夹
C:\Program Files\KrView\Kernrates>Kernrate_i386_XP.exe
你会得到类似的东西
时间51354击中,每击25000个事件 模块命中毫秒%事件/秒 -------- ----- ----- ---- ---------- intelppm 36726 64582 71%14216809 ntoskrnl 6681 64582 13%2586246 hal 5246 64582 10%2030751 Ntfs 637 64582 1%246585 TCPIP
按CTRL + C后 (但让它运行一段时间),这应该给你一个指示看看。
现在要跟踪更多有关这些驱动器的信息,如果你不能猜测谁是根据它的名字制作驱动器,你可以在你的Windows系统文件夹中find它(tcpip将是文件tcpip.sys,右键单击该文件,你可以看到谁签署了)。
当search您最喜爱的search引擎,可能有相似的问题,我会开始寻找无微软一次。
请注意,intelppm 可能是问题的根源,但是它会在列表中显示很高,因为它将睡眠命令发送到CPU,因此它在输出中的位置将非常高(如果您有AMD CPU用intel驱动replaceintelppm)。
正如你可能已经注意到,这并没有给你的问题指出一个好的箭头,它仍然需要你的一些工作来追踪如何处理这个问题,但是它应该帮助你寻找什么方向。
尝试这个:
KrView
KrView的XP版本可以在Vista上运行,但是您需要以pipe理员身份运行它。 以pipe理员身份启动cmd shell,并在硬件中断问题发生时运行c:\ program files \ krview \ kernrates \ kernrate_i386_xp.exe。 将结果与问题未发生时的结果进行比较。 这将告诉你哪些硬件驱动程序正在占用CPU。
试试这个:开始,设置,控制面板,系统,设备pipe理器,IDE,主要IDE通道属性,高级设置,将两个传输模式设置为“DMA如果可用”。