本文档介绍了如何在新的或现有的虚拟机 (VM) 实例中启用性能监控单元 (PMU)。
在 C4 虚拟机中启用 PMU 并连接到虚拟机后,您可以在虚拟机上运行和安装性能监控软件,以分析和优化虚拟机上运行的软件的性能。在运行对性能敏感的工作负载(例如高性能计算 [HPC] 或机器学习 [ML] 工作负载)时,PMU 非常有用。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
创建虚拟机:
- 针对项目的
compute.instances.create
权限 - 使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly
权限 - 使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 - 使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 - 为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 - 为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 - 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 - 为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 - 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 - 为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 - 为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 - 为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 - 为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 - 为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 - 以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 - 以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限
- 针对项目的
- 如需创建实例模板:针对项目的
compute.instanceTemplates.create
权限 -
更新虚拟机:针对虚拟机的
compute.instances.update
权限 如需验证虚拟机的机器类型和 CPU 平台,请查看虚拟机的详细信息。
如果您需要更改虚拟机的机器类型,请执行以下操作:
创建一个空的 YAML 文件。
如需将虚拟机的属性导出到您刚刚创建的 YAML 文件中,请使用
gcloud compute instances export
命令。gcloud compute instances export VM_NAME \ --destination=YAML_FILE \ --zone=ZONE
替换以下内容:
VM_NAME
:虚拟机的名称。YAML_FILE
:您在上一步中创建的 YAML 文件的路径。ZONE
:该虚拟机所在的可用区。
在 YAML 配置文件中,添加
performanceMonitoringUnit
字段。advancedMachineFeatures: performanceMonitoringUnit: PMU_TYPE
将
PMU_TYPE
替换为以下某个值:架构 PMU 类型:
ARCHITECTURAL
标准 PMU 类型:
STANDARD
增强型 PMU 类型:
ENHANCED
如需更新虚拟机并重启它,请使用
gcloud compute instances update-from-file
命令,并将--most-disruptive-allowed-action
标志设置为RESTART
。gcloud compute instances update-from-file VM_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
替换以下内容:
VM_NAME
:虚拟机的名称。YAML_FILE
:包含您在上一步中修改的配置数据的 YAML 文件的路径。ZONE
:该虚拟机所在的可用区。
创建一个空的 JSON 文件。
如需查看现有虚拟机的属性,请向
instances.get
方法发出GET
请求。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
替换以下内容:
PROJECT_ID
:虚拟机所在项目的 ID。ZONE
:该虚拟机所在的可用区。VM_NAME
:现有虚拟机的名称。
在您在上一步中创建的空 JSON 文件中,执行以下操作:
输入
GET
请求输出中的虚拟机属性。添加
performanceMonitoringUnit
字段。{ "advancedMachineFeatures": { "performanceMonitoringUnit": "PMU_TYPE" }, ... }
将
PMU_TYPE
替换为以下某个值:架构 PMU 类型:
ARCHITECTURAL
标准 PMU 类型:
STANDARD
增强型 PMU 类型:
ENHANCED
如需更新虚拟机并重启它,请向
instances.update
方法发出PUT
请求。在请求中,执行以下操作:在请求网址中添加
most_disruptive_allowed_action
查询参数并设置为RESTART
。对于请求正文,请使用您在上一步中创建和更新的 JSON 文件中的虚拟机属性。
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { "advancedMachineFeatures": { "performanceMonitoringUnit": "PMU_TYPE" }, ... }
VM_NAME
:虚拟机的名称。MACHINE_TYPE
:C4 机器类型。如果您要启用增强型 PMU 类型,则必须指定具有 96 个或 192 个 vCPU 的 C4 机器类型。否则,创建虚拟机会失败。PMU_TYPE
:要在虚拟机中启用的 PMU 类型。请指定以下某个值:架构 PMU 类型:
architectural
标准 PMU 类型:
standard
增强型 PMU 类型:
enhanced
ZONE
:要在其中创建虚拟机的可用区。PROJECT_ID
:要在其中创建虚拟机的项目的 ID。ZONE
:要在其中创建虚拟机的可用区。VM_NAME
:虚拟机的名称。MACHINE_TYPE
:C4 机器类型。如果您要启用增强型 PMU 类型,则必须指定具有 96 个或 192 个 vCPU 的 C4 机器类型。否则,创建虚拟机会失败。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:PMU_TYPE
:要在虚拟机中启用的 PMU 类型。请指定以下某个值:架构 PMU 类型:
ARCHITECTURAL
标准 PMU 类型:
STANDARD
增强型 PMU 类型:
ENHANCED
COUNT
:要创建的虚拟机数量。MACHINE_TYPE
:C4 机器类型。如果您要启用增强型 PMU 类型,则必须指定具有 96 个或 192 个 vCPU 的 C4 机器类型。否则,创建虚拟机会失败。NAME_PATTERN
:虚拟机的名称模式。如需替换虚拟机名称中的数字序列,请使用哈希值 (#
) 字符序列。例如,使用vm-#
作为名称模式将生成名称以vm-1
、vm-2
开头的虚拟机,一直到由COUNT
指定的虚拟机数量。PMU_TYPE
:要在虚拟机中启用的 PMU 类型。请指定以下某个值:架构 PMU 类型:
architectural
标准 PMU 类型:
standard
增强型 PMU 类型:
enhanced
ZONE
:要在其中批量创建虚拟机的可用区。PROJECT_ID
:要在其中批量创建虚拟机的项目的 ID。ZONE
:要在其中批量创建虚拟机的可用区。COUNT
:要创建的虚拟机数量。NAME_PATTERN
:虚拟机的名称模式。如需替换虚拟机名称中的数字序列,请使用哈希值 (#
) 字符序列。例如,使用vm-#
作为名称模式将生成名称以vm-1
、vm-2
开头的虚拟机,一直到由COUNT
指定的虚拟机数量。MACHINE_TYPE
:C4 机器类型。如果您要启用增强型 PMU 类型,则必须指定具有 96 个或 192 个 vCPU 的 C4 机器类型。否则,创建虚拟机会失败。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:PMU_TYPE
:要在虚拟机中启用的 PMU 类型。请指定以下某个值:架构 PMU 类型:
ARCHITECTURAL
标准 PMU 类型:
STANDARD
增强型 PMU 类型:
ENHANCED
ZONE
:要在其中批量创建虚拟机的可用区。执行以下操作时,在托管式实例组 (MIG) 的虚拟机中启用 PMU:
INSTANCE_TEMPLATE_NAME
:实例模板的名称。MACHINE_TYPE
:C4 机器类型。如果您要启用增强型 PMU 类型,则必须指定具有 96 个或 192 个 vCPU 的 C4 机器类型。否则,创建虚拟机会失败。PMU_TYPE
:要在实例模板中包含的 PMU 类型。请指定以下某个值:架构 PMU 类型:
architectural
标准 PMU 类型:
standard
增强型 PMU 类型:
enhanced
如需创建全球实例模板:
instanceTemplates.insert
方法。如需创建区域级实例模板:
regionInstanceTemplates.insert
方法。PROJECT_ID
:要在其中创建实例模板的项目的 ID。INSTANCE_TEMPLATE_NAME
:实例模板的名称。IMAGE_PROJECT
:映像所属的映像项目;例如debian-cloud
。如需详细了解支持的映像项目,请参阅公共映像。IMAGE
:指定以下其中一项:MACHINE_TYPE
:C4 机器类型。如果您要启用增强型 PMU 类型,则必须指定具有 96 个或 192 个 vCPU 的 C4 机器类型。否则,创建虚拟机会失败。PMU_TYPE
:要在实例模板中包含的 PMU 类型。请指定以下某个值:架构 PMU 类型:
ARCHITECTURAL
标准 PMU 类型:
STANDARD
增强型 PMU 类型:
ENHANCED
了解如何连接到虚拟机。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得在新的或现有的虚拟机中启用 PMU 所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色可提供在新的或现有的虚拟机中启用 PMU 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
在新的或现有的虚拟机中启用 PMU 需要以下权限:
在虚拟机中启用 PMU
如需在一个或多个 C4 虚拟机中启用 PMU,请选择以下方法之一:
在一个或多个虚拟机中启用 PMU 后,您可以在虚拟机上安装和使用性能监控软件。
在现有虚拟机中启用 PMU
在现有虚拟机中启用 PMU 之前,请执行以下操作,确保虚拟机使用受支持的机器类型和 CPU 平台:
您无需停止虚拟机即可启用 PMU。不过,如需使更改生效,您必须按照本部分中所述重启虚拟机。
如需在现有虚拟机中启用 PMU,请选择以下选项之一:
gcloud
REST
如需详细了解如何更新虚拟机的属性,请参阅更新虚拟机属性。
在创建虚拟机时启用 PMU
您只能在包含受支持的 CPU 平台的可用区中创建启用了 PMU 的虚拟机。如需查看按可用区划分的可用 CPU 列表,请参阅可用区域和可用区。
如需创建启用了 PMU 的虚拟机,请选择以下选项之一:
gcloud
如需创建启用了 PMU 的虚拟机,请将
gcloud compute instances create
命令与--performance-monitoring-unit
标志结合使用。gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --performance-monitoring-unit=PMU_TYPE \ --zone=ZONE
替换以下内容:
REST
如需创建启用了 PMU 的虚拟机,请向
instances.insert
方法发出POST
请求。在请求正文中,包含performanceMonitoringUnit
字段。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "advancedMachineFeatures": { "performanceMonitoringUnit": "PMU_TYPE" } }
替换以下内容:
如需详细了解如何创建虚拟机,请参阅创建和启动 Compute Engine 实例。
在批量创建虚拟机时启用 PMU
您只能在包含受支持的 CPU 平台的可用区中批量创建启用了 PMU 的虚拟机。如需查看按可用区划分的可用 CPU 列表,请参阅可用区域和可用区。
如需批量创建启用了 PMU 的虚拟机,请选择以下选项之一:
gcloud
如需批量创建启用了 PMU 的虚拟机,请将
gcloud compute instances bulk create
命令与--performance-monitoring-unit
标志结合使用。例如,如需在单个可用区中批量创建虚拟机并指定名称模式,请运行以下命令:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --performance-monitoring-unit=PMU_TYPE \ --zone=ZONE
替换以下内容:
REST
如需批量创建启用了 PMU 的虚拟机,请向
instances.bulkInsert
方法发出POST
请求。在请求正文中,包含performanceMonitoringUnit
字段。例如,如需在单个可用区中批量创建虚拟机并指定名称模式,请发出
POST
请求,如下所示:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "advancedMachineFeatures": { "performanceMonitoringUnit": "PMU_TYPE" } } }
替换以下内容:
如需详细了解如何批量创建虚拟机,请参阅批量创建虚拟机。
在创建实例模板时启用 PMU
如果您要创建启用了 PMU 的区域级实例模板,请确保所选区域中至少有一个可用区包含受支持的 CPU 平台。如需查看按可用区划分的可用 CPU 列表,请参阅可用区域和可用区。
创建启用了 PMU 的实例模板后,您可以使用该模板执行以下操作:
如需创建启用了 PMU 的实例模板,请选择以下选项之一:
gcloud
如需创建启用了 PMU 的实例模板,请将
gcloud compute instance-templates create
命令与--performance-monitoring-unit
标志结合使用。例如,如需创建启用了 PMU 的全球实例模板,请运行以下命令:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --performance-monitoring-unit=PMU_TYPE
替换以下内容:
REST
如需创建启用了 PMU 的实例模板,请向以下方法之一发出
POST
请求:在请求正文中,添加
performanceMonitoringUnit
字段。例如,如需创建启用了 PMU 的全球实例模板,请发出
POST
请求,如下所示:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "advancedMachineFeatures": { "performanceMonitoringUnit": "PMU_TYPE" } } }
替换以下内容:
如需详细了解如何创建实例模板,请参阅创建实例模板。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-24。
-