

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 Amazon EC2 執行個體休眠進行疑難排解
<a name="troubleshoot-instance-hibernate"></a>

使用此資訊來協助您診斷並修正讓執行個體進入休眠時可能遇到的問題。

**Topics**
+ [無法在啟動後立即進入休眠](#hibernate-troubleshooting-1)
+ [從 stopping 轉換為 stopped 花費太長時間，且記憶體狀態未在啟動後復原](#hibernate-troubleshooting-2)
+ [執行個體「卡」在stopping 狀態。](#hibernate-troubleshooting-3)
+ [休眠後無法立即啟動 Spot 執行個體](#hibernate-troubleshooting-4)
+ [繼續執行 Spot 執行個體失敗](#hibernate-troubleshooting-5)

## 無法在啟動後立即進入休眠
<a name="hibernate-troubleshooting-1"></a>

如果您在啟動執行個體後太快嘗試讓執行個體進入休眠，則會出現錯誤。

在啟動後，Linux 執行個體必須等待約兩分鐘，Windows 執行個體必須等待約五分鐘，才能進入休眠狀態。

## 從 stopping 轉換為 stopped 花費太長時間，且記憶體狀態未在啟動後復原
<a name="hibernate-troubleshooting-2"></a>

如果休眠的執行個體花費長時間才能從 `stopping` 狀態轉換為 `stopped`，且如果記憶體狀態未在啟動後復原，則可能表示休眠未正確設定。

**Linux 執行個體**

請檢查執行個體系統日誌，尋找與休眠相關的訊息。若要存取系統日誌，請[連線](connect-to-linux-instance.md)到執行個體，或使用 [get-console-output](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-console-output.html) 命令。從 `hibinit-agent` 尋找日誌行。如果日誌行指出失敗或日誌行不存在，則很可能在啟動時有錯誤的休眠設定。

例如，下列訊息表示執行個體根磁碟區不夠大：`hibinit-agent: Insufficient disk space. Cannot create setup for hibernation. Please allocate a larger root device.`

如果 `hibinit-agent` 最後的日誌行是 `hibinit-agent: Running: swapoff /swap`，則表示休眠已成功設定。

如果您沒有在程序中看到任何日誌，則您的 AMI 可能不支援休眠。如需支援的 AMI 資訊，請參閱[EC2 執行個體休眠的先決條件](hibernating-prerequisites.md)。如果您使用自己的 Linux AMI，請確保遵循 [將 Linux AMI 設定為支援休眠](hibernation-enabled-AMI.md) 的指示。

**Windows Server 2016 及更新版本**  
請檢查 EC2 啟動日誌，尋找與休眠相關的訊息。若要存取 EC2 啟動日誌，[連線](connecting_to_windows_instance.md)至執行個體並在文字編輯器中開啟 `C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log` 檔案。如果使用 EC2Launch v2，請開啟 `C:\ProgramData\Amazon\EC2Launch\log\agent.log`。

**注意**  
根據預設，Windows 會將檔案和資料夾隱藏在 `C:\ProgramData` 下。若要檢視 EC2 啟動目錄和檔案，您必須在 Windows 檔案總管中輸入路徑或變更資料夾屬性，才可顯示隱藏的檔案和資料夾。

尋找休眠的日誌行。如果日誌行指出失敗或日誌行不存在，則很可能在啟動時有錯誤的休眠設定。

例如，下列訊息表示無法設定休眠：`Message: Failed to enable hibernation.`。如果錯誤訊息包含十進位 ASCII 值，您可以將 ASCII 值轉換為純文字，以便讀取完整的錯誤訊息。

如果日誌行包含 `HibernationEnabled: true`，則表示休眠已成功設定。

**Windows Server 2012 R2 和舊版**  
請檢查 EC2 設定日誌，尋找與休眠相關的訊息。若要存取 EC2 設定日誌，請[連線](connecting_to_windows_instance.md)至執行個體，接著在文字編輯器中開啟 `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`，則表示休眠已成功設定。

**Windows 執行個體大小**  
如果您使用的是具有少於 1 GiB RAM 的 T3 或 T3a Windows 執行個體，請嘗試將執行個體的大小增加為具有至少 1 GiB RAM 的執行個體大小。

## 執行個體「卡」在stopping 狀態。
<a name="hibernate-troubleshooting-3"></a>

如果您讓執行個體進入休眠，但該執行個體「卡」在`stopping` 狀態，您可以強制將其停止。如需詳細資訊，請參閱[對 Amazon EC2 執行個體停止問題進行疑難排解](TroubleshootingInstancesStopping.md)。

## 休眠後無法立即啟動 Spot 執行個體
<a name="hibernate-troubleshooting-4"></a>

如果您嘗試在休眠後兩分鐘內啟動 Spot 執行個體，可能會出現下列錯誤：

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

Linux 執行個體須等待大約兩分鐘，Windows 執行個體須等待大約五分鐘，然後重試啟動執行個體。

## 繼續執行 Spot 執行個體失敗
<a name="hibernate-troubleshooting-5"></a>

如果您的 Spot 執行個體已成功休眠，但是無法繼續執行，而是會重新啟動 (未保留休眠狀態而直接重新啟動)，可能是因為使用者資料包含下列指令碼：

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

從啟動範本的**使用者資料**欄位中移除此指令碼，然後請求新的 Spot 執行個體。

請注意，即使執行個體無法繼續執行，在不保留休眠狀態的狀態下，仍可使用與從 `stopped` 狀態啟動的相同方式啟動執行個體。