如何解决内核时间过长的问题?

如何解决内核时间过长的问题?

如任务管理器所示,我的 CPU 上的内核时间异常高。

我可以用哪些方法解决这个问题?

在此处输入图片描述

答案1

查找内核时间占用情况的权威工具是 kernrate.exe。它随 Windows SDK/WDK Visual Studio 等一起提供。

Xperf 也可以进行相同的内核轮询/跟踪...并且可能更容易使用。Kernrate 有点厉害。

答案2

这可能比您想象的要容易。如果您的系统使用率持续较高,Process Explorer 会提供一个线程选项卡,您可以将其用于系统进程(进程 ID:4)。应该会显示有问题的模块和功能。

在此处输入图片描述

如果您需要一个正式的工具来收集经验数据来分析问题,您可以使用 Windows 性能记录器/Windows 性能分析器(Windows 性能工具包的一部分)。

https://blogs.technet.com/b/yongrhee/archive/2012/11/23/installing-the-windows-performance-toolkit-v5-0-wprui-wpr-xperf.aspx

https://blogs.technet.com/b/yongrhee/archive/2012/11/23/wpr-xperf-capture-high-cpu-disk-io-file-registry-networking-private-bytes-virtual-bytes-paged-pool-nonpaged-pool-and-or-application-slowness.aspx

答案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) 查看机器正在做什么。除了不可靠的设备驱动程序之外,一个常见的罪魁祸首就是老式的分页。

相关内容