如何在基于 Windows 的计算机冻结问题进行疑难解答

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3118553
概要
本文介绍如何在基于 Windows 的计算机和服务器上的冻结问题进行疑难解答。它还提供用于收集数据,帮助管理员的方法或软件开发人员诊断、 识别和解决这些问题。
标识问题
  • 冻结哪台计算机?(示例: 物理服务器、 虚拟服务器,等等。)
  • 冻结发生时正在执行何种操作?(示例: 关闭 GUI、 执行 X 操作,等等。)
  • 这些错误的出现频率?(示例: 每日 X 时,周围的每一天 X 时间,等等。)
  • 多少台计算机上会这样?(示例: 所有,一个或 X 数字。)
冻结的疑难解答
若要解决冻结,检查下表中,并使用一个或多个建议的故障诊断方法。
计算机类型和状态故障排除方法
在冻结的状态下运行的物理计算机中列出了这些方法,请参阅"解决这些问题的物理计算机或虚拟机处于冻结状态运行"一节。
不运行处于冻结状态的物理计算机中列出了这些方法,请参阅"解决这些问题不在冻结的状态下运行的物理计算机"一节。
在冻结的状态下运行的虚拟机中列出了这些方法,请参阅"解决这些问题 aphysical 计算机或运行处于冻结状态的虚拟机"一节。
不在冻结的状态下运行的虚拟机中列出了这些方法,请参阅"解决这些问题不在冻结的状态下运行的虚拟机"一节。

解决这些问题的物理计算机或虚拟机处于冻结状态运行

如果仍被冻结在物理计算机或虚拟机,使用一个或多个下列方法进行故障排除:

  • 尝试访问的计算机通过远程桌面、 citrix 服务器,等等。
  • 使用域帐户或本地管理员帐户登录到该计算机通过远程物理控制台访问功能,例如戴尔远程访问卡 (DRAC)、 HP 的集成暗箱式 (iLo) 或 IBM 远程监控器适配器 (RSA) 之一。
  • 测试 ping 到该计算机。数据包丢失和高的网络延迟,可能会看到。
  • 访问管理共享 (?服务器名\c$).
  • 按下 Ctrl + Alt + Delete 命令,然后检查响应。
  • 尝试使用计算机管理,远程服务器管理器中和 Wmimgmt.msc 的远程管理工具。

解决这些问题不在冻结的状态下运行的物理计算机

如果物理计算机 froze,但是现在正在处于良好状态,使用一个或多个下列方法进行故障排除:


  • 检查中出现问题的计算机的系统和应用程序日志。您可以通过使用下面的事件 Id:

    事件 ID: 41
    来源: Microsoft Windows 的内核的功耗

    事件 ID: 6008
    来源: 事件日志

  • 通过运行生成系统诊断报告 性能监控/报告 命令。

解决这些问题不在冻结的状态下运行的虚拟机

如果虚拟机 froze,但是现在正在处于良好状态,使用一个或多个下列方法进行故障排除:
  • 检查中出现问题的计算机的系统和应用程序日志。您可以通过使用下面的事件 Id:

    事件 ID: 41
    来源: Microsoft Windows 的内核的功耗

    事件 ID: 6008
    来源: 事件日志

  • 通过运行生成系统诊断报告 性能监控/报告 命令。
  • 检查虚拟管理监视工具中的历史记录。

对于服务器冻结收集数据
要为服务器冻结收集数据,检查下表中,并使用一个或多个建议使用的方法。
计算机类型和状态数据收集方法
在冻结的状态下运行的物理计算机用于收集数据的内存转储文件.或使用方法 2、 3 或 4。本部分后面列出了这些方法。
不运行处于冻结状态的物理计算机使用方法 1、 2、 3 或 4。本部分后面列出了这些方法。和使用池监视器来收集数据.
在冻结的状态下运行的虚拟机Hyper-Vor VMware:
使用内存转储文件收集数据在冻结的状态下运行的虚拟机.

XenServer:
使用方法 1、 2、 3 或 4。本部分后面列出了这些方法。
不在冻结的状态下运行的虚拟机使用方法 1、 2、 3 或 4。本部分后面列出了这些方法。

方法 1: 内存转储

重要:仔细按照本节中的步骤操作。如果错误地修改了注册表,可能会出现严重问题。在修改之前, 有关还原注册表备份 避免出现问题

当计算机意外停止时,完全存储器转储文件记录系统内存的全部内容。完全存储器转储文件可能包含数据的收集的内存转储文件时正在运行的进程。

若要启用转储的计算机的内存,请执行以下步骤。

注意:如果有像 Compaq 计算机中的自动系统重启 (ASR) 功能的计算机启用的重启功能禁用它。此设置通常位于 BIOS。通过启用此功能,如果 BIOS 没有检测到操作系统中的检测信号,它将重新启动计算机。重新启动会中断转储过程。

  1. 请确保计算机设置以获取完整的内存转储文件。若要执行此操作,请按照下列步骤操作:
    1. 转到系统属性>高级>性能设置>高级,然后检查或更改通过单击更改虚拟内存。
    2. 返回到系统属性>高级> 中启动和故障恢复设置
    3. 写入调试信息部分中,选择完全存储器转储

      注意:对于早于 Windows 8 或 Windows Server 2012 的 Windows 版本,完全内存转储类型不可用在 GUI 中。您必须在注册表编辑器中对其进行更改。若要执行此操作,更改为1 (REG_DWORD) 下面的CrashDumpEnabled注册表项的值:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\CrashDumpEnabled

    4. 选择覆盖任何现有文件
    5. 确保没有在系统驱动器上的页面文件 (pagefile.sys),并且是至少 100 兆字节 (MB) 上安装的 RAM (初始和最大值)。

      此外,您可以使用 在 Windows Vista 或 Windows Server 2008 中的系统驱动器上的空间限制的解决方法.
    6. 确保更多释放向上空间硬盘驱动器上的物理 RAM 不足。
  2. 启用 CrashOnCtrlScroll 注册表值,以允许系统使用键盘生成的转储文件。若要执行此操作,请按照下列步骤操作:
    1. 转到注册表编辑器,然后找到以下注册表项:
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. 两个注册表项中创建下面的 CrashOnCtrlScroll 注册表项:
      Value Name: CrashOnCtrlScroll   Data Type: REG_DWORD   Value: 1
    3. 退出注册表编辑器。
    4. 重新启动计算机。
  3. 一些物理服务器上,可能会从 Web 界面特征 (如 DRAC,iLo 和 RSA) 生成的 nonmakeable 中断 (NMI)。但是,默认情况下,此设置将停止系统而无需创建内存转储。

    若要允许操作系统生成 NMI 中断在内存转储文件,请设置的值 NMICrashDump1(REG_DWORD) 的注册表项。然后,重新启动计算机以应用此更改。

    注意:这是仅适用于 Windows 7,Windows Server 2008 R2 和更早版本的 Windows。对于 Windows 8 Windows Server 2012 和更高版本的 Windows,NMICrashDump注册表项不再是必需的和 NMI 中断会导致Stop 错误之后内存转储数据收集.
  4. 当计算机出现问题时,按住适当端按住 Ctrl 键,并按两次滚动锁定键,以生成内存转储文件。

    注意:默认情况下,转储文件位于以下路径中:
    %Systemroot%\memory。DMP

方法 2: 数据性能检查

使用转储检查实用程序 (Dumpchk.exe) 读取内存转储文件或验证该文件已被正确创建。您可以下载 dumpchk 将从windows 调试工具从 Windows 软件开发工具包 (SDK)。

了解 如何使用 Dumpchk.exe 检查转储文件.

方法 3: 性能监视器

可以使用 Windows 性能监视器来检查您所运行的程序如何影响计算机的性能,在实时和通过收集日志数据以备日后分析。若要创建性能计数器和事件跟踪日志收集本地和远程系统上,以管理员身份运行命令提示符处运行以下命令:
Logman create counter LOGNAME_Long -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:05:00
Logman create counter LOGNAME_Short -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:00:10

然后,可以启动或停止日志,通过运行以下命令:
logman start LOGNAME_Long / LOGNAME_Shortlogman stop LOGNAME_Long / LOGNAME_Short
性能监视器日志文件位于以下路径中:
C:\PERFLOGS

方法 4: Microsoft 支持诊断

  1. 在搜索框中的 Microsoft 支持诊断自助服务门户键入 Windows 性能诊断.
  2. 在搜索结果中,选择Windows 性能诊断,然后单击创建
  3. 执行诊断的步骤。

用于收集数据的运行处于冻结状态的物理计算机内存转储

重要:仔细按照本节中的步骤操作。如果错误地修改了注册表,可能会出现严重问题。在修改之前, 有关还原注册表备份 避免出现问题

若要启用转储的计算机的内存,请执行以下步骤:
  1. 确保服务器设置以获取完整的内存转储文件,则可以通过网络访问它。若要执行此操作,请按照下列步骤操作:

    注意:如果它不能直接通过网络访问受影响的计算机,请尝试以生成内存转储文件通过 NMI 中断。如果以下设置的一些不合格的操作的结果可能不会收集内存转储文件。

    1. 尝试访问的计算机的手段。

      注意:在的情况下访问操作系统不是可能的试着要检查类型的内存转储文件和页面文件的当前配置计算机远程计算机上访问注册表编辑器。
    2. 从最好的相同的网络和子网的远程计算机,请转到注册表编辑器>连接网络注册表。然后,连接到关注此问题的计算机中,验证下列设置:
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\CrashDumpEnabled

        请确保 CrashDumpEnabled注册表项是 1。
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\NMICrashDump

        某些物理服务器上,如果 NMICrashDump 注册表项存在并且其值为 1,可以充分利用 NMI 从远程管理功能 (如 DRAC,iLo 和 RSA)。
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles and ExistingPageFiles

        如果页面文件注册表项的值,系统管理的大小不会反映在注册表中 (示例值:?: \pagefile.sys)。

        如果自定义了页面文件,大小将会反映在注册表中,如?: \pagefile.sys 1024 1124 其中 1024年是初始大小,1124年是的最大大小。

        注意:如果在注册表中未反映的尺寸,尝试访问管理共享页面文件所在的位置 (如?服务器名\C$).
    3. 请确保计算机的系统驱动器上的页面文件 (pagefile.sys) 并且是至少 100 MB 上安装的 RAM。
    4. 请确保没有更多释放计算机的硬盘驱动器上的空间比物理 RAM。
  2. 启用计算机值以允许系统生成转储使用键盘上的CrashOnCtrlScroll注册表。若要执行此操作,请按照下列步骤操作:
    1. 从最好是在同一网络和子网的远程计算机,请转到注册表编辑器>连接网络注册表。连接到相关的计算机并找到以下注册表项:
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. 两个注册表项中创建下面的CrashOnCtrlScroll注册表项:
      Value Name: CrashOnCtrlScroll   Data Type: REG_DWORD   Value: 1
    3. 退出注册表编辑器。
    4. 重新启动计算机。
  3. 当计算机出现问题时,按住右 CTRL 键,然后按两次滚动锁定键,以生成内存转储。

    注意:默认情况下,转储文件位于以下路径中:
    %Systemroot%\memory。DMP

使用池监视器来收集数据的物理不在冻结的状态下运行的计算机

池监视器显示分配数和未完成的字节分配的按池和传入呼叫的ExAllocatePoolWithTag的标记的类型。

了解 如何使用池监视器 以及如何 使用数据池泄漏的疑难解答.

使用内存转储收集数据在冻结的状态下运行的虚拟机

虚拟机正在其上运行的应用程序中使用下列方法之一。

Microsoft Hyper-V

在 Microsoft Hyper-V 服务器 2012年和虚拟机正在运行 Windows 8,Windows Server 2012 或更高版本的 Windows 上,可以使用通过内置的 NMI 特征 调试-虚拟机 用于调试和获取的内存转储。

若要调试在 Hyper-V 虚拟机,请在 Windows PowerShell 运行以下 cmdlet:
Debug-VM -Name "VM Name" -InjectNonMaskableInterrupt -ComputerName Hostname

注意:此方法是仅适用于 Windows 8,Windows Server 2012 和更高版本的 Windows 虚拟机。早期版本的 Windows 中,请参阅 1 到 4,在本节前面描述的方法。

VMware

您可以使用 VMware 快照或挂起状态和提取相当于完全存储器转储文件的内存转储文件。通过使用 检查点到核心工具 (vmss2core)您可以将两者都挂起 (.vmss) 和快照 (.vmsn) 状态文件转储到文件,然后使用标准的 Windows 调试工具来分析该文件。

Citrix XenServer

通过按下右 CTRL + 滚动锁定 + 滚动锁定键盘组合所述方法 1 中,并在发生内存转储进程 citrix 服务器站点.

更多信息

在 Windows Vista 和 Windows Server 2008 上的系统驱动器上的空间限制

在 Windows Vista 或 Windows Server 2008 中,您可能没有足够的可用磁盘空间来生成完全内存转储文件系统卷上。没有 修补程序 即使在内存转储文件的存储系统驱动器上没有足够的空间允许的数据集合。

另外,在 Windows Vista 和 Windows 服务器 2008年服务包 (SP2),没有第二个选项如果系统驱动器没有足够的空间。亦即,您可以使用 DedicatedDumpFile 注册表项。若要了解如何使用注册表项,请参见 Windows Vista 和 Windows Server 2008 中的新行为.

有关详细信息,请参阅 如何使用 DedicatedDumpFile 注册表值,以克服系统驱动器上的空间限制.
第三方信息免责声明

本文讨论的第三方产品是由与 Microsoft 无关的公司生产的。Microsoft 不做这些产品的任何担保,默示或其他有关的性能或可靠性。

属性

文章 ID:3118553 - 上次审阅时间:12/11/2015 02:16:00 - 修订版本: 3.0

Windows Server 2016 Technical Preview, Windows 10, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Foundation, Windows Server 2012 R2 Essentials, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8.1, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows 8 Enterprise, Windows 8 Pro, Windows 8, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Server 2008 R2 Foundation, Windows 7 Ultimate, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Home Premium, Windows 7 Home Basic, Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 Standard, Windows Server 2008 Foundation, Windows Vista Ultimate, Windows Vista Enterprise, Windows Vista Business, Windows Vista Home Premium, Windows Vista Home Basic

  • kbprb kbtshoot kbexpertiseadvanced kbsurveynew kbmt KB3118553 KbMtzh
反馈