![Vista 中的系统进程消耗 CPU;主要在 ntkrnlpa:KiDispatchInterrupt 中](https://linux22.com/image/1254715/Vista%20%E4%B8%AD%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%BF%9B%E7%A8%8B%E6%B6%88%E8%80%97%20CPU%EF%BC%9B%E4%B8%BB%E8%A6%81%E5%9C%A8%20ntkrnlpa%3AKiDispatchInterrupt%20%E4%B8%AD.png)
一段时间以来(几个月),我一直遇到系统进程 CPU 使用率过高的问题。最近,Windows 运行时,这个问题一直存在。使用每秒两次的 procexp 采样,系统进程似乎在 0% 和 ~40%(即一个核心的大部分)之间波动,周期为两秒。
我运行的是 Vista Business 32 位和 Norton Internet Security。在 sysinternals 论坛上发帖后,我现在已经卸载了 Norton,以防万一,但结果并没有什么不同。我当然可以提供其他可能有用的系统详细信息。
我认为我已经做了尽可能多的诊断,而无需寻求更多专家的建议。使用 procexp,我可以看到 ntkrnlpa 受到了牵连,并按照此处的说明进行操作http://rfvicente.spaces.live.com/blog/cns!5228FAA8B79B6EB1!590.entry我让 kernrate 告诉我 KiDispatchInterrupt 占该模块命中率的 84%。
那么现在怎么办?我能从这些事实中辨别出什么?这似乎可能与驱动程序有关,但我不知道可能是哪个驱动程序,我宁愿重新安装 Windows,也不愿花很长时间诊断问题。
如果有人能指出哪种驱动程序或其他因素可能导致这种情况,我们将不胜感激。
答案1
每当我遇到类似的问题时,我都能使用 RegMon 或 FileMon 来追踪它,因为当我小心不启动任何应用程序时,错误的进程是唯一活跃的进程。
如果它正在使用 CPU 资源,那么它很可能也在使用其他资源。这可以帮助追踪问题。
在我看来,罪魁祸首是编写不当的驱动程序 - 例如,显示器“驱动程序”每秒检查几次以查看显示器是否已旋转为纵向,HTC 同步驱动程序每秒检查两次是否存在与手机的 USB 链接。
供应商的名称出现在文件路径或注册表项中,这有助于确定原因。禁用系统通知区域中的相关项目确认了罪魁祸首(例如,右键单击并选择退出 - 活动消失。)
答案2
我已经将问题归咎于我的 Vostro 中的“Broadcom 440x 10/100 集成控制器”网络适配器。我当前的驱动程序是 4.60.0.0,发布日期为 2007 年 3 月 28 日... 不记得我是否或何时更改过它;我很确定问题不是由它直接导致的。嗯。只是在这里提供一些希望对后代 Google 有用的信息(向任何发现从 sysinternals 上复制了完全相同内容的人表示歉意)。我会尽快尝试找到另一个没有此问题的驱动程序。