如何在 Windows 10 中 CPU 峰值或内存峰值期间转储进程列表?

如何在 Windows 10 中 CPU 峰值或内存峰值期间转储进程列表?

我的机器是 Windows 10,它冻结了 2 分钟,这真的很麻烦。问题是一切都太慢了,我无法看到进程列表以便进一步调查。

  1. 捕获导致问题的过程的最佳方法是什么?
  2. 我需要根据哪些因素来过滤进程列表以找到有问题的进程?(根据以前的经验,我知道在出现峰值时我应该查看内存使用情况和 CPU 使用情况。请告诉我还应该查看什么?)

我曾经prefmon查找过 CPU 和内存峰值的时间。我更想知道如何找到麻烦的进程。我做的一个简单的技巧是安排一个作业tasklist每分钟将输出转储到文本文件中。但是,我可以看到,当峰值发生时,安排的作业没有运行 3-4 分钟。

答案1

一种方法是,当您知道机器已挂起时,让整个机器崩溃并获取“完整”内存转储。

您应该按照以下 KBA 提前设置计算机以初始化键盘崩溃:

您还需要配置计算机以创建完整转储。快速谷歌搜索后,我找到了:

无论哪种方式,我都会假设您可以在计算机处于挂起状态时获取memory.dmp文件,然后您可以:

  1. 下载 Windows SDK以便只安装调试工具组件。这将让WindbgC:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe

  2. 启动Windbg并加载转储文件。“文件”→“打开崩溃转储”。

  3. 现在这可能会变得很重,但如果你只想要一个易于使用的进程树,你可以使用名为 DbgKit 的扩展。要使用它,请将 64 位 dll 复制到C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext\

  4. 在 中Windbg,使用以下命令加载扩展:

    .load dbgkit
    

    以下命令将显示它已加载:

    .chain
    
  5. 然后您可以运行:

    !dbgkit.ps
    

这将为您提供一个 Process Explorer 类型的转储视图,以便您可以查看进程正在执行的操作。提取各种信息需要一段时间,但它会为您提供所需的信息。

希望这是一个好的开始。除此之外,我建议你看看以下视频碎片整理工具9 频道系列节目关于如何调试挂起的内存转储。

相关内容