如任务管理器所示,我的 CPU 上的内核时间异常高。
我可以用哪些方法解决这个问题?
答案1
查找内核时间占用情况的权威工具是 kernrate.exe。它随 Windows SDK/WDK Visual Studio 等一起提供。
Xperf 也可以进行相同的内核轮询/跟踪...并且可能更容易使用。Kernrate 有点厉害。
答案2
这可能比您想象的要容易。如果您的系统使用率持续较高,Process Explorer 会提供一个线程选项卡,您可以将其用于系统进程(进程 ID:4)。应该会显示有问题的模块和功能。
如果您需要一个正式的工具来收集经验数据来分析问题,您可以使用 Windows 性能记录器/Windows 性能分析器(Windows 性能工具包的一部分)。
答案3
我自己也遇到过这个问题,内核时间过长占用了 50% 的 CPU,而其他进程占用了剩余的 40%。这个问题是由于没有正确禁用和卸载 Trend AV 造成的。
尽管服务已停止,实时扫描已禁用,但内核微过滤器似乎已启用。我正确卸载软件后,推断它们正在消耗内核时间,并观察到内核时间减少到以前负载的十分之一。
要查看系统上的过滤器列表,请键入
C:\Users\TEMP>fltmc filters
Filter Name Num Instances Altitude Frame
------------------------------ ------------- ------------ -----
TmPreFilter 3 328500 0
luafv 1 135000 0
微软此处提供第三方过滤器列表。根据该电子表格,TmPreFilter 是 Trend Micro 的一个 AV 扫描程序。
答案4
使用 Process Monitor 和 DiskMon (Microsoft SysInternals) 查看机器正在做什么。除了不可靠的设备驱动程序之外,一个常见的罪魁祸首就是老式的分页。