休眠故障排除 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

休眠故障排除

使用此信息帮助您诊断和修复在使实例休眠时可能遇到的问题。

在启动后无法立即休眠

如果您在实例启动之后过快地尝试使实例休眠,则会收到错误。

在启动之后,您必须等待大约分钟,然后才能休眠。

stopping 转变为 stopped 用时太长,内存状态在启动后无法恢复

如果正在进入休眠的实例从 stopping 状态转变为 stopped 状态用时过长,并且在启动之后内存状态未恢复,则这可能表明未正确配置休眠。

以下信息与 Windows 实例有关。对于 Linux 实例,请参阅《Amazon Elastic Compute Cloud Linux 实例用户指南》中的转变用时太长

Windows Server 2016 及更高版本

检查 EC2 Launch 日志,查找与休眠相关的消息。要访问 EC2 Launch 日志,请连接到实例并在文本编辑器中打开 C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log 文件。如果使用 EC2Launch v2,请打开 C:\ProgramData\Amazon\EC2Launch\log\agent.log

注意

默认情况下,Windows 会隐藏 C:\ProgramData 下的文件和文件夹。要查看 EC2 Launch 目录和文件,必须在 Windows 资源管理器中输入路径,或者更改文件夹属性以显示隐藏的文件和文件夹。

查找休眠的日志行。如果日志行指示出现故障或者缺少日志行,则很有可能在启动时配置休眠失败。

例如,以下消息指示休眠配置失败:Message: Failed to enable hibernation. 如果错误消息包含十进制 ASCII 值,则可以将这些 ASCII 值转换为纯文本,以便读取完整的错误消息。

如果日志行包含 HibernationEnabled: true,则已成功配置休眠。

Windows Server 2012 R2 和早期版本

检查 EC2 配置日志,查找与休眠相关的消息。要访问 EC2 配置日志,请连接到实例并在文本编辑器中打开 C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt 文件。从 SetHibernateOnSleep 中查找日志行。如果日志行指示出现故障或者缺少日志行,则很有可能在启动时配置休眠失败。

例如,以下消息指明实例根卷不够大:SetHibernateOnSleep: Failed to enable hibernation: Hibernation failed with the following error: There is not enough space on the disk.

如果日志行为 SetHibernateOnSleep: HibernationEnabled: true,则已成功配置休眠。

如果您未看到来自这些进程的任何日志,您的 AMI 可能不支持休眠。有关支持的 AMI 的信息,请参阅休眠先决条件

实例大小

如果您使用的是内存小于 1 GB 的 T3 或 T3a 实例,请尝试将实例的大小增加到至少有 RAM 1 GB 内存的实例。

实例“停滞在”停止状态

如果您已使实例休眠并且实例卡在 stopping 状态,则可以强制停止它。有关更多信息,请参阅排查实例的停止问题

休眠后无法立即启动竞价型实例

如果您尝试在竞价型实例休眠后的两分钟内启动该实例,则可能会出现以下错误:

You failed to start the Spot Instance because the associated Spot Instance request is not in an appropriate state to support start.

等待大约分钟,然后重试启动实例。

恢复竞价型实例失败

如果您的竞价型实例成功休眠但无法恢复,而是重新启动(未保留休眠状态的全新重启),则可能是因为用户数据包含以下脚本:

/usr/bin/enable-ec2-spot-hibernation

从启动模板的用户数据字段中移除此脚本,然后请求新的竞价型实例。

请注意,即使实例无法恢复,在不保留休眠状态的情况下,该实例仍然可以像从 stopped 状态启动一样启动。