查看 Spot VM 的先占率和價格

本文說明如何查看 Spot VM 的先占率和價格。

建立 Spot VM 之前,您可以查看 Spot VM 要使用的機型,瞭解其歷來和目前的先占率和定價。查看這項資料有助於比較不同機型和位置的穩定性和成本,找出最符合工作負載和預算的選擇。

如要查看 Spot VM 的即時資料,請參閱下列內容:

限制

您無法查看附加 GPU、自訂機型或 TPU 的 N1 機型搶占率和價格趨勢。

瞭解 Spot VM 的先占率和定價

向 advice.capacityHistory API 傳送要求時,輸出內容會顯示下列指標。瞭解這些指標後,您就能查看及比較不同機型和區域的先占率趨勢和價格趨勢,並在建立 Spot VM 時,根據這些資料做出決策。

歷來先占率

歷來搶占率 (preemptionHistory) 會顯示過去 30 天內,指定機型和可用區的每日搶占率。Compute Engine 會在太平洋時間 (PT) 午夜設定這個費率的資料界線。當天的優先順序可能會隨時變更。

Compute Engine 會將一天內先占的 Spot VM 數量,除以當天停止執行的 Spot VM 數量,計算出先占率,如下列公式所示。 Cloud de Confiance by S3NS 這些停止作業包括使用者或程式輔助動作 (例如執行時間有限) 暫停、停止或刪除 Spot VM,或 Compute Engine 先占這些 VM。

$${preemptionHistory}=\frac{\text{Total preempted Spot VMs in a day}}{\text{Total Spot VMs that stopped running in a day}}$$

先占率範圍介於 0.00 至 1.00 之間。舉例來說,如果某個可用區中,特定機器類型 Spot VM 的當日停止執行率為 0.50 ,表示 Compute Engine 先占了其中 50% 的 VM。 Cloud de Confiance

歷來價格

歷史價格 (priceHistory) 會顯示過去一年內,指定機器類型和區域的美元價格變化。每個項目都會指出該價格生效的時間間隔,以及每小時的價格。Compute Engine 會在太平洋時間午夜 (00:00 AM) 設定價格變更。如果資料無法使用,時間間隔就會有間隙。

事前準備

  • advice.capacityHistory API 的輸出內容預設包含 AI 可用區。如果 API 建議您在 AI 區域建立 VM,請 確認專案已啟用 AI 區域,確保您能在 AI 區域建立 Spot VM。
  • 如果尚未設定驗證,請先完成設定。 驗證程序會確認您的身分,以便授予 Cloud de Confiance by S3NS 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,您不需要設定驗證機制。

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。 登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設區域和可用區。
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。

    詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」一節。

必要的角色

如要取得查看 Spot VM 搶占率和定價所需的權限,請要求管理員授予您專案的 Compute 檢視者 (roles/compute.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備查看 Spot VM 先占率和價格所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要查看 Spot VM 的先占率和價格,必須具備下列權限:

  • 如要查看 Spot VM 的先占率和定價: compute.advice.capacityHistory 專案

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

查看 Spot VM 的先占率和價格

如要查看 Spot VM 的歷來先占率和定價,您必須指定要建立 VM 的機型和區域或可用區。根據結果,您可以建立 Spot VM,或查看其他位置或不同機器的先占率和價格。

如要查看 Spot VM 的先占率和價格,請選取下列其中一個選項:

控制台

  1. 前往 Cloud de Confiance 控制台的「Capacity advisor」頁面。

    前往「容量顧問」頁面

  2. 在「Filters」(篩選器) 窗格中,完成下列步驟:

    1. 在「Location」(位置) 部分的「Region」(區域) 清單中,選取要建立 Spot VM 的區域。

    2. 在「機器規格」部分,指定要建立的機器設定和 Spot VM 數量:

      1. 在「機器家族」清單中,選取機器家族。

      2. 在「系列」清單中,選取最多三個機器系列。

      3. 在「Machine type」(機型) 清單中,最多可選取五種機型。

      4. 在「Number of VMs」(VM 數量) 欄位中,輸入 Spot VM 的數量。

      5. 選用:預設情況下,系統會隱藏資源有限的區域。如要查看這些區域,請取消勾選「隱藏可用性受限的區域」核取方塊。

    3. 按一下「搜尋」圖示 。

  3. 請根據您的用途,選取下列其中一個選項:

    • 如要查看特定位置的價格、供應情形和搶占率,請完成下列步驟:

      1. 在「佈建模式結果」窗格中,按一下「地圖」分頁標籤。

      2. 在地圖上點選區域。系統會顯示窗格,其中列出該區域的價格和區域搶占率。

    • 如要比較不同機型的歷來價格和先占率,請完成下列步驟:

      1. 在「Results for provisioning model」(佈建模式結果) 窗格中,按一下「List」(清單) 分頁標籤。

      2. 選取包含要比較機器類型的兩列以上。

      3. 按一下「 比較價格」。系統會顯示「機型比較」窗格。

      4. 如要查看價格資料或搶占率,請按一下「價格」或「搶占」分頁標籤。

      5. 選用:如要變更要比較的機型,請執行下列任一操作:

        • 如要新增機型,請按一下「新增機型」,然後選取要新增的機型。

        • 如要移除機型,請在「Actions」(動作) 欄中找到要移除的機型,然後按一下 「Remove row」(移除資料列)。

gcloud

如要查看 Spot VM 的先占率和定價,請使用 gcloud beta compute advice capacity-history 指令。

視用途而定,加入下列旗標:

  • 如要查看某個區域的先占率和定價,請加入 --types=PREEMPTION,PRICE 和 --region 旗標:

    gcloud beta compute advice capacity-history \
        --provisioning-model=SPOT \
        --machine-type=MACHINE_TYPE \
        --types=PREEMPTION,PRICE \
        --region=REGION
    
  • 如要在區域中查看搶占率,請加入 --types=PREEMPTION 和 --zone 旗標:

    gcloud beta compute advice capacity-history \
        --provisioning-model=SPOT \
        --machine-type=MACHINE_TYPE \
        --types=PREEMPTION \
        --zone=ZONE
    

更改下列內容:

  • MACHINE_TYPE:要讓 Spot VM 使用的機器類型。

  • REGION:要在哪個區域建立 Spot VM。

  • ZONE:要建立 Spot VM 的可用區。

輸出結果會與下列內容相似:

location: https://compute.s3nsapis.fr/compute/beta/projects/example-project/zones/us-central1-a
machineType: n2-standard-32
preemptionHistory:
- interval:
    endTime: "2026-04-21T07:00:00Z"
    startTime: "2026-04-20T07:00:00Z"
  preemptionRate: 0.52
- interval:
    endTime: "2026-04-22T07:00:00Z"
    startTime: "2026-04-21T07:00:00Z"
  preemptionRate: 0.64
...
priceHistory:
- interval:
    endTime: "2026-05-11T07:00:00Z"
    startTime: "2026-04-27T07:00:00Z"
  listPrice:
    currencyCode: "USD"
    nanos: "478720000"
- interval:
    endTime: "2026-05-12T07:00:00Z"
    startTime: "2026-05-11T07:00:00Z"
  listPrice:
    currencyCode: "USD"
    nanos: "502720000"
...

REST

如要查看 Spot VM 的先占率和價格,請向 beta advice.capacityHistory 方法發出 POST 要求。

請根據您的用途提出下列任一要求:

  • 如要在特定區域查看搶占率和價格,請提出下列要求:

    POST https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacityHistory
    
    {
      "types": [
        "PREEMPTION",
        "PRICE"
      ],
      "instanceProperties": {
        "scheduling": {
          "provisioningModel": "SPOT"
        },
        "machineType": "MACHINE_TYPE"
      }
    }
    
  • 如要查看區域的搶占率,請提出下列要求:

    POST https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacityHistory
    
    {
      "types": [
        "PREEMPTION"
      ],
      "instanceProperties": {
        "scheduling": {
          "provisioningModel": "SPOT"
        },
        "machineType": "MACHINE_TYPE"
      },
      "locationPolicy": {
        "location": "zones/ZONE"
      }
    }
    

更改下列內容:

  • PROJECT_ID:專案的 ID。

  • REGION:要在哪個區域建立 Spot VM。

  • MACHINE_TYPE:要讓 Spot VM 使用的機器類型。

  • ZONE:可用區,必須位於 REGION 內,您要在該可用區建立 Spot VM。

輸出結果會與下列內容相似:

{
  "machineType": "n2-standard-32",
  "location": "https://compute.s3nsapis.fr/compute/beta/projects/example-project/regions/us-central1",
  "preemptionHistory": [
    {
      "interval": {
        "startTime": "2026-04-20T07:00:00Z",
        "endTime": "2026-04-21T07:00:00Z"
      },
      "preemptionRate": 0.52
    },
    {
      "interval": {
        "startTime": "2026-04-21T07:00:00Z",
        "endTime": "2026-04-22T07:00:00Z"
      },
      "preemptionRate": 0.64
    },
    ...
  ],
  "priceHistory": [
    {
      "interval": {
        "startTime": "2026-04-27T07:00:00Z",
        "endTime": "2026-05-11T07:00:00Z"
      },
      "listPrice": {
        "currencyCode": "USD",
        "nanos": "478720000"
      }
    },
    {
      "interval": {
        "startTime": "2026-05-11T07:00:00Z",
        "endTime": "2026-05-12T07:00:00Z"
      },
      "listPrice": {
        "currencyCode": "USD",
        "nanos": "502720000"
      }
    },
    ...
  ]
}

後續步驟