系统和 ntoskrnl.exe 占用所有 CPU

系统和 ntoskrnl.exe 占用所有 CPU

我有一台 Windows Server 2012 文件服务器,它托管 Windows Server 2012 RDS 用户配置文件的 .vhdx 硬盘。每隔几秒钟,系统的 CPU 就会飙升至 100%。运行 Process Explorer 我发现这是由 ntoskrnl.exe 引起的,特别是线程上的 DeleteDriver 部分。有没有办法深入研究这个问题,找出原因?我想找到有问题的进程或驱动程序并将其从服务器中删除。

答案1

我不太清楚你所说的“线程上的 DeleteDriver 部分”是什么意思,但无论如何,你可能需要查看 Windows Performance Analyzer (WPA)。它是一个至高无上它是一款强大的工具,本质上是诊断 Windows 机器性能问题的事实上的工具。

首先,使用 Windows Performance Recorder 记录系统上的跟踪。确保您要观察的事件(无法解释的 CPU 峰值)在跟踪运行时发生。确保您捕获的指标与您的问题相关(例如 CPU 使用率)。

Windows 性能记录器

完成记录后,停止跟踪,然后在 Windows Performance Analyzer 中打开 *.etl 文件。

为了充分利用 WPA(以及您可能在 Windows 上用于调试的任何工具),请确保正确配置符号。需要符号来转换地址,例如

0x0000313a

变成有意义的名字,例如

0x00000313a ntoskrnl!methodA

对于像你我这样的肉袋来说。

接下来,打开 WPA 中的“分析”选项卡:

Windows 性能分析器

在这里,您可以深入了解正在发生的事情的非常详细的概况,包括但不限于在特定时刻显示活动的驱动程序/模块/系统文件的名称。您应该能够一目了然地看到时间线上 CPU 峰值的发生时间,并且您可以很好地缩小视野并深入查看这些事件。

相关内容