亞馬遜 EC2 執行個體休眠的疑難 - Amazon Elastic Compute Cloud

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

亞馬遜 EC2 執行個體休眠的疑難

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

無法在啟動後立即進入休眠

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

Linux 執行個體必須等待大約兩分鐘,啟動後 Windows 執行個體必須等待約五分鐘,然後才能休眠。

stopping 轉換為 stopped 花費太長時間,且記憶體狀態未在啟動後復原

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

Linux 執行個體

請檢查執行個體系統日誌,尋找與休眠相關的訊息。若要存取系統記錄檔,請連線至執行個體或使用get-console-output指令。從 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 執行個體休眠的先決條件。如果您使用自己的 Linux AMI,請確定您遵循的指示設定一個 AMI 以支援休眠

Windows Server 2016 及更新版本

請檢查 EC2 啟動日誌,尋找與休眠相關的訊息。若要存取 EC2 啟動日誌,連線至執行個體並在文字編輯器中開啟 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 設定日誌,請連線至執行個體,接著在文字編輯器中開啟 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,則表示休眠已成功設定。

視窗實體大小

如果您使用的記憶體少於 1 GB 的 T3 或 T3A Windows 執行個體,請嘗試將執行個體的大小增加為至少具有 1 GB 記憶體的執行個體。

執行個體「卡」在停止狀態

如果您讓執行個體進入休眠,但該執行個體「卡」在stopping 狀態,您可以強制將其停止。如需詳細資訊,請參閱 停用執行個體時的疑難排解

休眠後無法立即啟動 Spot 執行個體

如果您嘗試在休眠後兩分鐘內啟動 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 執行個體大約需要等待 5 分鐘,然後重試啟動執行個體。

繼續執行 Spot 執行個體失敗

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

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

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

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