Administra la PMU en instancias de Compute Engine

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

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

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

En este documento, se explica cómo cambiar el tipo de unidad de supervisión de rendimiento (PMU) que está habilitado en una instancia de Compute Engine o cómo inhabilitarlo. Para obtener más información sobre la PMU, consulta la descripción general de la PMU.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras 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 Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate 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 instancia de procesamiento 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 instancia de procesamiento 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 instancia de procesamiento o inhabilitarlo:

  • Para actualizar una instancia de procesamiento, usa compute.instances.update en la instancia de procesamiento.

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

Cómo cambiar el tipo de PMU en una instancia de procesamiento

Antes de cambiar el tipo de PMU para una instancia existente de A4X, C4A, C4 o M4, consulta los detalles de la instancia de procesamiento con Google Cloud CLI o la API de REST. En el resultado del comando o la solicitud de API, verifica lo siguiente:

  1. Para verificar que el tipo de PMU esté habilitado en la instancia de procesamiento, verifica el valor del campo performanceMonitoringUnit. Si falta el campo, la PMU está inhabilitada.

  2. Si deseas habilitar el tipo de PMU mejorado, debes verificar que la instancia de procesamiento use uno de los siguientes tipos de máquina. Para ello, verifica el valor del campo machineType:

    • Un tipo de máquina C4 con 144 o 288 CPU virtuales

    • Uno de los siguientes tipos de máquinas M4:

      • m4-megamem-112

      • m4-megamem-224

      • m4-ultramem-56

      • m4-ultramem-112

      • m4-ultramem-224

    Si tu instancia de procesamiento usa un tipo de máquina diferente, debes cambiar el tipo de máquina que usa la instancia de procesamiento antes de poder supervisar los tipos de PMU mejorados.

No es necesario que detengas la instancia de procesamiento para cambiar el tipo de PMU. Sin embargo, para que el cambio sea efectivo, debes reiniciar la instancia de procesamiento como se describe en esta sección.

Para cambiar el tipo de PMU habilitado en una instancia de procesamiento existente, selecciona una de las siguientes opciones:

gcloud

  1. Crea un archivo YAML vacío.

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

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

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

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

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

  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 instancia de procesamiento 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 INSTANCE_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

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

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

REST

  1. Para ver las propiedades de una instancia de procesamiento existente, realiza una solicitud GET al método instances.get:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que se encuentra la instancia de procesamiento.

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

    • INSTANCE_NAME: Es el nombre de una instancia de procesamiento existente.

  2. Para actualizar la instancia de procesamiento y reiniciarla, realiza una solicitud PUT al método instances.update de la siguiente manera:

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

    • Para el cuerpo de la solicitud, usa el resultado de la solicitud GET del paso anterior. Sin embargo, en el campo advancedMachineFeatures, debes cambiar el valor del campo performanceMonitoringUnit al tipo de PMU que elijas.

    La solicitud PUT es similar a la siguiente:

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      "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

Para obtener más información sobre cómo actualizar las propiedades de una instancia de procesamiento, consulta Actualiza las propiedades de las instancias.

Inhabilita la PMU en una instancia de procesamiento

Puedes inhabilitar la PMU en una instancia de procesamiento sin detenerla. Sin embargo, para que el cambio sea efectivo, debes reiniciar la instancia de procesamiento como se describe en esta sección.

Para inhabilitar la PMU en una instancia de procesamiento existente, selecciona una de las siguientes opciones:

gcloud

  1. Crea un archivo YAML vacío.

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

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

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

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

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

  3. En el archivo de configuración YAML, quita el campo performanceMonitoringUnit. Si el campo advancedMachineFeatures está vacío, quítalo también.

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    
  4. Para actualizar la instancia de procesamiento 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 INSTANCE_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

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

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

REST

  1. Para ver las propiedades de una instancia de procesamiento existente, realiza una solicitud GET al método instances.get:

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

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que existe la instancia de procesamiento.

    • ZONE: Es la zona en la que existe la instancia de procesamiento.

    • INSTANCE_NAME: Es el nombre de una instancia de procesamiento existente.

  2. Para actualizar la instancia de procesamiento 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 mostDisruptiveAllowedAction configurado como RESTART.

    • Para el cuerpo de la solicitud, usa el resultado de la solicitud GET del paso anterior. Sin embargo, debes quitar el campo performanceMonitoringUnit y, si no hay otros campos en el campo advancedMachineFeatures, también el campo advancedMachineFeatures.

    La solicitud PUT es similar a la siguiente:

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

Para obtener más información sobre cómo actualizar las propiedades de una instancia de procesamiento, consulta Actualiza las propiedades de las instancias.

¿Qué sigue?