本文档介绍如何查看 Spot 虚拟机的抢占率和价格。
在创建 Spot 虚拟机之前,您可以查看 希望 Spot 虚拟机使用的机器类型的 历史抢占率和当前抢占率以及价格。查看这些数据有助于您比较不同机器类型和位置的稳定性和费用,从而找到最适合您的工作负载和预算的选项。
如果您想查看有关 Spot 虚拟机的实时数据,请参阅以下内容:
如需查看 Spot 虚拟机的当前费用,请参阅 Spot 虚拟机价格。
如需查看您要在其中创建 Spot 虚拟机的可用区是否有可用容量,请参阅 查看 Spot 虚拟机的可用性。
限制
您无法查看挂接了 GPU 的 N1 机器类型、自定义机器类型或 TPU 的抢占率和价格趋势。
了解 Spot 虚拟机的抢占率和价格
当您向 advice.capacityHistory API 发送请求时,输出会显示以下指标。通过了解这些指标,您可以查看和比较不同机器类型和可用区的抢占率趋势和价格趋势,然后在创建 Spot 虚拟机时使用这些数据来做出明智的决策。
历史抢占率
历史抢占率 (preemptionHistory) 显示了过去 30 天内您指定的机器类型和可用区的每日抢占率。
Compute Engine
在美国太平洋时间 (PT) 午夜设置此费率的数据边界。当天的抢占率可能会全天发生变化。
Compute Engine 通过将一天内被抢占的 Spot 虚拟机数量除以当天停止运行的 Spot 虚拟机数量来计算抢占率,如以下 公式所示。 Google Cloud 这些停止包括用户或程序化操作(例如运行时有限)暂停、停止或删除 Spot 虚拟机,或者 Compute Engine 抢占它们。
抢占率的范围为 0.00 到 1.00。例如,费率为 0.50
表示,在当天停止运行的具有特定机器类型
且位于特定可用区的 Spot 虚拟机中 Google Cloud,
Compute Engine 抢占了 50% 的虚拟机。
历史价格
历史价格 (priceHistory) 显示了过去一年内您指定的机器类型和区域的价格变化(以美元为单位)。每个条目都表示该价格处于有效状态的时间间隔内的每小时价格。
Compute Engine 在 PT 午夜 (00:00) 设置价格变化。如果数据不可用,则时间间隔会有间隙。
准备工作
advice.capacityHistoryAPI 默认在其输出中包含 AI 可用区 。 为了确保在 API 建议您在其中一个 AI 可用区中创建虚拟机时,您可以在 AI 可用区中创建 Spot 虚拟机,请验证您的项目是否已启用 AI 可用区。-
如果您尚未设置身份验证,请进行设置。
身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行
代码或示例,您可以通过选择以下选项之一向
Compute Engine 进行身份验证:
{1
选择标签页以了解您打算如何使用本页面上的示例:
控制台
当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。
gcloud
-
安装 Google Cloud CLI。 安装完成后, 初始化 Google Cloud CLI,方法是运行以下命令:
gcloud init如果您使用的是外部身份提供方 (IdP),则必须先 使用联合身份登录 gcloud CLI。
-
- 设置默认区域和可用区。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的 凭证。
安装 Google Cloud CLI。
如果您使用的是外部身份提供方 (IdP),则必须先 使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 身份验证文档 中的 Google Cloud 使用 REST 时进行身份验证。
所需的角色
如需获得查看 Spot 虚拟机的抢占率和价格所需的权限,请让管理员向您授予项目的Compute Viewer (roles/compute.viewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含 查看 Spot 虚拟机的抢占率和价格所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需查看 Spot 虚拟机的抢占率和价格,需要具备以下权限:
-
如需查看 Spot 虚拟机的抢占率和价格:
compute.advice.capacityHistory针对项目的
查看 Spot 虚拟机的抢占率和价格
如需查看 Spot 虚拟机的历史抢占率和价格,您必须指定要创建虚拟机的机器类型以及区域或可用区。根据结果,您可以创建 Spot 虚拟机,也可以查看其他 位置或不同机器的抢占率和价格。
如需查看 Spot 虚拟机的抢占率和价格,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往 容量顾问 页面。
在过滤条件 窗格中,完成以下步骤:
在位置 部分的区域 列表中,选择要在其中创建 Spot 虚拟机的区域。
在机器规格 部分中,指定要创建的机器配置和 Spot 虚拟机数量:
在机器系列 列表中,选择一个 机器系列。
在系列 列表中,最多选择三个机器系列。
在机器类型 列表中,最多选择五种机器类型。
在虚拟机数量 字段中,输入 Spot 虚拟机的数量。
可选:默认情况下,系统会隐藏资源有限的可用区。如需查看这些可用区,请取消选中隐藏可用性受限的区域 复选框。
点击 搜索。
根据您的使用场景,选择以下选项之一:
如需查看特定位置的价格、可用性和抢占率,请完成以下步骤:
在预配模型的结果 窗格中,点击地图 标签页。
在地图上,点击一个区域。系统会显示一个窗格,其中显示了该区域的价格和可用区抢占率。
如需比较不同机器类型的历史价格和抢占率,请完成以下步骤:
在预配模型的结果 窗格中,点击列表 标签页。
选择包含要比较的机器类型的两行或多行。
点击 比较价格 。系统会显示机器类型比较 窗格。
如需查看价格数据或抢占率,请点击价格 或抢占 标签页。
可选:如需更改要比较的机器类型,请执行以下操作之一:
如需添加机器类型,请点击添加机器类型,然后 选择要添加的机器类型。
如需移除机器类型,请在要移除的机器类型的操作 列中,点击 移除行。
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.googleapis.com/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.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacityHistory { "types": [ "PREEMPTION", "PRICE" ], "instanceProperties": { "scheduling": { "provisioningModel": "SPOT" }, "machineType": "MACHINE_TYPE" } }如需查看某个可用区的抢占率,请发出以下请求:
POST https://compute.googleapis.com/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.googleapis.com/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"
}
},
...
]
}
后续步骤
了解如何 创建和使用 Spot 虚拟机。
详细了解 Spot 虚拟机的最佳实践。