Spot VM

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

Spot VM 是指使用Spot 佈建模式的 VM。與標準 VM 相比,這個佈建模式可讓您以低得多的價格取得資源。不過,Compute Engine 隨時可能會搶佔 Spot VM 並取回資源。使用 Spot VM 降低容錯工作負載的成本。

如要進一步瞭解 Compute Engine VM,請參閱虛擬機器執行個體說明文件。如要瞭解如何建立 Spot VM,請參閱「建立及使用 Spot VM」。

什麼是 Spot VM?

Spot VM 的價格明顯比標準 VM 的隨選價格低,所有機器系列 (C3、M3 和 A3) 最多可享 60% 的折扣

不過,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 在處理過程中停止,那麼工作執行速度會變慢,但並不會完全停止。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 無法在運作時即時遷移並成為標準 VM,也無法設為在發生主機事件自動重新啟動

  • 由於有上述限制,因此 Spot VM 未涵蓋在任何「服務水準協議」內,且已排除在 Compute Engine 服務水準協議之外。

  • TPU Spot VM 還有其他限制。

  • 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 秒。

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

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

    3. 如果 Spot VM 在關機時間過後仍未停止,Compute Engine 會向作業系統傳送 ACPI G3 Mechanical Off 信號。

    4. Spot VM 的最終狀態取決於您為每個 VM 指定的終止動作

      • 如果終止動作設為 STOP 或未指定,Compute Engine 會停止 VM,將 VM 轉換為 TERMINATED 狀態
      • 如果終止動作設為 DELETE,Compute Engine 會刪除 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 折扣。C3、M3 和 A3 機器系列適用的 Spot 價格折扣最高可達以量計價價格的 60%。 重要事項:現貨價格每季更新一次。Spot 價格不會顯示在 Compute Engine 的多數價目表上。如要查看最新價格,請參閱定價頁面

    請注意,如果遭到先占的 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 CLICompute 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 上的 GPU

    您可以用較低的 GPU Spot 價格,將 GPU 新增至 Spot VM。連接至 Spot VM 的 GPU,在運作方式上就如同一般的 GPU,但僅會在 VM 的可用期限內保留。具有 GPU 的 Spot VM,其先占程序與其他所有 Spot VM 均相同。

    在維護作業期間,根據預設會先占具有 GPU 的 Spot 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 執行個體」。

    後續步驟

    歡迎試用

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

    免付費試用 Compute Engine