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


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

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

准备工作

  • 阅读 Google Cloud 控制台文档。
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

价格

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

限制和用例

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

  • 使用 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 天的费用。然后,将其与建议的机器类型的每月费用(未享有持续使用折扣)进行比较。如需了解准确的价格和详细信息,请阅读价格文档

建议是通过基于机器可用的指标监控 CPU 和内存利用率生成的。为了提高建议的准确性,请考虑安装 Monitoring 代理

查看机器类型建议

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. 点击恢复建议

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

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

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

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

后续步骤