Habilitar la PMU en las VMs


En este documento se explica cómo habilitar la unidad de monitorización del rendimiento (PMU) en instancias de máquina virtual (VM) nuevas o ya creadas. Para obtener más información sobre la PMU, consulta la introducción a la PMU.

Después de habilitar la PMU en una VM C4A o C4 y conectarte a ella, puedes ejecutar e instalar software de monitorización del rendimiento en la VM para analizar y optimizar el rendimiento del software que se ejecuta en la VM. Este enfoque es útil cuando se ejecutan cargas de trabajo sensibles al rendimiento, como las de computación de alto rendimiento (HPC) o aprendizaje automático (ML).

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 habilitar la PMU en una VM nueva o ya creada, 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 habilitar la PMU en una VM nueva o ya creada. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para habilitar la PMU en una VM nueva o ya creada, se necesitan los siguientes permisos:

  • Para crear VMs, sigue estos pasos:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada para crear la VM, haz clic en compute.images.useReadOnly en la imagen.
    • Para usar una captura para crear la VM, compute.snapshots.useReadOnly en la captura
    • Para usar una plantilla de instancia para crear la VM, haz clic en compute.instanceTemplates.useReadOnly en la plantilla de instancia.
    • Para asignar una red antigua a la VM, haz lo siguiente: compute.networks.use en el proyecto
    • Para especificar una dirección IP estática para la máquina virtual, compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red antigua, haz lo siguiente: compute.networks.useExternalIp en el proyecto
    • Para especificar una subred para la VM, compute.subnetworks.use en el proyecto o en la subred elegida.
    • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, compute.subnetworks.useExternalIp en el proyecto o en la subred elegida.
    • Para definir los metadatos de la instancia de VM de la VM: compute.instances.setMetadata en el proyecto,
    • Para definir etiquetas en la máquina virtual, compute.instances.setTags en la máquina virtual
    • Para definir etiquetas de la VM, compute.instances.setLabels en la VM
    • Para definir una cuenta de servicio que use la VM, haz lo siguiente en la VM: compute.instances.setServiceAccount
    • Para crear un disco para la VM compute.disks.create del proyecto, sigue estos pasos:
    • Para adjuntar un disco en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para adjuntar un disco en modo de solo lectura, compute.disks.useReadOnly en el disco.
  • Para crear una plantilla de instancia, sigue estos pasos: compute.instanceTemplates.create en el proyecto
  • 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.

Habilitar la PMU en las VMs

Para habilitar la PMU en una o varias VMs C4A o C4, usa uno de los siguientes métodos:

Una vez que hayas habilitado la PMU en una o varias máquinas virtuales, podrás instalar y usar software de monitorización del rendimiento en ellas.

Habilitar la PMU en una VM

Antes de habilitar la PMU en una VM, asegúrate de que la VM usa un tipo de máquina y una plataforma de CPU compatibles. Para ello, haz lo siguiente:

  1. Para verificar el tipo de máquina y la plataforma de CPU de la VM, consulta los detalles de la VM.

  2. Si necesitas cambiar el tipo de máquina de la VM, haz lo siguiente:

    1. Para verificar que una plataforma de CPU admitida está disponible en la zona en la que se encuentra la VM, consulta Regiones y zonas disponibles.

    2. Cambia el tipo de máquina de la siguiente manera:

      • Para habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs.

      • De lo contrario, para habilitar el tipo de PMU Arquitectónico o Estándar, especifica cualquier tipo de máquina C4A o C4.

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

Para habilitar 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, añade el campo performanceMonitoringUnit. Si el campo advancedMachineFeatures no existe, añádelo también:

    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. En el campo advancedMachineFeatures, añade el campo performanceMonitoringUnit. Si el campo advancedMachineFeatures no existe, añádelo también:

      {
        "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 máquina virtual, consulta el artículo Actualizar las propiedades de una instancia.

Habilitar la PMU al crear una VM

Solo puedes crear una VM que tenga la PMU habilitada en una zona que contenga una plataforma de CPU compatible. Para ver una lista de las CPUs disponibles por zona, consulta Regiones y zonas disponibles.

Para crear una VM con la PMU habilitada, selecciona una de las siguientes opciones:

gcloud

Para crear una VM que tenga habilitada la PMU, usa el gcloud compute instances create comando con la marca --performance-monitoring-unit:

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.

  • MACHINE_TYPE: un tipo de máquina C4A o C4. Si quieres habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs. De lo contrario, no se podrá crear la VM.

  • PMU_TYPE: el tipo de PMU que se va a habilitar en la VM. Se debe utilizar uno de los valores indicados a continuación.

    • Tipo de PMU de arquitectura: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

  • ZONE: la zona en la que se creará la VM.

REST

Para crear una VM que tenga habilitada la PMU, haz una solicitud POST al método instances.insert. En el cuerpo de la solicitud, incluye el campo 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"
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se va a crear la VM.

  • ZONE: la zona en la que se creará la VM.

  • VM_NAME: el nombre de la VM.

  • MACHINE_TYPE: un tipo de máquina C4A o C4. Si quieres habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs. De lo contrario, no se podrá crear la VM.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • PMU_TYPE: el tipo de PMU que se va a habilitar en la VM. Se debe utilizar uno de los valores indicados a continuación.

    • Tipo de PMU de arquitectura: ARCHITECTURAL

    • Tipo de PMU estándar: STANDARD

    • Tipo de PMU mejorado: ENHANCED

Para obtener más información sobre cómo crear una VM, consulta Crear e iniciar una instancia de Compute Engine.

Habilitar la PMU al crear VMs en bloque

Solo puedes crear VMs en bloque que tengan la PMU habilitada en zonas que contengan una plataforma de CPU compatible. Para ver una lista de las CPUs disponibles por zona, consulta Regiones y zonas disponibles.

Para crear VMs en bloque con la PMU habilitada, selecciona una de las siguientes opciones:

gcloud

Para crear VMs en bloque que tengan la PMU habilitada, usa el comando gcloud compute instances bulk create con la marca --performance-monitoring-unit.

Por ejemplo, para crear VMs en bloque en una sola zona y especificar un patrón de nombre, ejecuta el siguiente comando:

gcloud compute instances bulk create \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --name-pattern="NAME_PATTERN" \
    --performance-monitoring-unit=PMU_TYPE \
    --zone=ZONE

Haz los cambios siguientes:

  • COUNT: número de VMs que se van a crear.

  • MACHINE_TYPE: un tipo de máquina C4A o C4. Si quieres habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs. De lo contrario, no se podrá crear la VM.

  • NAME_PATTERN: el patrón de nombre de las VMs. Para sustituir una secuencia de números en un nombre de VM, usa una secuencia de caracteres de almohadilla (#). Por ejemplo, si se usa vm-# como patrón de nombre, se generarán VMs con nombres que empiecen por vm-1, vm-2 y así sucesivamente hasta el número de VMs especificado por COUNT.

  • PMU_TYPE: el tipo de PMU que se va a habilitar en las VMs. Se debe utilizar uno de los valores indicados a continuación.

    • Tipo de PMU de arquitectura: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

  • ZONE: la zona en la que se crearán las VMs en bloque.

REST

Para crear VMs en bloque que tengan la PMU habilitada, haz una solicitud POST al método instances.bulkInsert. En el cuerpo de la solicitud, incluye el campo performanceMonitoringUnit.

Por ejemplo, para crear VMs en bloque en una sola zona y especificar un patrón de nombre, haz una solicitud POST de la siguiente manera:

POST https://compute.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"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se crearán las máquinas virtuales en bloque.

  • ZONE: la zona en la que se crearán las VMs en bloque.

  • COUNT: número de VMs que se van a crear.

  • NAME_PATTERN: el patrón de nombre de las VMs. Para sustituir una secuencia de números en un nombre de VM, usa una secuencia de caracteres de almohadilla (#). Por ejemplo, si se usa vm-# como patrón de nombre, se generarán VMs con nombres que empiecen por vm-1, vm-2 y así sucesivamente hasta el número de VMs especificado por COUNT.

  • MACHINE_TYPE: un tipo de máquina C4A o C4. Si quieres habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs. De lo contrario, no se podrá crear la VM.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • PMU_TYPE: el tipo de PMU que se va a habilitar en las VMs. Se debe utilizar uno de los valores indicados a continuación.

    • Tipo de PMU de arquitectura: ARCHITECTURAL

    • Tipo de PMU estándar: STANDARD

    • Tipo de PMU mejorado: ENHANCED

Para obtener más información sobre cómo crear VMs en bloque, consulta Crear VMs en bloque.

Habilitar la PMU al crear una plantilla de instancia

Si quieres crear una plantilla de instancia regional que tenga habilitada la PMU, asegúrate de que al menos una zona de la región seleccionada contenga una plataforma de CPU compatible. Para ver una lista de las CPUs disponibles por zona, consulta Regiones y zonas disponibles.

Después de crear una plantilla de instancia que tenga habilitada la PMU, puedes usarla para hacer lo siguiente:

Para crear una plantilla de instancia con la PMU habilitada, selecciona una de las siguientes opciones:

gcloud

Para crear una plantilla de instancia que tenga habilitada la PMU, usa el comando gcloud compute instance-templates create con la marca --performance-monitoring-unit. Para crear una plantilla de instancia regional, también debe incluir la marca --instance-template-region.

Por ejemplo, para crear una plantilla de instancia regional que tenga la PMU habilitada, ejecuta el siguiente comando:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --performance-monitoring-unit=PMU_TYPE

Haz los cambios siguientes:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia.

  • REGION: la región en la que se creará la plantilla de instancia.

  • MACHINE_TYPE: un tipo de máquina C4A o C4. Si quieres habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs. De lo contrario, no se podrá crear la VM.

  • PMU_TYPE: el tipo de PMU que se va a incluir en la plantilla de instancia. Se debe utilizar uno de los valores indicados a continuación.

    • Tipo de PMU de arquitectura: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

REST

Para crear una plantilla de instancia con la PMU habilitada, haz una solicitud POST a uno de los siguientes métodos:

En el cuerpo de la solicitud, incluye el campo performanceMonitoringUnit.

Por ejemplo, para crear una plantilla de instancia regional que tenga la PMU habilitada, haz una solicitud POST de la siguiente manera:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/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"
    }
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: ID del proyecto en el que se va a crear la plantilla de instancia.

  • REGION: la región en la que se creará la plantilla de instancia.

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancia.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

  • MACHINE_TYPE: un tipo de máquina C4A o C4. Si quieres habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 vCPUs. De lo contrario, no se podrá crear la VM.

  • PMU_TYPE: el tipo de PMU que se va a incluir en la plantilla de instancia. Se debe utilizar uno de los valores indicados a continuación.

    • Tipo de PMU de arquitectura: ARCHITECTURAL

    • Tipo de PMU estándar: STANDARD

    • Tipo de PMU mejorado: ENHANCED

Para obtener más información sobre cómo crear una plantilla de instancia, consulta el artículo Crear plantillas de instancia.

Siguientes pasos