Habilita la PMU en las VMs


En este documento, se describe cómo habilitar la unidad de supervisión de rendimiento (PMU) en instancias de máquina virtual (VM) nuevas o existentes.

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

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 habilitar la PMU en una VM nueva o existente, 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 habilitar la PMU en una VM nueva o existente. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para habilitar la PMU en una VM nueva o existente:

  • Para crear VMs, sigue estos pasos:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada con el fin de crear la VM, sigue estos pasos: compute.images.useReadOnly en la imagen
    • Si deseas usar una instantánea para crear la VM, sigue estos pasos: compute.snapshots.useReadOnly en la instantánea
    • Para usar una plantilla de instancias a fin de crear la VM, haz lo siguiente: compute.instanceTemplates.useReadOnly en la plantilla de instancias
    • Para asignar una red heredada a la VM: compute.networks.use en el proyecto
    • Si deseas especificar una dirección IP estática para la VM; compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red y punto heredado; compute.networks.useExternalIp en el proyecto
    • A fin de 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
    • A fin de configurar los metadatos de la instancia de VM para la VM y los puntos, sigue estos pasos: compute.instances.setMetadata en el proyecto
    • A fin de configurar etiquetas para la VM y los puntos; compute.instances.setTags en la VM
    • Si deseas configurar etiquetas para la VM, haz lo siguiente: compute.instances.setLabels en la VM
    • A fin de configurar una cuenta de servicio para que la VM la usecompute.instances.setServiceAccount en la VM
    • Si deseas crear un disco nuevo para la VM: compute.disks.create en el proyecto
    • Para conectar un disco existente en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para conectar un disco existente en modo de solo lectura y dos puntos, sigue estos pasos: compute.disks.useReadOnly en el disco
  • Para crear una plantilla de instancias: compute.instanceTemplates.create en el proyecto
  • 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.

Habilita la PMU en las VMs

Para habilitar la PMU en una o más VMs de C4, selecciona uno de los siguientes métodos:

Después de habilitar la PMU en una o más VMs, puedes instalar y usar software de supervisión de rendimiento en ellas.

Habilita la PMU en una VM existente

Antes de habilitar la PMU en una VM existente, asegúrate de que la VM use 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 compatible esté disponible en la zona donde 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 CPU virtuales.

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

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

Para habilitar 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, agrega el campo performanceMonitoringUnit.

    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. Agrega el campo performanceMonitoringUnit.

      {
        "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.

Habilita la PMU mientras creas una VM

Solo puedes crear una VM con la PMU habilitada en una zona que contenga una plataforma de CPU compatible. Para obtener 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 con la PMU habilitada, usa el comando gcloud compute instances create con la marca --performance-monitoring-unit.

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

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM.

  • MACHINE_TYPE: un tipo de máquina C4 Si deseas habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 CPU virtuales. De lo contrario, la creación de la VM falla.

  • PMU_TYPE: Es el tipo de PMU que se habilitará en la VM. Especifica uno de los siguientes valores:

    • Tipo de PMU arquitectónica: 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 con la PMU habilitada, realiza 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"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que se 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 C4 Si deseas habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 CPU virtuales. De lo contrario, la creación de la VM falla.

  • 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 compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

  • PMU_TYPE: Es el tipo de PMU que se habilitará en la VM. Especifica 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 crear una VM, consulta Crea y, luego, inicia una instancia de Compute Engine.

Habilita la PMU mientras creas VMs de forma masiva

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

Para crear VMs de forma masiva con la PMU habilitada, selecciona una de las siguientes opciones:

gcloud

Para crear VMs de forma masiva con la PMU habilitada, usa el comando gcloud compute instances bulk create con la marca --performance-monitoring-unit.

Por ejemplo, para crear VMs de forma masiva 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

Reemplaza lo siguiente:

  • COUNT: la cantidad de VM que se crearán.

  • MACHINE_TYPE: un tipo de máquina C4. Si deseas habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 CPU virtuales. De lo contrario, la creación de la VM falla.

  • NAME_PATTERN: Es el patrón del nombre de las VM. Para reemplazar una secuencia de números en el nombre de una VM, usa una secuencia de caracteres hash (#). Por ejemplo, si usas vm-# para el patrón de nombre, se generan VMs con nombres que comienzan con vm-1, vm-2 y continúan hasta la cantidad de VMs especificadas por COUNT.

  • PMU_TYPE: Es el tipo de PMU que se habilitará en las VMs. Especifica uno de los siguientes valores:

    • Tipo de PMU arquitectónica: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

  • ZONE: La zona en la que se crearán las VMs de forma masiva.

REST

Para crear VMs de forma masiva con la PMU habilitada, realiza una solicitud POST al método instances.bulkInsert. En el cuerpo de la solicitud, incluye el campo performanceMonitoringUnit.

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

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que se crearán las VMs de forma masiva.

  • ZONE: La zona en la que se crearán las VMs de forma masiva.

  • COUNT: la cantidad de VM que se crearán.

  • NAME_PATTERN: Es el patrón del nombre de las VM. Para reemplazar una secuencia de números en el nombre de una VM, usa una secuencia de caracteres hash (#). Por ejemplo, si usas vm-# para el patrón de nombre, se generan VMs con nombres que comienzan con vm-1, vm-2 y continúan hasta la cantidad de VMs especificadas por COUNT.

  • MACHINE_TYPE: un tipo de máquina C4 Si deseas habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 CPU virtuales. De lo contrario, la creación de la VM falla.

  • 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 compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

  • PMU_TYPE: Es el tipo de PMU que se habilitará en las VMs. Especifica uno de los siguientes valores:

    • Tipo de PMU arquitectónica: ARCHITECTURAL

    • Tipo de PMU estándar: STANDARD

    • Tipo de PMU mejorado: ENHANCED

  • ZONE: La zona en la que se crearán las VMs de forma masiva.

Para obtener más información sobre cómo crear VMs de forma masiva, consulta Crea VMs de forma masiva.

Habilita la PMU cuando crees una plantilla de instancias

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

Después de crear una plantilla de instancias con la PMU habilitada, puedes usar la plantilla para hacer lo siguiente:

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

gcloud

Para crear una plantilla de instancias con la PMU habilitada, usa el comando gcloud compute instance-templates create con la marca --performance-monitoring-unit.

Por ejemplo, para crear una plantilla de instancias global con la PMU habilitada, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.

  • MACHINE_TYPE: un tipo de máquina C4 Si deseas habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 CPU virtuales. De lo contrario, la creación de la VM falla.

  • PMU_TYPE: Es el tipo de PMU que se incluirá en la plantilla de instancias. Especifica uno de los siguientes valores:

    • Tipo de PMU arquitectónica: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

REST

Para crear una plantilla de instancias con la PMU habilitada, realiza 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 instancias global con la PMU habilitada, realiza una solicitud POST de la siguiente manera:

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

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto en el que se creará la plantilla de instancias.

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.

  • 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 compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

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

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

  • MACHINE_TYPE: un tipo de máquina C4 Si deseas habilitar el tipo de PMU mejorado, debes especificar un tipo de máquina C4 con 96 o 192 CPU virtuales. De lo contrario, la creación de la VM falla.

  • PMU_TYPE: Es el tipo de PMU que se incluirá en la plantilla de instancias. Especifica 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 crear una plantilla de instancias, consulta Crea plantillas de instancias.

¿Qué sigue?