本文档介绍了如何更改在虚拟机 (VM) 实例中启用的性能监控单元 (PMU) 类型,或在虚拟机中停用 PMU。
在在虚拟机中启用 PMU 并在虚拟机上运行性能监控软件后,您可以执行以下操作:
更改在虚拟机中启用的 PMU 类型。如果您想跟踪不同类型的低级别 CPU 事件,这会非常有用。
在虚拟机中停用 PMU。如果您不再需要访问 PMU 的性能计数器,则停用虚拟机中的 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.update
如需验证在虚拟机中启用的 PMU 类型,请检查
performanceMonitoringUnit
字段的值。如果您想启用增强型 PMU 类型,请通过检查
machineType
字段的值,确保虚拟机使用的是具有 96 或 192 个 vCPU 的 C4 机器类型。如果不是,请更改虚拟机的机器类型。创建一个空的 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
字段,然后更改其值以指定其他 PMU 类型。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
字段,然后更改其值以指定其他 PMU 类型。"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" }, ... }
创建一个空的 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
字段并将其值设置为NONE
。advancedMachineFeatures: performanceMonitoringUnit: NONE
如需更新虚拟机并重启它,请使用
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
字段,然后将其值更改为NONE
。"advancedMachineFeatures": { "performanceMonitoringUnit": "NONE" }
如需更新虚拟机并重启它,请向
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" }, ... }
- 了解如何设置每个核心的线程数。
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 类型
在更改现有虚拟机中启用的 PMU 类型之前,请使用 Google Cloud CLI 或 REST 查看虚拟机的详细信息。在命令或 API 请求的输出中,验证以下各项:
您无需停止虚拟机即可更改其中启用的 PMU 类型。不过,如需使更改生效,您必须按照本部分所述重启虚拟机。
如需更改在现有虚拟机中启用的 PMU 类型,请选择以下选项之一:
gcloud
REST
如需详细了解如何更新虚拟机的属性,请参阅更新虚拟机属性。
在虚拟机中停用 PMU
您无需停止虚拟机即可停用 PMU。不过,如需使更改生效,您必须按照本部分所述重启虚拟机。
如需在现有虚拟机中停用 PMU,请选择以下选项之一:
gcloud
REST
如需详细了解如何更新虚拟机的属性,请参阅更新虚拟机属性。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-18。
-