Habilita la PMU en instancias de Compute Engine

En este documento, se explica cómo habilitar la unidad de supervisión de rendimiento (PMU) en instancias de Compute Engine A4X, C4A, C4 o M4. Después de habilitar la PMU, puedes usarla para optimizar las cargas de trabajo sensibles al rendimiento, como la computación de alto rendimiento (HPC) o el aprendizaje automático (AA), identificando y abordando los cuellos de botella de las aplicaciones.

Para obtener más información sobre los requisitos y las limitaciones que se aplican cuando habilitas la PMU en una instancia de procesamiento, 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.

    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 habilitar la PMU en una instancia de procesamiento 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 instancia de procesamiento 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 instancia de procesamiento nueva o existente:

  • Para crear instancias de procesamiento, haz lo siguiente:
    • 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 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.

Habilita la PMU en instancias de procesamiento

Para habilitar la PMU en una o más instancias de procesamiento, usa uno de los siguientes métodos:

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

Habilita la PMU en una instancia de procesamiento existente

Antes de habilitar la PMU en una instancia de procesamiento existente, debes verificar que la instancia de procesamiento use una serie de máquinas y una plataforma de CPU compatibles. Para verificar la serie de máquinas y la plataforma de CPU que usa tu instancia de procesamiento, consulta los detalles de la instancia de procesamiento.

Si tu instancia de procesamiento no usa una serie de máquinas compatible, reemplaza el tipo de máquina de la instancia de procesamiento. Para ello, puedes migrar tu carga de trabajo a una nueva instancia de procesamiento que use un tipo de máquina compatible o cambiar el tipo de máquina para las configuraciones compatibles:

  • Si necesitas mover tu instancia de procesamiento existente a una nueva para cambiar el tipo de máquina, crea una nueva instancia de procesamiento que tenga habilitada la PMU en una zona que ofrezca la plataforma de CPU que deseas usar con los eventos de PMU.

  • Si puedes cambiar el tipo de máquina, completa los siguientes pasos:

    1. Verifica que una plataforma de CPU compatible esté disponible en la zona en la que existe tu instancia de procesamiento. Para ello, consulta las regiones y zonas disponibles.

    2. Si no hay una plataforma de CPU compatible disponible en la zona de tu instancia de procesamiento, migra la instancia de procesamiento a una zona que tenga una plataforma de CPU compatible.

    3. Cambia el tipo de máquina. Para habilitar el tipo de PMU arquitectónico o estándar, puedes especificar cualquier tipo de máquina A4X, C4A, C4 o M4. Sin embargo, para habilitar el tipo de PMU mejorado, debes especificar uno de los siguientes tipos de máquinas C4 o M4:

      • Cualquier 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

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

Para habilitar 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, en el campo advancedMachineFeatures, agrega el campo performanceMonitoringUnit. Si el campo advancedMachineFeatures no existe, agrégalo también:

    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 YAML_FILE por la ruta de acceso al archivo YAML con los datos de configuración que modificaste en el paso anterior.

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 creaste la instancia de Compute.

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

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

  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 agregar el campo performanceMonitoringUnit para habilitar la PMU. Si el campo advancedMachineFeatures no existe en el resultado de la solicitud, agrégalo también:

    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.

Habilita la PMU mientras creas una instancia de Compute

Solo puedes crear una instancia de procesamiento 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 instancia de procesamiento con la PMU habilitada, selecciona una de las siguientes opciones:

gcloud

Para crear una instancia de procesamiento con la PMU habilitada, usa el comando gcloud compute instances create con la marca --performance-monitoring-unit:

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

Reemplaza lo siguiente:

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

  • MACHINE_TYPE: Es el tipo de máquina de la instancia de procesamiento. Si deseas habilitar el tipo de PMU mejorado en una instancia de procesamiento, solo puedes hacerlo si la instancia de procesamiento usa un tipo de máquina compatible.

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

    • Tipo de PMU arquitectónica: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

  • ZONE: Es la zona en la que se creará la instancia de procesamiento.

REST

Para crear una instancia de procesamiento que tenga habilitada la PMU, 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": "INSTANCE_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 instancia de procesamiento.

  • ZONE: Es la zona en la que se creará la instancia de procesamiento.

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

  • MACHINE_TYPE: Es el tipo de máquina de la instancia de procesamiento. Si deseas habilitar el tipo de PMU mejorado en una instancia de procesamiento, solo puedes hacerlo si la instancia de procesamiento usa un tipo de máquina compatible.

  • 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 instancia de procesamiento. 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 instancia de procesamiento, consulta Crea y, luego, inicia una instancia de Compute Engine.

Habilita la PMU mientras creas instancias de procesamiento de forma masiva

Solo puedes crear instancias de procesamiento de forma masiva 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 instancias de procesamiento de forma masiva con la PMU habilitada, selecciona una de las siguientes opciones:

gcloud

Para crear instancias de procesamiento 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 instancias de procesamiento 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: Es la cantidad de instancias de procesamiento que se crearán.

  • MACHINE_TYPE: Es el tipo de máquina para las instancias de procesamiento. Si deseas habilitar el tipo de PMU mejorado en una instancia de procesamiento, solo puedes hacerlo si la instancia de procesamiento usa un tipo de máquina compatible.

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

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

    • Tipo de PMU arquitectónica: architectural

    • Tipo de PMU estándar: standard

    • Tipo de PMU mejorado: enhanced

  • ZONE: Es la zona en la que se crearán las instancias de procesamiento de forma masiva.

REST

Para crear instancias de procesamiento 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 instancias de procesamiento de forma masiva en una sola zona y especificar un patrón de nombre, realiza 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"
    }
  }
}

Reemplaza lo siguiente:

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

  • ZONE: Es la zona en la que se crearán las instancias de procesamiento de forma masiva.

  • COUNT: Es la cantidad de instancias de procesamiento que se crearán.

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

  • MACHINE_TYPE: Es el tipo de máquina para las instancias de procesamiento. Si deseas habilitar el tipo de PMU mejorado en una instancia de procesamiento, solo puedes hacerlo si la instancia de procesamiento usa un tipo de máquina compatible.

  • 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 instancias de procesamiento. 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 instancias de procesamiento 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 que especifique que se habilite la PMU, 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 que especifique habilitar la PMU, puedes usar la plantilla para hacer lo siguiente:

Para crear una plantilla de instancias que especifique que se habilite la PMU, selecciona una de las siguientes opciones:

gcloud

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

Por ejemplo, usa el siguiente comando para crear una plantilla de instancias regional. Si deseas crear una plantilla de instancias global, usa el mismo comando sin la marca --instance-template-region.

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

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.

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

  • MACHINE_TYPE: Es el tipo de máquina para las instancias de procesamiento. Si deseas habilitar el tipo de PMU mejorado en una instancia de procesamiento, solo puedes hacerlo si la instancia de procesamiento usa un tipo de máquina compatible.

  • 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 que especifique que se habilite la PMU, 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 regional que especifique habilitar la PMU, realiza 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"
    }
  }
}

Reemplaza lo siguiente:

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

  • REGION: Es la región en la 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: Es el tipo de máquina para las instancias de procesamiento. Si deseas habilitar el tipo de PMU mejorado en una instancia de procesamiento, solo puedes hacerlo si la instancia de procesamiento usa un tipo de máquina compatible.

  • 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?