具體來說,Spot VM 是使用 Spot 佈建模式的 VM。VM 的佈建模式會影響折扣和可用性。相較於標準 VM,Spot 佈建模式可讓您以更低的價格取得資源。不過,Compute Engine 隨時可能先占 Spot VM,以取回資源。使用 Spot VM 降低容錯工作負載的成本,例如批次處理工作或無狀態應用程式。
什麼是 Spot VM?
與標準 VM 的隨選價格相比,Spot VM 的價格明顯較低,所有機器系列 (C4、C3、M3 和 A3) 最多可享 60% 折扣。不過,Compute Engine 隨時可能會搶佔 Spot VM,例如需要資源處理其他工作時。在不確定的先占時間,Compute Engine 會根據您為每個 Spot VM 指定的終止動作,停止 (預設) 或刪除 Spot VM。
Spot VM 是額外的 Compute Engine 容量,因此供應情形因 Compute Engine 用量而異。您可以按照最佳做法,降低 Spot VM 的可用性問題,例如在建立前查看 Spot VM 的可用性,詳情請參閱本文後續說明。除非您特別限制執行時間,否則 Spot VM 沒有執行時間下限或上限。
如果工作負載具備容錯能力,且能承受 VM 可能遭到先占的影響,則 Spot VM 可大幅降低 Compute Engine 費用。例如,批次處理工作可以在 Spot VM 上執行。如果部分 VM 在處理過程中停止,工作執行速度會變慢,但不會完全停止。Spot 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 不在任何服務水準協議的涵蓋範圍內,也不適用 Compute Engine 服務水準協議。
Spot VM 先占
本節說明 Compute Engine 如何搶占 Spot VM,以及哪些 VM 會被選中。此外,如要瞭解如何偵測、處理及測試 Spot VM 的先占作業,請參閱「管理 Spot VM 的先占作業」一節。
先占程序
Compute Engine 會執行下列步驟,搶占 Spot VM:
Compute Engine 會更新 VM 預設中繼資料中的
preempted值為TRUE,向 VM 傳送先占通知,工作負載可以監控該值來偵測先占。「先占通知時間長度」是指從這個中繼資料信號,到 Compute Engine 傳送 ACPI G2 Soft Off 信號開始關機期間的時間長度。先占通知時間長度會影響工作負載處理先占的方式,您可以在建立 Spot VM 時,將其設為下列其中一個值: 120 秒:如果工作負載需要專屬時間長度,或需要超過 30 秒才能處理先占,建議將先占通知時間長度設為 120 秒。您可以等待 VM 遭到先占,在工作負載中處理先占。(您也可以視需要指定關機指令碼,在下列盡力關機期間執行)。
0 秒 (預設):如果未指定 Spot VM 的先占通知時間長度,或設為 0,則偵測到中繼資料中的先占和 ACPI G2 軟關機信號之間,不會有專屬延遲時間。工作負載可使用關機指令碼,在下列關機期間處理先占通知。
傳送 ACPI G2 Soft Off 信號後,系統會觸發您為 Spot VM 設定的所有關機指令碼,並代表關機期間的開始。Spot 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,模擬 VM 遭到先占的情況。
如果已先占的 VM 停止運作,該 VM 仍會顯示在專案中,但只要 VM 處於 TERMINATED 狀態,您就不必支付 VM 時數費用。您可以存取及復原附加至 VM 的任何永久磁碟資料,但這些磁碟仍會產生儲存費用,直到您刪除為止。與標準 VM 一樣,刪除 Spot VM 時,系統會刪除標示為自動刪除的永久磁碟。
如果 Compute Engine 在 Spot VM 建立後不到一分鐘就搶占該 VM,您就不必支付該 VM 的使用費。這樣一來,除非 Spot VM 有時間完成大量工作,否則您就不必支付費用。不過,付費作業系統的費用仍會照常計算。
先占選擇
當 Spot VM 處於 RUNNING 狀態時,可能會發生先占;當 Spot VM 處於 TERMINATED 狀態時,則不會考慮先占。因此,您可以停止再重新啟動 Spot VM,藉此重設先占程序,因為停止 VM 後,VM 會處於 TERMINATED 狀態。只要有足夠的容量,您就能視需要停止及重新啟動已先占的 Spot VM,次數不限。值得注意的是,重設或重新啟動 VM 會使 VM 處於 RUNNING 狀態,因此不會重設先占程序。
您無法查看任何特定先占事件發生的原因。與資源可用性錯誤類似,搶占率可能因可用區、時間或資源而異。如需降低先占率的具體建議,請參閱最佳做法。
定價
Spot 價格是 Spot VM 的價格,提供 VM 大幅折扣。Spot 價格提供 C4、C3、M3 和 A3 機器系列隨選價格最高 60% 的折扣。值得注意的是,如果先占 VM 已停止,則在 VM 處於 TERMINATED 狀態期間,您不需支付 VM 時數費用。您可以存取及復原附加至 VM 的任何永久磁碟資料,但這些磁碟仍會產生儲存費用,直到您刪除為止。進一步瞭解執行個體運作時間和磁碟定價。
如要查看 Spot VM 的最新價格,請參閱 Spot VM 定價頁面、使用 Cloud Billing Catalog API,或訂閱 Spot VM 的價格公告。
搭配使用 Spot VM 和 Compute Engine
本節提供將 Spot VM 與其他 Compute Engine 服務搭配使用的重要資訊。瞭解如何搭配使用 Spot VM 與代管執行個體群組 (MIG)、付費作業系統、本機 SSD 和 GPU。此外,您也應瞭解 Spot VM 對 Compute Engine 資源配額的影響。
MIG 中的 Spot VM
如要在 MIG 中建立 Spot VM,請先在執行個體範本中指定 Spot 佈建模式,再建立或更新群組。
只有在有額外的 Compute Engine 資源可用時,MIG 才能建立或新增 Spot VM。如果這些資源有限,MIG 就無法調整大小,或自動調度資源群組中的 Spot VM 數量。
使用執行個體彈性功能,允許 MIG 採用多種機型時,MIG 會自動選取觀察到搶占率最低的機型,盡可能減少工作負載中斷。
MIG 一律會嘗試維持目標大小,或自動配置器為該群組指定的大小。如果 Compute Engine 停止 MIG 中的一或多個 Spot VM,群組會嘗試使用指定的執行個體範本,反覆重新建立這些 VM。如果必要資源再次可用,群組會重新建立 VM 並維持目標群組大小。
Spot VM 上的付費作業系統
Spot VM 不會降低付費作業系統的費用,也不會改變使用這些作業系統時的計費方式。如果 Compute Engine 停止執行付費作業系統的 Spot VM,系統會向您收取該作業系統的費用,就與您自行停止 VM 一樣。您仍需支付基本費用,而系統仍會將用量依計費單位進位成整數,以計算付費作業系統的費用。
執行付費作業系統的 Spot VM 機型一律按秒計費,並依機型定價頁面列出的價格計費。
Spot VM 上的 GPU
您可以將 GPU 新增至 Spot VM,並享有較低的 GPU Spot 價格。連接至 Spot VM 的 GPU 運作方式與一般 GPU 相同,但只會在 VM 的生命週期內持續運作。搭載 GPU 的 Spot VM 與所有 Spot VM 採用相同的先占程序。
在維護事件期間,搭載 GPU 的 Spot VM 預設會遭到先占,且無法自動重新啟動。如要在 VM 遭到先占後重新建立,請使用代管執行個體群組。如果 vCPU、記憶體和 GPU 資源可用,代管執行個體群組會重新建立 VM 執行個體。
如果希望在 VM 遭到先占前收到警告,或想設定 VM 在維護事件後自動重新啟動,請使用搭載 GPU 的標準 VM。如果是搭載 GPU 的標準 VM,Compute Engine 會在先占前一小時提前告知。
如果 VM 在開始運作後的第一分鐘內遭到先占,Compute Engine 不會收取 GPU 費用。
如要瞭解如何建立附加 GPU 的 Spot VM,請參閱「建立附加 GPU 的 VM」和「建立 Spot VM」。例如,請參閱「使用 Spot VM 建立 A3 Ultra 或 A4 執行個體」。