Administra la PMU en las VMs


En este documento, se describe cómo cambiar el tipo de unidad de supervisión de rendimiento (PMU) habilitado en una instancia de máquina virtual (VM) o inhabilitarla en una VM.

Después de habilitar la PMU en una VM y ejecutar software de supervisión de rendimiento en la VM, puedes hacer lo siguiente:

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

  • Inhabilita la PMU en la VM. Inhabilitar la PMU en una VM es útil cuando ya no necesitas acceder a los contadores de rendimiento de la PMU.

Antes de comenzar

  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

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

    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

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

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

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de 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, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra 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 son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para cambiar el tipo de PMU habilitado en una VM o inhabilitarlo:

  • Para actualizar una VM, haz lo siguiente: compute.instances.update en la VM

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

Cambia el tipo de PMU en una VM

Antes de cambiar el tipo de PMU habilitado en una VM existente, consulta los detalles de la VM con Google Cloud CLI o REST. En el resultado del comando o la solicitud a la API, verifica lo siguiente:

  1. Para verificar el tipo de PMU habilitado en la VM, verifica el valor del campo performanceMonitoringUnit.

  2. Si deseas habilitar el tipo de PMU mejorado, asegúrate de que la VM use un tipo de máquina C4 con 96 o 192 CPU virtuales. Para ello, verifica el valor del campo machineType. De lo contrario, 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 sea efectivo, debes reiniciar la VM como se describe en esta sección.

Para cambiar el tipo de PMU habilitado en una VM existente, 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
    

    Reemplaza lo siguiente:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: Es la ruta de acceso al archivo YAML que creaste en el paso anterior.

    • ZONE: la zona donde se ubica la VM.

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

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    

    Reemplaza PMU_TYPE por uno de los siguientes valores:

    • Tipo de PMU arquitectónica: 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 establecida en RESTART.

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

    Reemplaza lo siguiente:

    • VM_NAME: el nombre de la VM.

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

    • ZONE: la zona donde se ubica la VM.

REST

  1. Crea un archivo JSON vacío.

  2. Para ver las propiedades de una VM existente, realiza una solicitud GET al método instances.get.

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

    Reemplaza lo siguiente:

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

    • ZONE: la zona donde se ubica la VM.

    • VM_NAME: el nombre de una VM existente.

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

    1. Ingresa las propiedades de la VM del resultado de la solicitud GET.

    2. Busca el campo performanceMonitoringUnit y, luego, cambia su valor para especificar un tipo de PMU diferente.

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

      Reemplaza PMU_TYPE por uno de los siguientes valores:

      • Tipo de PMU arquitectónica: ARCHITECTURAL

      • Tipo de PMU estándar: STANDARD

      • Tipo de PMU mejorado: ENHANCED

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

    • En la URL de la solicitud, incluye el parámetro de consulta most_disruptive_allowed_action configurado como RESTART.

    • Para el cuerpo de la solicitud, usa las propiedades de la VM del archivo JSON que creaste y actualizaste en los pasos anteriores.

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

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

Inhabilita la PMU en una VM

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

Para inhabilitar la PMU en una VM existente, 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
    

    Reemplaza lo siguiente:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: Es la ruta de acceso al archivo YAML que creaste en el paso anterior.

    • ZONE: la zona donde se ubica la VM.

  3. En el archivo de configuración YAML, ubica el campo performanceMonitoringUnit y establece su valor en 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 establecida en RESTART.

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

    Reemplaza lo siguiente:

    • VM_NAME: el nombre de la VM.

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

    • ZONE: la zona donde se ubica la VM.

REST

  1. Crea un archivo JSON vacío.

  2. Para ver las propiedades de una VM existente, realiza una solicitud GET al método instances.get.

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

    Reemplaza lo siguiente:

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

    • ZONE: la zona donde se ubica la VM.

    • VM_NAME: el nombre de una VM existente.

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

    1. Ingresa las propiedades de la VM del resultado de la solicitud GET.

    2. Busca el campo performanceMonitoringUnit y cambia su valor a NONE.

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

    • En la URL de la solicitud, incluye el parámetro de consulta most_disruptive_allowed_action configurado como RESTART.

    • Para el cuerpo de la solicitud, usa las propiedades de la VM del archivo JSON que creaste y actualizaste en los pasos anteriores.

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

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

¿Qué sigue?