为虚拟机实例应用机器类型建议


Compute Engine 会提供机器类型建议,以帮助优化虚拟机实例的资源利用率。这些建议是根据 Cloud Monitoring 服务在过去 8 天中收集的系统指标自动生成的。请采用这些建议来调整实例机器类型的容量,以更加有效地利用实例的资源。此功能也称为“合理容量建议”。

如需详细了解虚拟机实例的可用机器类型,请参阅机器类型文档。

准备工作

  • 阅读 Google Cloud 控制台文档。
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

价格

机器类型容量建议是免费提供的。如果您应用建议以调整实例的机器类型容量,则需要为您选择的机器类型付费。

限制和用例

在以下情况下,不提供机器类型建议:

  • 使用 App Engine 柔性环境、Dataflow、Google Kubernetes Engine 或 Dataproc 创建的虚拟机实例
  • 具有临时磁盘、GPU 或 TPU 的虚拟机实例
  • 内存优化机器系列中的虚拟机实例

建议算法适用于遵循每周模式的工作负载、在数周时间内增长或缩减的工作负载、持续未充分利用其资源的工作负载,或由于资源不足持续受到限制的工作负载。在这些情况下,8 天的历史数据足以预测如何调整机器容量来提高资源利用率。

机器类型建议算法不太适合以下工作负载:

  • 很少出现峰值(例如,每月出现一次峰值)的工作负载,因为 8 天的数据不足以捕获或预测 CPU 波动。
  • 具有极短 CPU 峰值的工作负载,因为建议是基于 CPU 平均利用率(以 60 秒为时间间隔)生成的。系统生成建议的速度可能不够快,无法捕获较短的峰值。如需了解详情,请参阅机器类型建议的工作原理

对于相较于性能更注重成本的工作负载(例如批处理工作负载),您可以忽略增加容量的建议。

在极少数情况下,您在应用建议时可能会看到错误消息。 例如,建议的机器类型可能对于挂接的磁盘数量而言太小,可能无法满足映像或许可的资源要求,或者可能在特定地区中不可用。

如果预估节省的费用低于 10 美元/月,我们也不会显示建议。

机器类型建议的工作原理

Compute Engine 会监控正在运行的虚拟机的 CPU 和内存利用率,并基于最近 8 天的数据生成建议。 Compute Engine 会生成如下建议:

  • 如果在大部分时间实例的 CPU 利用率都处于较低状态,则 Compute Engine 会建议使用虚拟 CPU 数量较少的机器类型。

  • 如果在大部分时间实例的 CPU 利用率都处于较高状态,则 Compute Engine 会建议使用虚拟 CPU 数量较多的机器类型。

  • 如果实例未曾用到大部分内存,则 Compute Engine 会建议使用内存较小的机器类型。

  • 如果大部分时间内实例都在主动使用其大部分内存,则 Compute Engine 会建议使用内存较大的机器类型。

Compute Engine 可能会建议使用标准或自定义机器类型。请注意,可供机器使用的内存容量和 vCPU 数量存在限制。具体而言,要增加一个资源,可能需要同时增加另一个资源,这样才能符合有效机器类型的规范。此外,Compute Engine 仅建议使用在运行实例的地区提供的机器类型。

请参阅自定义机器类型规范了解详情。

在预估费用差异方面,实例的费用基于前一周的使用情况(享受持续使用折扣前),且推断为 30 天的费用。然后,将其与建议的机器类型的每月费用(未享有持续使用折扣)进行比较。如需了解准确的价格和详细信息,请阅读价格文档

查看机器类型建议

Compute Engine 通过 Google Cloud 控制台提供建议。您还可以使用 gcloud CLI 或 REST 通过 Recommender 获取建议。

控制台

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 查看建议列,了解针对各个实例的建议。您还可以按预估节省金额对列排序。如果实例旁边没有任何建议,则表示 Compute Engine 未生成任何建议。

    “建议”列。

gcloud

使用 gcloud recommender recommendations list 命令并指定虚拟机实例合理容量 Recommender

gcloud recommender recommendations list \
    --recommender=google.compute.instance.MachineTypeRecommender \
    --project=PROJECT_ID \
    --location=ZONE \
    --format=[config | csv | default | diff | flattened | get | json | list | object | table | text | value | yaml]

替换以下内容:

  • PROJECT_ID:您的项目的 ID。
  • ZONE:包含要为其列出建议的实例的可用区。
  • FORMAT:您的首选输出格式。
    • csvdiffgettablevalue 需要非空投影

gcloud recommender recommendations list 命令的输出包含以下字段:

  • name:建议的名称。
  • description:用户易于阅读的建议说明。
  • operationGroups:可按顺序执行以应用建议的若干组操作。

如需了解详情,请参阅 Recommender 文档

REST

Recommender API 与虚拟机实例合理容量 Recommender ID 搭配使用。

PROJECT_ID=my-project
LOCATION=us-central1-c
RECOMMENDER_ID=google.compute.instance.MachineTypeRecommender

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations

响应包括以下字段:

  • name:建议的名称。
  • description:用户易于阅读的建议说明。
  • operationGroups:可按顺序执行以应用建议的若干组操作。

如需了解详情,请参阅 Recommender 文档

创建实例后 24 小时内,系统会显示针对该实例的建议。如果实例的机器类型发生更改,则 Compute Engine 会在更改后 24 小时内提供进一步的建议。

之后,系统会在一天中定期更新虚拟机实例建议。

根据建议更改机器类型

如果您确定想要应用 Compute Engine 提出的建议,您可以直接在建议界面中更改实例的机器类型,也可以手动逐步执行查看机器类型建议时返回的操作。

控制台

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

    如果存在针对实例的建议,则相应建议会出现在建议列中。

  2. 点击您要调整大小的实例的建议文本。

    “建议”列。

  3. 系统会打开一个对话框,其中包含建议的相关信息。如需应用建议并更改虚拟机机器类型,请点击应用。Compute Engine 会停止实例,更改其机器类型,然后重启实例。

  4. 您还可以选择点击自定义链接,以按照自己的喜好自定义实例。

    建议详细信息对话框

  5. 点击应用按钮以应用更改。

gcloud

如需了解相关信息,请参阅更改机器类型

REST

如需了解相关信息,请参阅更改机器类型

忽略建议和恢复建议

如果您已使用完建议,则可以通过控制台忽略建议。在控制台中,如果忽略建议,则系统会从预估节省总额中移除该建议,同时将建议最小化显示,使其呈灰显状态。

通过控制台操作建议不会影响 Recommender API 返回的建议列表或建议状态。如需管理 Recommender API 返回的建议状态,请参阅使用 API

如需通过控制台忽略某项建议,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到“虚拟机实例”页面

    如果存在针对实例的建议,则相应建议会出现在建议列中。

  2. 点击您要忽略的建议的建议文本。

    “建议”列。

  3. 系统会打开一个对话框,其中包含更多详细信息和忽略建议按钮。

    建议详细信息对话框窗口。

  4. 点击忽略建议

要忽略控制台中的所有建议,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击全部忽略按钮。

忽略所有建议。

要恢复建议,请执行以下操作:

  1. 在 Google Cloud Console 的虚拟机实例页面上,点击要恢复的灰显建议文本。

    建议详细信息对话框窗口

  2. 系统会打开一个对话框,其中包含更多详细信息和恢复建议按钮。

    忽略建议。

  3. 点击恢复建议

使用 Monitoring 代理获取更精确的建议

Cloud Monitoring 提供了 Monitoring 代理,可用于从虚拟机实例收集额外的磁盘、CPU、网络和进程指标。如需收集此类数据,请在虚拟机实例上安装 Monitoring 代理,这样此代理就可以访问系统资源和应用服务。

如果虚拟机实例上已安装且正在运行 Monitoring 代理,则此代理收集的 CPU 和内存指标会自动用于计算机器类型建议。与默认的 Compute Engine 指标相比,Monitoring 代理提供的代理指标可让您更深入地了解实例的资源利用率。这样,建议引擎就能更好地预估资源需求,从而生成更精确的建议。

要安装代理,请参阅安装 Monitoring 代理

后续步骤