Spot VM

本頁說明 Spot VM:多餘的 Compute Engine 容量,即虛擬機器 (VM) 執行個體。Spot VM 的折扣幅度相當可觀, 但 Compute Engine 可能會隨時先占 (停止或刪除) Spot VM,以取回資源。Spot VM 是最新版本的先占 VM。

具體來說,Spot VM 是使用Spot 佈建模式的 VM。 VM 的佈建模型會影響折扣和可用性。與標準 VM 相比,Spot 佈建模型可讓您以低得多的價格取得資源。不過,Compute Engine 隨時可能會搶佔 Spot VM,以取回資源。使用 Spot VM 降低容錯工作負載的成本,例如批次處理作業或無狀態應用程式。

什麼是 Spot VM?

Spot VM 的價格明顯比標準 VM 低,許多機型、GPU、TPU 和本機 SSD 的折扣最高可達 91%。

不過,Compute Engine 可能隨時會先占 Spot VM,例如其他工作需要資源時。在不確定的先占時間,Compute Engine 會停止 (預設) 或刪除 Spot VM,具體取決於您為每個 Spot VM 指定的終止動作。

Spot VM 是額外的 Compute Engine 容量,因此供應情形因 Compute Engine 用量而異。您可以遵循最佳做法,例如在建立 Spot VM 前查看可用性,有助於減輕可用性問題,詳情請參閱本文後續說明。除非您限制執行時間,否則 Spot VM 沒有執行時間下限或上限。

如果工作負載具備容錯能力,且能承受 VM 可能遭到先占的影響,則 Spot VM 將可大幅降低 Compute Engine 費用。舉例來說,批次處理工作可以在 Spot VM 上執行。如果部分 VM 在處理過程中停止,工作執行速度會變慢,但不會完全停止。Spot VM 不會對現有 VM 增添額外負載,即可完成批次處理任務,您也不必全額購買更多標準 VM。

Spot VM 限制

Spot VM 的運作方式與標準 VM 類似,但有下列限制:

  • Spot VM 不支援下列機器:
    • A4X 機器系列
    • 裸機執行個體
  • Compute Engine 的Google Cloud 免費方案抵免額不適用於 Spot VM。

  • Compute Engine 可能會隨時先占 Spot VM,以取回資源。Compute Engine 會因各種原因 (例如系統事件) 預先終止 Spot VM。一般而言,Compute Engine 先占 Spot VM 的機率不高,但仍需視當下的狀況而定,每天和不同可用區之間會有所差異。詳情請參閱本文的「搶占選取」一節。

  • Spot VM 是有限的 Compute Engine 資源,因此可能不一定可用。

  • Spot VM 無法在運作時即時遷移並成為標準 VM,也無法在發生主機事件時設為自動重新啟動。

  • 由於上述限制,Spot VM 不在任何服務水準協議的涵蓋範圍內,也不適用於 Compute Engine 服務水準協議。

Spot VM 先占

本節說明 Compute Engine 如何搶占 Spot VM,以及會選取哪些 VM 進行搶占。此外,我們會在稍後的「管理 Spot VM 先占」中,說明如何偵測、處理及測試 Spot VM 先占。

先占程序

Compute Engine 會執行下列步驟來先占 Spot VM:

  1. Compute Engine 會將 VM 預設中繼資料中的 preempted 值更新為 TRUE,向 VM 傳送先占通知,工作負載可監控這個值來偵測先占情況。

    先占通知時間長度:從這個中繼資料信號發出,到 Compute Engine 傳送 ACPI G2 Soft Off 信號以開始關機程序之間的時間長度。先占通知時間長度會影響工作負載處理先占作業的方式,您可以在建立 Spot VM 時,將時間長度設為下列其中一個值:

    • 120 秒: 如果工作負載需要專屬時間長度,或需要超過 30 秒的時間處理搶占,建議將搶占通知時間長度設為 120 秒。您可以在工作負載中處理先占,方法是等待 VM 先占。(您也可以視需要指定關機指令碼,在盡量關機期間執行。)

    • 0 秒 (預設):如果未指定 Spot VM 的先占通知時間長度,或將其設為 0,系統偵測到中繼資料中的先占情形,與傳送 ACPI G2 軟關機信號之間,就不會有專屬的延遲時間。您的工作負載可以在下列關機期間,使用關機指令碼處理搶占通知。

  2. 系統傳送 ACPI G2 Soft Off 信號時,會觸發您為 Spot VM 設定的任何關機指令碼,並代表關機期間的開始。Spot VM 的關機時間最多為 30 秒,且盡可能縮短,比其他執行個體的關機時間短。

  3. 如果 Spot VM 在關機期間結束後仍未停止運作,Compute Engine 會傳送 ACPI G3 斷電關機信號給作業系統。

  4. 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 的使用費。這樣一來,除非 Spot VM 已完成大量工作,否則您不必支付費用。不過,付費作業系統的費用仍會照常計算。

先占選擇

Spot VM 處於 RUNNING 狀態時可能會遭到先占;處於 TERMINATED 狀態時則不會。因此,您可以停止再重新啟動 Spot VM,藉此重設搶占程序,因為停止 VM 會讓 VM 處於 TERMINATED 狀態。只要有資源,您就可以隨意停止及重新啟動遭到先占的 Spot VM。請注意,重設或重新啟動 VM 會讓 VM 處於 RUNNING 狀態,因此不會重設先占程序。

您無法查看任何特定搶占事件發生的原因。與資源可用性錯誤類似,不同可用區、不同時間或不同資源的搶占率可能有所不同。如需降低搶占率的具體建議,請參閱最佳做法。

定價

Spot 價格 (Spot VM 的價格) 提供 VM 大幅折扣。與許多機型、GPU、TPU 和本機 SSD 磁碟的以量計價價格相比,Spot 價格可享最高 91% 的折扣。

請注意,如果先占 VM 遭到停止,只要 VM 處於 TERMINATED 狀態,您就不必支付 VM 時數費用。您可以存取及復原 VM 連接的任何永久磁碟資料,但這些磁碟仍會產生儲存空間費用,直到您刪除為止。進一步瞭解執行個體正常運作時間和磁碟定價。

如要查看 Spot VM 的最新價格,請參閱 Spot VM 定價頁面、使用 Cloud Billing Catalog API,或註冊接收 Spot VM 的價格公告。

搭配 Compute Engine 使用 Spot VM

本節提供搭配其他 Compute Engine 產品使用 Spot VM 時的注意事項。瞭解如何搭配代管執行個體群組 (MIG)、進階作業系統、本機 SSD 和 GPU 使用 Spot VM。此外,請瞭解 Spot VM 對 Compute Engine 資源配額的影響。

MIG 中的 Spot VM

如要在 MIG 中建立 Spot VM,請在建立或更新群組前,於執行個體範本中指定 Spot 佈建模式。

只有在有額外的 Compute Engine 資源時,MIG 才能建立或新增 Spot VM。如果這些資源有限,MIG 就無法調整大小,或自動調度群組中的 Spot VM 數量。

使用執行個體彈性功能時,MIG 可使用多種機型,並自動選取觀察到的搶占率最低的機型,盡量減少工作負載中斷。

MIG 一律會嘗試維持目標大小,或是自動調度器為該群組指定的大小。如果 Compute Engine 停止 MIG 中的一或多個 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 的生命週期內保持連線。

如果 VM 在啟動後的第一分鐘內遭到先占,Compute Engine 不會收取本機 SSD 磁碟的費用。

如要進一步瞭解本機 SSD 磁碟,請參閱「關於本機 SSD 磁碟」。

Spot VM 上的 GPU

您可以將 GPU 新增至 Spot VM,並以較低的 Spot 價格使用 GPU。連至 Spot VM 的 GPU 運作方式與一般 GPU 類似,但只會在 VM 的生命週期內持續運作。搭載 GPU 的 Spot VM 與所有 Spot VM 一樣,都遵循相同的先占程序。

建議申請專屬 Preemptible GPU 配額,用於 Spot VM 上的 GPU。詳情請參閱「Spot VM 配額」。

在維護事件期間,搭載 GPU 的 Spot VM 預設會遭到搶占,且無法自動重新啟動。如要在 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 執行個體」。

Spot VM 配額

與其他 VM 相同,Spot VM 也需要可用的 CPU 配額。此外,如果您打算搭配本機 SSD 或 GPU 使用 Spot VM,Spot VM 也分別需要磁碟配額和 GPU 配額。

如果您搭配使用 Spot VM 和這些資源,但未要求先占配額,Spot VM 會消耗這些資源的標準配額。如果您打算使用 Spot VM,請考慮為這些資源要求先占配額,以免 Spot VM 耗用其他配額。

Compute Engine 在區域中授予先占配額後,該區域中的所有 Spot VM (和任何先占 VM) 都會計入該配額。該區域中的所有標準 VM 仍會計入標準配額。如果所在區域沒有搶占配額,可以使用標準配額啟動 Spot VM。

除非 Compute Engine 已授予配額,否則 gcloud CLI 或Google Cloud 控制台配額頁面不會顯示可搶占配額。詳情請參閱「先占資源的分配配額」。

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Compute Engine 的成效。新客戶還能獲得價值 $300 美元的免費抵免額,能用於執行、測試及部署工作負載。

免付費試用 Compute Engine