Gestionar la PMU en las VMs


En este documento se explica cómo cambiar el tipo de unidad de monitorización del rendimiento (PMU) habilitado en una instancia de máquina virtual (VM) o cómo inhabilitarlo. Para obtener más información sobre la PMU, consulta el resumen de la PMU.

Una vez que hayas habilitado la PMU en una VM y hayas ejecutado un software de monitorización del rendimiento en la VM, podrás hacer lo siguiente:

  • Cambia el tipo de PMU habilitado en la VM. Este cambio es útil cuando quieres hacer un seguimiento de diferentes tipos de eventos de CPU de bajo nivel.

  • Inhabilita la PMU en la VM. Esta acción es útil cuando ya no necesitas acceder a los contadores de rendimiento de la PMU.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para cambiar el tipo de PMU habilitado en una VM o inhabilitarlo, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para cambiar el tipo de PMU habilitado en una VM o inhabilitarlo. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Se necesitan los siguientes permisos para cambiar el tipo de PMU habilitado en una máquina virtual o inhabilitarlo:

  • Para actualizar una máquina virtual, haz lo siguiente: compute.instances.update en la máquina virtual

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Cambiar el tipo de PMU en una VM

Antes de cambiar el tipo de PMU habilitado en una máquina virtual C4 o C4A, consulta los detalles de la máquina virtual con la CLI de Google Cloud o la API REST. En el resultado del comando o de la solicitud de la API, comprueba lo siguiente:

  1. Para verificar el tipo de PMU habilitado en la VM, comprueba el valor del campo performanceMonitoringUnit. Si falta el campo, la PMU se inhabilita.

  2. Si quieres habilitar el tipo de PMU mejorado, asegúrate de que la VM use un tipo de máquina C4 con 96 o 192 vCPUs. Para ello, comprueba el valor del campo machineType. Si no es así, cambia el tipo de máquina de la VM.

No es necesario que detengas la VM para cambiar el tipo de PMU habilitado en ella. Sin embargo, para que el cambio se aplique, debes reiniciar la VM como se describe en esta sección.

Para cambiar el tipo de PMU habilitado en una VM, selecciona una de las siguientes opciones:

gcloud

  1. Crea un archivo YAML vacío.

  2. Para exportar las propiedades de una VM al archivo YAML que acabas de crear, usa el comando gcloud compute instances export:

    gcloud compute instances export VM_NAME \
        --destination=YAML_FILE \
        --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: la ruta al archivo YAML que has creado en el paso anterior.

    • ZONE: la zona en la que se encuentra la VM.

  3. En el archivo de configuración YAML, busca el campo performanceMonitoringUnit y cambia su valor para especificar otro tipo de PMU:

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    

    Sustituye PMU_TYPE por uno de los siguientes valores:

    • Tipo de PMU de arquitectura: ARCHITECTURAL

    • Tipo de PMU estándar: STANDARD

    • Tipo de PMU mejorado: ENHANCED

  4. Para actualizar la VM y reiniciarla, usa el comando gcloud compute instances update-from-file con la marca --most-disruptive-allowed-action definida como RESTART:

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: la ruta al archivo YAML con los datos de configuración que has modificado en el paso anterior.

    • ZONE: la zona en la que se encuentra la VM.

REST

  1. Crea un archivo JSON vacío.

  2. Para ver las propiedades de una VM, envía una solicitud GET al método instances.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que se encuentra la VM.

    • ZONE: la zona en la que se encuentra la VM.

    • VM_NAME: nombre de una VM.

  3. En el archivo JSON vacío que has creado en los pasos anteriores, haz lo siguiente:

    1. Introduce las propiedades de la VM de la salida de la solicitud GET.

    2. Busca el campo performanceMonitoringUnit y cambia su valor para especificar otro tipo de PMU:

      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "PMU_TYPE"
      }
      

      Sustituye PMU_TYPE por uno de los siguientes valores:

      • Tipo de PMU de arquitectura: ARCHITECTURAL

      • Tipo de PMU estándar: STANDARD

      • Tipo de PMU mejorado: ENHANCED

  4. Para actualizar la VM y reiniciarla, haz una solicitud PUT al método instances.update. En la solicitud, haz lo siguiente:

    • En la URL de la solicitud, incluya el parámetro de consulta mostDisruptiveAllowedAction con el valor RESTART.

    • En el cuerpo de la solicitud, usa las propiedades de la máquina virtual del archivo JSON que has creado y actualizado en los pasos anteriores.

    La solicitud es similar a la siguiente:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "PMU_TYPE"
      },
      ...
    }
    

Para obtener más información sobre cómo actualizar las propiedades de una VM, consulta Actualizar las propiedades de una VM.

Inhabilitar la PMU en una máquina virtual

No es necesario detener la VM para inhabilitar la PMU. Sin embargo, para que el cambio se aplique, debes reiniciar la VM tal como se describe en esta sección.

Para inhabilitar la PMU en una VM, selecciona una de las siguientes opciones:

gcloud

  1. Crea un archivo YAML vacío.

  2. Para exportar las propiedades de una VM al archivo YAML que acabas de crear, usa el comando gcloud compute instances export:

    gcloud compute instances export VM_NAME \
        --destination=YAML_FILE \
        --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: la ruta al archivo YAML que has creado en el paso anterior.

    • ZONE: la zona en la que se encuentra la VM.

  3. En el archivo de configuración YAML, busca el campo performanceMonitoringUnit NONE y asigna el valor performanceMonitoringUnit NONE:

    advancedMachineFeatures:
      performanceMonitoringUnit: NONE
    
  4. Para actualizar la VM y reiniciarla, usa el comando gcloud compute instances update-from-file con la marca --most-disruptive-allowed-action definida como RESTART:

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: la ruta al archivo YAML con los datos de configuración que has modificado en el paso anterior.

    • ZONE: la zona en la que se encuentra la VM.

REST

  1. Crea un archivo JSON vacío.

  2. Para ver las propiedades de una VM, envía una solicitud GET al método instances.get:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que se encuentra la VM.

    • ZONE: la zona en la que se encuentra la VM.

    • VM_NAME: nombre de una VM.

  3. En el archivo JSON vacío que has creado en los pasos anteriores, haz lo siguiente:

    1. Introduce las propiedades de la VM de la salida de la solicitud GET.

    2. Busque el campo performanceMonitoringUnit y cambie su valor a NONE:

      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "NONE"
      }
      
  4. Para actualizar la VM y reiniciarla, haz una solicitud PUT al método instances.update. En la solicitud, haz lo siguiente:

    • En la URL de la solicitud, incluya el parámetro de consulta mostDisruptiveAllowedAction con el valor RESTART.

    • En el cuerpo de la solicitud, usa las propiedades de la máquina virtual del archivo JSON que has creado y actualizado en los pasos anteriores.

    La solicitud es similar a la siguiente:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "advancedMachineFeatures": {
        "performanceMonitoringUnit": "NONE"
      },
      ...
    }
    

Para obtener más información sobre cómo actualizar las propiedades de una VM, consulta Actualizar las propiedades de una VM.

Siguientes pasos