Compute Engine 会提供建议,以帮助您识别未使用的资源,例如永久性磁盘 (PD)、IP 地址和自定义磁盘映像。您可以使用空闲资源建议来最大程度地减少资源浪费并降低计算费用。对于使用频率很低的永久性磁盘,您可以创建备份快照,然后删除该资源。对于未使用的永久性磁盘、映像和 IP 地址,如果您不需要,可以删除它们。
如果您对空闲虚拟机建议感兴趣,请参阅查看和应用空闲虚拟机建议。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
PROJECT_ID
:您的项目的 ID。LOCATION
:您想要查看其建议的资源所在的位置。- 对于永久性磁盘,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘,请指定可用区或区域,例如
RECOMMENDER_ID
:recommender 的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceRecommender
。 - 对于映像,请指定
google.compute.image.IdleResourceRecommender
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceRecommender
。
- 对于磁盘,请指定
PROJECT_ID
:您的项目的 ID。LOCATION
:您想要查看其建议的资源所在的位置。- 对于永久性磁盘,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘,请指定可用区或区域,例如
RECOMMENDER_ID
:recommender 的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceRecommender
。 - 对于映像,请指定
google.compute.image.IdleResourceRecommender
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceRecommender
。
- 对于磁盘,请指定
如果您的空闲永久性磁盘上有数据,则建议会包含一个
add
操作以创建快照来备份永久性磁盘。例如:{ "action": "add", "resourceType": "compute.googleapis.com/Disk", "resource" : "//compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name", "path": "/", "value": { "name": "$snapshot-name", "sourceDisk": "projects/test-project/zones/us-central1-c/disks/pd-name", "storageLocations": ["us-central1"] } }
用于永久删除空闲永久性磁盘的
remove
操作。例如:{ "action": "remove", "resourceType": "compute.googleapis.com/Disk", "resource" : "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name", "path": "/" }
LOCATION
:您想要查看其数据洞见的资源所在的位置。- 对于永久性磁盘,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘,请指定可用区或区域,例如
INSIGHT_TYPE
:数据洞见类型的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceInsight
。 - 对于映像,请指定
google.compute.image.IdleResourceInsight
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceInsight
。
- 对于磁盘,请指定
PROJECT_ID
:您的项目的 ID。LOCATION
:您想要查看其数据洞见的资源所在的位置。- 对于永久性磁盘,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘,请指定可用区或区域,例如
INSIGHT_TYPE
:数据洞见类型的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceInsight
。 - 对于映像,请指定
google.compute.image.IdleResourceInsight
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceInsight
。
- 对于磁盘,请指定
diskLastUseTime
:磁盘上次挂接到虚拟机的时间。如果磁盘从未挂接到虚拟机,则此字段会设置为磁盘的创建时间。isBlank
:如果磁盘为空且从未挂接到虚拟机,则此字段会设置为true
,否则设置为false
。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
价格
空闲资源建议是免费提供的。
生成建议
如果某个资源在 15 天内未挂接到虚拟机或其他资源,则 Recommender 会将该资源归类为空闲资源。
必须满足以下条件之一,Recommender 才能将资源归类为空闲资源并生成相应的推荐操作:
资源 资源被归类为空闲资源的条件 推荐执行的操作 储蓄 PD 磁盘是空白的,
至少创建于 15 天以前并且
从未挂接到虚拟机并且
未绑定到 GKE Pod删除 节省该磁盘的全部费用(请参阅磁盘价格) PD 已分离至少 15 天且
未绑定到 GKE Pod创建快照并删除磁盘 将该磁盘的维护费用降低 35% 到 92%(请参阅磁盘价格) 自定义映像 至少有 15 天未用于创建磁盘,并且未用于任何实例模板 删除 节省该映像的全部费用(请参阅映像价格) IP 地址 至少有 15 天未挂接到任何资源 删除 节省该 IP 地址的全部费用(请参阅 IP 地址价格) 建议频率
空闲资源建议会在资源创建后 15 天开始提供,并且每 24 小时会更新一次。
查看建议
如需查看有关空闲资源的建议,请使用 gcloud CLI 或 REST。
控制台
在 Google Cloud 控制台中,转到建议页面。
所有空闲资源都列在未用的 Compute Engine 资源下。
gcloud
使用带有
--recommender=
RECOMMENDER_ID
标志的gcloud recommender recommendations list
命令:gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=RECOMMENDER_ID \ --format=yaml
替换以下内容:
例如,以下命令会为
test-project
列出us-central1-c
中的空闲永久性磁盘建议:gcloud recommender recommendations list \ --project=test-project \ --location=us-central1-c \ --recommender=google.compute.disk.IdleResourceRecommender \ --format=yaml --- content: operationGroups: - operations: - action: add resource: //compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name resourceType: compute.googleapis.com/Disk path: / value: - name: $snapshot-name sourceDisk: projects/test-project/locations/us-central1-c/disks/pd-name storageLocations: us-central1 - action: remove resource: //compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name resourceType: compute.googleapis.com/Disk path: / description: Save cost by snapshotting and then deleting idle persistent disk 'pd-name' name: projects/test-project/locations/us-central1-c/recommenders/google.compute.disk.IdleResourceRecommender/recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1 recommenderSubtype: SNAPSHOT_AND_DELETE_DISK lastRefreshTime: seconds: 1543912652 primaryImpact: category: COST costProjection: cost: currencyCode: USD units: '-50' duration: seconds: 2592000 stateInfo: ACTIVE etag: "cb0e6ac2cfc0b591"
详细了解如何使用 gcloud CLI 处理建议。
REST
调用
recommendations.list
方法并指定 Recommender ID,例如google.compute.disk.IdleResourceRecommender
:GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations
替换以下内容:
以下示例演示了如何发送包含
curl
的请求以及关联的示例响应。PROJECT_ID=test-project LOCATION=us-central1-c RECOMMENDER_ID=google.compute.disk.IdleResourceRecommender curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations
空闲永久性磁盘建议的 JSON 响应示例:
{ "description" : "Save cost by deleting idle persistent disk 'pd-name'", "name": "projects/test-project/locations/us-central1-c/recommenders/" "google.compute.disk.IdleResourceRecommender/" "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1", "recommenderSubtype" : "SNAPSHOT_AND_DELETE_DISK", "lastRefreshTime": { "seconds": 1543912652 }, "primaryImpact": { "category": COST, "costProjection": { "cost": {"currencyCode": "USD", "units": -50}, "duration": { "seconds": 2592000 } } }, "stateInfo": ACTIVE, "content": { "operationGroups" : [ { "operations" : [ { "action": "add", "resourceType": "compute.googleapis.com/Disk", "resource" : "//compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name", "value": { "name": "$snapshot-name", "sourceDisk": "projects/test-project/zones/us-central1-c/disks/pd-name", "storageLocations": ["us-central1"], } }, { "action": "remove", "resourceType": "compute.googleapis/Disk", "resource": "//compute.googleapis.com/projects/test-project/" "zones/us-central1-c/disks/pd-name" } ] } ] }, "associatedInsights": [ { "insight": "projects/test-project/locations/us-central1-c/insightTypes/google.compute.disk.IdleResourceInsight/insights/31326443-bcc3-4776-9b86-48879fddb656" } ], "etag": "cb0e6ac2cfc0b591" }
解读建议响应
您通过 gcloud CLI 或 REST 收到的每条建议都包含操作组,其中有一些可按顺序执行以应用该建议的操作。例如,空闲永久性磁盘建议操作组包含一个或两个操作:
如需创建永久性磁盘的快照以及删除永久性磁盘,请参阅应用空闲永久性磁盘建议。如需移除未使用的 IP 地址,请参阅删除空闲 IP 地址。如需移除未使用的自定义磁盘映像,请参阅删除空闲自定义映像。
查看空闲资源建议的数据洞见
Recommender 会根据资源数据洞见生成建议。通过查看资源的数据洞见,您可以详细了解这些资源,例如资源与虚拟机分离的时长或者永久性磁盘是否为空。
如果要查看生成建议的数据洞见,您可以使用 gcloud CLI 或 REST。
gcloud
gcloud beta recommender insights list --project=PROJECT_NAME \ --location=LOCATION --insight-type=INSIGHT_TYPE
替换以下内容:
REST
使用
insights.list
方法。GET https://recommender.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/insightTypes/INSIGHT_TYPE/insights
替换以下内容:
以下是空闲永久性磁盘资源的数据洞见示例响应:
{ "name": "projects/test-project/locations/us-central1-c/insightTypes/google.compute.disk.IdleResourceInsight/insights/0ec21a13-bb04-3121-7321-dc43a11cc3e2", "description": "Disk 'pd-name' in zone 'us-central1-c' was last used 17 days ago. Consider taking snapshot and delete it.", "targetResources": [ "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name" ], "insightSubtype": "IDLE_DISK", "content": { "diskLastUseTime": "2019-10-01 13:00:00", "isBlank": false, }, "lastRefreshTime": "2019-10-10 13:00:00", "observationPeriod": "15 days", "stateInfo": { "state": "ACTIVE" }, "category": "COST", "etag": "fds421j2349", "associatedRecommendations": [ { "projects/test-project/locations/us-central1-c/recommenders/" "google.compute.disk.IdleResourceRecommender/" "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1" } ] }
示例响应包括以下字段:
如需详细了解数据洞见,请参阅参考文档。
应用空闲资源建议
如果您收到关于空闲资源的建议,并且决定采纳建议,请按照以下说明执行操作。
删除空闲 IP 地址
请参阅
addresses.delete
方法、gcloud compute addresses delete
命令或释放静态外部 IP 地址文档。删除空闲自定义映像
请参阅
images.delete
方法、gcloud compute images delete
命令或删除映像文档。应用空闲永久性磁盘建议
如果您需要在删除永久性磁盘之前创建其快照,请参阅创建永久性磁盘快照。
如需删除空闲永久性磁盘,请参阅
gcloud compute disks delete
命令。如需了解如何从快照恢复数据以及如何重新创建永久性磁盘,请参阅恢复快照。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-18。
-