本頁說明 Spot VM:超出 Compute Engine 容量的虛擬機器 (VM) 執行個體。Spot VM 的費用折扣幅度相當大,但 Compute Engine 可能會隨時預先停止或刪除 (搶佔) Spot VM,以便回收容量。Spot VM 是先占 VM 的最新版本。
VM 的佈建模型會影響折扣和可用性;Compute Engine VM 可使用標準佈建模型 (標準 VM) (預設) 或 Spot 佈建模型 (Spot VM)。與標準 VM 相比,Spot VM 的價格大幅降低,但可用性較低,因為 Spot VM 會受到先占的影響。使用 Spot VM 降低容錯工作負載的成本。
如要進一步瞭解 Compute Engine VM 的一般資訊,請參閱「虛擬機器執行個體」說明文件。如要瞭解如何建立 Spot VM,請參閱「建立及使用 Spot VM」。
什麼是 Spot VM?
與標準 VM 的以量計價價格相比,Spot VM 的價格大幅降低,多數機型和 GPU 享有 60% 至 91% 的折扣,其他資源則享有較低折扣。不過,Compute Engine 隨時可能會搶佔 Spot VM,例如在需要其他工作資源時。在這個不確定的搶佔時間點,Compute Engine 會根據您為每個 Spot VM 指定的終止動作,停止 (預設) 或刪除 Spot VM。Spot VM 是額外的 Compute Engine 容量,因此供應情形會隨 Compute Engine 用量而異。除非您特別限制執行時間,否則 Spot VM 沒有執行時間下限或上限。
如果您的工作負載具備容錯能力,且能承受 VM 可能遭到先占的影響,Spot VM 即可大幅降低 Compute Engine 費用。例如可在 Spot VM 上執行批次處理工作。如果部分 VM 在處理過程中停止,工作執行速度會變慢,但不會完全停止。特價 VM 不會對現有 VM 造成額外的工作負載,就能完成批次處理工作,且不用全額購買更多標準 VM。
Spot VM 限制
Spot VM 的運作方式與標準 VM 類似,但有以下限制:
- Compute Engine 隨時可能會搶佔 Spot VM 來回收資源。Compute Engine 會基於各種原因 (例如系統事件) 終止 Spot VM。一般而言,Compute Engine 因現況而回收 Spot VM 的可能性很低,但仍需視當前狀況,每天和不同區域間都可能有所差異。詳情請參閱本文件中的「優先選取」一節。
- Spot VM 是有限的 Compute Engine 資源,因此可能無法隨時供應。
- Spot VM 無法在運作時即時遷移並成為標準 VM,也無法在發生主機事件時設為自動重新啟動。
- 由於有上述限制,因此即時 VM 並未涵蓋在任何服務水準協議的涵蓋範圍內,且已排除在 Compute Engine 服務水準協議之外。
- Compute Engine 的 Google Cloud 免費方案抵免額不適用於 Spot VM。
- Spot VM 僅適用於支援的機器類型。
Spot VM 先占
本節說明 Compute Engine 如何先占 Spot VM,以及系統會選取哪些 VM 進行先占。
先占程序
Compute Engine 會執行下列步驟,以先占 Spot VM:
- Compute Engine 以 ACPI G2 Soft Off 信號形式,向 VM 傳送先占通知。您可以使用關機指令碼來處理先占通知,並在 VM 停止前完成清除動作。先占通知的關閉期間為盡力以最佳方式執行,最多 30 秒。
- 如果 Spot VM 未在先占通知關機期間停止,Compute Engine 就會向作業系統傳送 ACPI G3 Mechanical Off 信號。
- Spot VM 的最終狀態會因您為每個 VM 指定的終止動作而異:
- 如果終止動作設為
STOP
或未指定,Compute Engine 會停止 VM,並將 VM 轉換為TERMINATED
狀態。 - 如果終止動作設為
DELETE
,Compute Engine 就會刪除 VM。
- 如果終止動作設為
如果先占 VM 已停止,仍會顯示在專案中,但只要 VM 仍處於 TERMINATED
狀態,就不會向您收取 VM 的時數費用。您可以存取和還原 VM 所連接的永久磁碟內的資料,但除非刪除磁碟,否則磁碟仍會產生儲存費用。與標準 VM 相同,當您刪除 Spot VM 時,系統會刪除標示為自動刪除的永久磁碟。
如果 Compute Engine 在建立 Spot VM 後不到一分鐘便將其先佔,就不會向您收取這些 VM 的使用費。這樣可確保您不會為 Spot VM 付費,除非 Spot VM 有時間完成大量工作。不過,系統仍會照常計算付費作業系統的費用。
先占選擇
Spot VM 處於 RUNNING
狀態時,可能會發生先占情形;如果處於 TERMINATED
狀態,Spot VM 就不會先占。因此,您可以停止再重新啟動 Spot VM,藉此重設優先權程序,因為停止 VM 會使 VM 處於 TERMINATED
狀態。只要有足夠的容量,您可以隨意停止及重新啟動先占 Spot VM。值得注意的是,重設或重新啟動 VM 會讓 VM 處於 RUNNING
狀態,因此不會重設先占程序。
您無法查看發生任何預取事件的原因。與資源可用性錯誤類似,預取率可能因不同區域、不同時間或不同資源而異。如需降低優先權率的具體建議,請參閱最佳做法。
定價
Spot 價格 (Spot VM 的價格) 可為 VM 提供大幅折扣。與多數機型和 GPU 的標準價格相比,Spot 價格提供 60% 至 91% 的折扣。此外,您還可享有較低的折扣,適用於任何 A4 或 A3 機器類型和 GPU、本機 SSD、外部 IP 位址,以及 Spot VM 的 Tier_1 網路費用。自訂機型會比標準機型多收附加費率。自訂機器類型的即時價格已包含這項附加費率。
值得注意的是,如果先占 VM 已停止,只要 VM 仍處於 TERMINATED
狀態,就不會向您收取 VM 的時數費用。您可以存取和還原 VM 所連接的永久磁碟內的資料,但除非刪除磁碟,否則磁碟仍會產生儲存費用。進一步瞭解執行個體正常運作時間和磁碟定價。
如要查看 Spot VM 的最新價格,請參閱 Spot VM 定價頁面、使用 Cloud Billing Catalog API,或訂閱 Spot VM 價格公告。
搭配 Compute Engine 使用 Spot VM
本節提供 Spot VM 與其他 Compute Engine 產品搭配使用時的重要資訊。瞭解如何搭配代管執行個體群組、高級作業系統、本機 SSD 和 GPU 使用 Spot VM。此外,請瞭解 Spot VM 對 Compute Engine 資源配額的影響。
代管執行個體群組中的 Spot VM
您可以使用 gcloud CLI 或 Compute Engine API,在受管理的執行個體群組中建立 Spot VM。請在執行個體範本中指定建立 Spot VM 的選項,然後再建立或更新群組。
只有在有額外的 Compute Engine 資源可供使用時,代管執行個體群組才可建立或新增新的 Spot VM。如果這些資源受到限制,代管執行個體群組就無法調整規模大小,也無法自動調整群組中的 Spot VM 數量。
代管執行個體群組會一直嘗試維持目標大小,或是維持該群組以自動配置器指定的大小。如果 Compute Engine 停止代管執行個體群組中一或多個 Spot VM,則群組會重複嘗試使用指定的執行個體範本,重新建立這些 VM。如果必要資源再度可供使用,群組就會重新建立 VM,並維持目標群組大小。
Spot VM 的付費作業系統
Spot VM 不會降低付費作業系統的費用,也不會改變使用這些作業系統時的計費方式。如果 Compute Engine 停止執行付費作業系統的 Spot VM,我們針對該作業系統收費時,會視為您自行停止 VM。您仍需支付基本費用,而系統仍會將用量依計費單位進位成整數,以計算付費作業系統的費用。
在執行付費作業系統的 Spot VM 上,機器類型的費用一律會按秒數收費,並以機器類型定價頁面上列出的價格為準。
Spot VM 上的本機 SSD
您可以啟動具有本機 SSD 的 Spot VM,Compute Engine 會依據Spot 價格,向您收取本機 SSD 的使用費。連接至 Spot VM 的本機 SSD 運作方式與一般本機 SSD 類似,會保留相同的資料保存特性,並在 VM 存留期間保持連接。
如果本機 SSD 的 VM 在其開始執行後的第一分鐘內即已先占,則 Compute Engine 不會向您收取本機 SSD 的使用費用。
如要進一步瞭解本機 SSD,請參閱新增本機 SSD 一文。
Spot VM 上的 GPU
您可以用較低的 GPU Spot 價格,將 GPU 新增至 Spot VM。連接至 Spot VM 的 GPU 在運作方式上就如同一般的 GPU,但僅會在 VM 的可用期限內保留。具有 GPU 的 Spot VM 會遵循與所有 Spot VM 相同的先占程序。
建議您申請專用 Preemptible GPU
配額,以便在 Spot VM 上使用 GPU。詳情請參閱「Spot VM 配額」。
在維護作業期間,根據預設會先占具有 GPU 的點數 VM,且這類 VM 無法自動重新啟動。如要重新建立已先占的 VM,請使用代管執行個體群組。代管執行個體群組會在 vCPU、記憶體和 GPU 資源可供使用時,重新建立 VM 執行個體。
如果您想在 VM 遭到先占前收到警告,或是想將 VM 設為在維護作業過後自動重新啟動,請使用具有 GPU 的標準 VM。對於搭載 GPU 的標準 VM,Compute Engine 會在先占前提前一小時通知。
如果 GPU 的 VM 在其開始執行後的第一分鐘內即已先占,則 Compute Engine 不會向您收取 GPU 的使用費。
如要瞭解如何建立附加 GPU 的 Spot VM,請參閱「建立附加 GPU 的 VM」和「建立 Spot VM」。例如,請參閱「使用 Spot VM 建立 A3 Ultra 或 A4 執行個體」一文。
Spot VM 配額
與其他 VM 一樣,Spot VM 需要可用的 CPU 配額。此外,如果您打算使用 Spot VM 搭配本機 SSD 或 GPU,Spot VM 也需要分別有磁碟配額和GPU 配額。
如果您使用 Spot VM 搭配這些資源,但未要求先占配額,Spot VM 就會消耗這些資源的標準配額。如果您打算使用 Spot VM,請考慮為這些資源要求可搶佔的配額,以免 Spot VM 使用其他配額。
當 Compute Engine 授予您某個地區的先占配額後,該地區的所有點數 VM (以及任何先占 VM) 都會計入該配額。該地區的所有標準 VM 仍會計入標準配額。在未提供先占配額的地區,您可以使用標準配額啟用 Spot VM。
除非 Compute Engine 已授予配額,否則先占配額不會顯示在 gcloud CLI 或 Google Cloud 控制台配額頁面中。詳情請參閱「先占資源的分配配額」。
後續步驟
歡迎試用
如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Compute Engine 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
免費試用 Compute Engine