本方案指南介绍如何排查系统关闭未完成并停止响应的问题。 它还有助于收集数据并开始对问题进行分析。 有关详细信息,请参阅 有关系统关闭的常规信息。
内存转储文件
若要对这种情况进行故障排除,需要一个完整的 内存转储。 如果计算机具有大量内存,则应将活动内存转储配置为 减小转储 文件的大小。 若要获取内存转储,请启动关闭并等待 10 分钟进行转储分析。 使用与对处于冻结状态的计算机进行故障排除的方法相同,以配置和创建memory.dmp文件。 该文件用于从 物理计算机 或 虚拟机进行分析。
调试工具
若要分析内存转储文件,请安装 Windows 调试器。
WinDbg 的 MEX 调试扩展有助于调试和分析关闭问题。 它还可以简化常见的调试器任务,并为调试器提供强大的文本筛选功能。
分析准备
使用 符号路径 配置 Windows 调试器,以便 Windows 调试器可以加载 符号 来分析方案。
使用本地文件夹(例如 c:\Symbols)通过Microsoft符号服务器进行缓存。 按如下所示设置符号路径:
解压缩mex.zip文件,并将 64 位版本的 mex.dll 复制到已安装调试器工具的路径下的 winext 文件夹(例如 C:\Prgram 文件 (x86)\Windows Kits\10\Debuggers\x64\winext\mex.dll)。
启动调试器,加载 memory.dmp 文件,并加载 mex 扩展名。 例如:
0: kd> .load C:\Prgram Files (x86)\Windows Kits\10\Debuggers\x64\winext\mex.dll
Mex External 3.0.0.7172 Loaded!
使用调试器进行分析
可以使用 调试器分析故障转储文件 。
阻止关闭的可能原因包括:
- 阻止的内核情况
- 未结束的服务
- 在关闭时清除分页文件的策略已激活
阻止的内核情况
使用命令 !mex.tl -t
检查被阻止的线程。 例如:
未结束的服务
若要隔离第三方服务的问题,请在禁用第三方服务的情况下以安全模式启动计算机,然后在禁用第三方服务的情况下将其关闭。 如果问题与第三方服务相关,请 继续使用系统配置实用工具 和 选择性启动 来隔离阻止关闭的服务。
检查“ClearPageFileAtShutdown”值
检查值的值数据 ClearPageFileAtShutdown
(Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
)。 如果值为该值 0
,则禁用关闭时清除分页文件的策略。 如果值为 1
,则启用策略。