使用 Azure Spot Virtual Machines

適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集

使用 Azure Spot Virtual Machines 可讓您以大幅降低的成本使用我們未運用的容量。 在任何時候,只要 Azure 又需要這些容量,Azure 基礎結構就會收回 Azure Spot Virtual Machines。 因此,Azure Spot Virtual Machines 很適合可因應中斷的工作負載,例如批次處理工作、開發/測試環境、大量計算工作負載等。

可用容量的數量會根據大小、區域和當日時間等等而有所不同。 部署 Azure Spot Virtual Machines 時,如果有可用的容量,則 Azure 將會配置 VM,但這些 VM 沒有服務等級協定 (SLA)。 Azure Spot Virtual Machine 不提供高可用性保證。 在任何時候,只要 Azure 又需要這些容量,Azure 基礎結構就會提前 30 秒發出通知來收回 Azure Spot Virtual Machines。

YouTube video about Spot VMs and reducing operational costs of stateless workloads.

收回原則

您可根據容量或您設定的最大價格來收回 VM。 在建立 Azure Spot Virtual Machines 時,您可以將收回原則設定為 [解除配置] (預設) 或 [刪除]

解除配置原則會將虛擬機器移至已停止 (已解除配置) 狀態,讓您可於稍後重新部署。 不過,不保證配置會成功。 已解除配置的 VM 會根據配額來計算,您將需要支付基礎磁碟的儲存體費用。

如果您想讓 VM 在收回時一併刪除,可將收回原則設定為 [刪除]。 Azure 會一同刪除已收回的 VM 與其基礎磁碟,因此您不必繼續支付此儲存體的費用。

您可以選擇透過 Azure Scheduled Events 接收 VM 內通知。 這會在您的 VM 遭到收回時通知您,而且您會有 30 秒的時間可完成任何作業,並在收回前執行關機工作。

選項 結果
最大價格設定為 >= 目前價格。 如有可用的容量和配額,則會部署 VM。
最大價格設定為 < 目前價格。 未部署 VM。 您會收到一則錯誤訊息,指出最大價格需要 >= 目前價格。
如果最大價格 >= 目前價格,則會重新啟動已停止/已解除配置的 VM 如果有容量和配額,則會部署 VM。
如果最大價格 < 目前價格,則會重新啟動已停止/已解除配置的 VM 您會收到一則錯誤訊息,指出最大價格需要 >= 目前價格。
VM 的價格已上揚,現在 > 最大價格。 VM 已被收回。 在實際收回之前,您會收到 30 秒通知。
收回後,VM 的價格會回到 < 最大價格。 不會自動重新啟動 VM。 您可以自行重新啟動 VM,並以目前價格計費。
如果最大價格設定為 -1 基於定價理由,將不會收回 VM。 最大價格會是目前價格,最高可達標準 VM 的價格。 絕對不會以標準價格向您收費。
變更最大價格 您必須解除配置 VM,才能變更最大價格。 解除配置 VM、設定新的最大價格,然後更新 VM。

提示

請參閱我們的 Azure 虛擬機器現成收回指南,以了解如何在 Azure 中建立可靠的中斷工作負載。

限制

Azure Spot Virtual Machines 不支援下列 VM 大小:

  • B 系列
  • 任何大小的促銷版本 (例如 Dv2、NV、NC、H 促銷大小)

除了由 21Vianet 運作的 Microsoft Azure 之外,Azure Spot Virtual Machines 可以部署到任何區域。

目前支援下列規則類型

  • Enterprise 合約
  • 隨用隨付供應項目程式碼 (003P)
  • 贊助 (0036P 和 0136P)
  • 若為雲端服務提供者 (CSP) ,請參閱合作夥伴中心或直接與您的合作夥伴聯絡。

定價

Azure Spot Virtual Machines 的定價是根據區域和 SKU 的變數為準。 如需詳細資訊,請參閱 LinuxWindows 的 VM 定價。

您也可以使用 Azure 零售價格 API 來查詢定價資訊,以查詢 Spot 定價的相關資訊。 meterNameskuName 都會包含 Spot

採用變動定價,您可選擇使用最多 5 個小數位數來設定最大價格 (以美元 (USD) 計價)。 例如,0.98765 的值是每小時 $0.98765 美元的最大價格。 如果您將最大價格設為 -1,將不會根據價格來收回 VM。 VM 的價格會是現成 VM 的目前價格或標準 VM 的價格,無論何者比較小,只要有可用的容量和配額即可。

定價和收回歷程記錄

入口網站

在建立 VM 時,您可以在入口網站中查看區域每個大小的歷程記錄定價和收回費率。 勾選 [使用 Azure Spot 折扣執行] 之後,連結會顯示在標題「檢視價格歷程記錄並比較附近區域的價格」的 VM 大小選取下。 選取該連結後,您將能夠查看指定 VM 大小的現成定價表格或圖表。 下列影像中的定價和收回率僅為範例。

提示

收回率是按小時報價。 例如,根據過去 28 天的歷程記錄收回資料,10% 收回率表示 VM 在下一個小時被收回的機率為 10%。

圖表

Screenshot of the region options with the difference in pricing and eviction rates as a chart.

資料表

Screenshot of the region options with the difference in pricing and eviction rates as a table.

Azure Resource Graph

您可以透過 Azure Resource Graph,以程式設計方式存取相關的現成 VM SKU 資料。 取得過去 90 天的定價歷程記錄以及過去 28 天的收回率,以識別更符合您特定需求的 SKU。

主要權益:

  • 透過 ARM 或 Azure 入口網站中的 ARG 總管,以程式設計方式查詢現成收回率和過去幾個月的現成價格 
  • 建立自訂查詢,以擷取與您的案例相關的特定資料,並能夠篩選各種參數,例如 SKU 和區域
  • 輕鬆地比較多個區域和 SKU 的資料
  • 尋找價格和 (或) 收回率較低的不同現成 SKU 或區域

使用 Azure 入口網站 中的 ARG 總管,試用下列現成定價歷程記錄和收回率範例查詢。 SpotResources 資料表提供現成定價歷程記錄和收回率資料。 

現成定價歷程記錄範例查詢

SpotResources 
| where type =~ 'microsoft.compute/skuspotpricehistory/ostype/location' 
| where sku.name in~ ('standard_d2s_v4', 'standard_d4s_v4') 
| where properties.osType =~ 'linux' 
| where location in~ ('eastus', 'southcentralus') 
| project skuName = tostring(sku.name), osType = tostring(properties.osType), location, latestSpotPriceUSD = todouble(properties.spotPrices[0].priceUSD) 
| order by latestSpotPriceUSD asc 

現成收回率範例查詢

SpotResources 
| where type =~ 'microsoft.compute/skuspotevictionrate/location' 
| where sku.name in~ ('standard_d2s_v4', 'standard_d4s_v4') 
| where location in~ ('eastus', 'southcentralus') 
| project skuName = tostring(sku.name), location, spotEvictionRate = tostring(properties.evictionRate) 
| order by skuName asc, location asc

或者,請試用 ARG REST API 以取得定價歷程記錄和收回率歷程記錄資料。

常見問題集

問:建立之後,Azure Spot Virtual Machines 是否與標準 VM 相同?

答:是,除了 Azure Spot Virtual Machines 沒有 SLA,而且可以隨時收回。

問:當您收回但仍需要容量時,該怎麼辦?

答:如果您立即需要容量,建議您使用標準 VM,而不是 Azure Spot Virtual Machines。

問:如何針對 Azure 位置虛擬機器管理配額?

答:Azure Spot Virtual Machines 會有另外的配額集區。 現成配額會在 VM 與擴展集執行個體之間共用。 如需詳細資訊,請參閱 Azure 訂用帳戶和服務限制、配額與條件約束

問:我可以要求 Azure Spot Virtual Machines 的額外配額嗎?

答:是,您可以透過標準配額要求程序來提交要求,以增加 Azure Spot Virtual Machines 的配額。

問:哪裡可以張貼問題?

答:您可以在 Q&A 張貼並使用 azure-spot 標記您的問題。

問:如何變更現成 VM 的價格上限?

答:您必須先解除配置 VM,才能變更價格上限。 然後,您可以從 VM 的 [設定] 區段變更入口網站中的價格上限。

下一步

使用 CLI入口網站ARM 範本PowerShell 來部署 Azure Spot Virtual Machines。

您也可以使用 Azure Spot Virtual Machines 執行個體來部署擴展集

如果您遇到錯誤,請參閱錯誤碼