查看 Spot 虚拟机的抢占率和价格

本文档介绍如何查看 Spot 虚拟机的抢占率和价格。

在创建 Spot 虚拟机之前,您可以查看 希望 Spot 虚拟机使用的机器类型的 历史抢占率和当前抢占率以及价格。查看这些数据有助于您比较不同机器类型和位置的稳定性和费用,从而找到最适合您的工作负载和预算的选项。

如果您想查看有关 Spot 虚拟机的实时数据,请参阅以下内容:

限制

您无法查看挂接了 GPU 的 N1 机器类型、自定义机器类型或 TPU 的抢占率和价格趋势。

了解 Spot 虚拟机的抢占率和价格

当您向 advice.capacityHistory API 发送请求时,输出会显示以下指标。通过了解这些指标,您可以查看和比较不同机器类型和可用区的抢占率趋势和价格趋势,然后在创建 Spot 虚拟机时使用这些数据来做出明智的决策。

历史抢占率

历史抢占率 (preemptionHistory) 显示了过去 30 天内您指定的机器类型和可用区的每日抢占率。 Compute Engine 在美国太平洋时间 (PT) 午夜设置此费率的数据边界。当天的抢占率可能会全天发生变化。

Compute Engine 通过将一天内被抢占的 Spot 虚拟机数量除以当天停止运行的 Spot 虚拟机数量来计算抢占率,如以下 公式所示。 Cloud de Confiance by S3NS 这些停止包括用户或程序化操作(例如运行时有限)暂停、停止或删除 Spot 虚拟机,或者 Compute Engine 抢占它们。

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

抢占率的范围为 0.001.00。例如,费率为 0.50 表示,在当天停止运行的具有特定机器类型 且位于特定可用区的 Spot 虚拟机中 Cloud de Confiance, Compute Engine 抢占了 50% 的虚拟机。

历史价格

历史价格 (priceHistory) 显示了过去一年内您指定的机器类型和区域的价格变化(以美元为单位)。每个条目都表示该价格处于有效状态的时间间隔内的每小时价格。 Compute Engine 在 PT 午夜 (00:00) 设置价格变化。如果数据不可用,则时间间隔会有间隙。

准备工作

所需的角色

如需获得查看 Spot 虚拟机的抢占率和价格所需的权限,请让管理员向您授予项目的Compute Viewer (roles/compute.viewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含 查看 Spot 虚拟机的抢占率和价格所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需查看 Spot 虚拟机的抢占率和价格,需要具备以下权限:

  • 如需查看 Spot 虚拟机的抢占率和价格: compute.advice.capacityHistory 针对项目的

您也可以使用自定义角色或其他预定义角色来获取这些权限。

查看 Spot 虚拟机的抢占率和价格

如需查看 Spot 虚拟机的历史抢占率和价格,您必须指定要创建虚拟机的机器类型以及区域或可用区。根据结果,您可以创建 Spot 虚拟机,也可以查看其他 位置或不同机器的抢占率和价格。

如需查看 Spot 虚拟机的抢占率和价格,请选择以下选项之一:

控制台

  1. 在 Cloud de Confiance 控制台中,前往 容量顾问 页面。

    前往“容量顾问”

  2. 过滤条件 窗格中,完成以下步骤:

    1. 位置 部分的区域 列表中,选择要在其中创建 Spot 虚拟机的区域。

    2. 机器规格 部分中,指定要创建的机器配置和 Spot 虚拟机数量:

      1. 机器系列 列表中,选择一个 机器系列

      2. 系列 列表中,最多选择三个机器系列。

      3. 机器类型 列表中,最多选择五种机器类型。

      4. 虚拟机数量 字段中,输入 Spot 虚拟机的数量。

      5. 可选:默认情况下,系统会隐藏资源有限的可用区。如需查看这些可用区,请取消选中隐藏可用性受限的区域 复选框。

    3. 点击 搜索

  3. 根据您的使用场景,选择以下选项之一:

    • 如需查看特定位置的价格、可用性和抢占率,请完成以下步骤:

      1. 预配模型的结果 窗格中,点击地图 标签页。

      2. 在地图上,点击一个区域。系统会显示一个窗格,其中显示了该区域的价格和可用区抢占率。

    • 如需比较不同机器类型的历史价格和抢占率,请完成以下步骤:

      1. 预配模型的结果 窗格中,点击列表 标签页。

      2. 选择包含要比较的机器类型的两行或多行。

      3. 点击 比较价格 。系统会显示机器类型比较 窗格。

      4. 如需查看价格数据或抢占率,请点击价格抢占 标签页。

      5. 可选:如需更改要比较的机器类型,请执行以下操作之一:

        • 如需添加机器类型,请点击添加机器类型,然后 选择要添加的机器类型。

        • 如需移除机器类型,请在要移除的机器类型的操作 列中,点击 移除行

gcloud

如需查看 Spot 虚拟机的抢占率和价格,请使用 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 虚拟机使用的机器类型。

  • REGION:您要在其中创建 Spot 虚拟机的区域。

  • ZONE:您要在其中创建 Spot 虚拟机的可用区。

输出类似于以下内容:

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 虚拟机的抢占率和价格,请向 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 虚拟机的区域。

  • MACHINE_TYPE:您希望 Spot 虚拟机使用的机器类型。

  • ZONE:您要在其中创建 Spot 虚拟机的可用区,该可用区必须位于 REGION 内。

输出类似于以下内容:

{
  "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"
      }
    },
    ...
  ]
}

后续步骤