Activer la PMU dans les instances Compute Engine

Ce document explique comment activer l'unité de surveillance des performances (PMU) dans les instances Compute Engine A4X, C4A, C4 ou M4. Une fois que vous avez activé la PMU, vous pouvez l'utiliser pour optimiser les charges de travail sensibles aux performances, telles que le calcul hautes performances (HPC) ou le machine learning (ML), en identifiant et en résolvant les goulots d'étranglement des applications.

Pour en savoir plus sur les exigences et les limites que vous appliquez lorsque vous activez la PMU dans une instance de calcul, consultez Présentation de la PMU.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

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

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    2. Set a default region and zone.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Rôles requis

Pour obtenir les autorisations nécessaires à l'activation de la PMU dans une instance de calcul nouvelle ou existante, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour activer la PMU dans une instance de calcul nouvelle ou existante. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour activer le PMU dans une instance de calcul nouvelle ou existante :

  • Pour créer des instances de calcul :
    • compute.instances.create sur le projet
    • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
    • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
    • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
    • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
    • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
    • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
    • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
    • Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
    • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
    • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
    • Pour définir des étiquettes pour la VM : compute.instances.setLabels sur la VM
    • Pour définir un compte de service que doit utiliser la VM : compute.instances.setServiceAccount sur la VM
    • Pour créer un disque pour la VM : compute.disks.create sur le projet
    • Pour associer un disque existant en mode lecture seule ou en mode lecture/écriture : compute.disks.use sur le disque
    • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque
  • Pour créer un modèle d'instance : compute.instanceTemplates.create sur le projet
  • Pour mettre à jour une instance de calcul : compute.instances.update sur l'instance de calcul

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer la PMU dans les instances de calcul

Pour activer la PMU dans une ou plusieurs instances de calcul, utilisez l'une des méthodes suivantes :

Une fois que vous avez activé la PMU dans une ou plusieurs instances de calcul, vous pouvez installer et utiliser un logiciel de surveillance des performances sur les instances de calcul.

Activer la PMU dans une instance de calcul existante

Avant d'activer la PMU dans une instance de calcul existante, vous devez vérifier que l'instance de calcul utilise une série de machines et une plate-forme de processeur compatibles. Pour vérifier la série de machines et la plate-forme de processeur utilisées par votre instance de calcul, affichez les détails de l'instance de calcul.

Si votre instance de calcul n'utilise pas de série de machines compatible, remplacez le type de machine de l'instance de calcul. Pour ce faire, vous pouvez migrer votre charge de travail vers une nouvelle instance de calcul qui utilise un type de machine compatible, ou modifier le type de machine pour les configurations compatibles :

  • Si vous devez migrer votre instance de calcul existante vers une nouvelle instance de calcul pour modifier le type de machine, créez une instance de calcul avec la PMU activée dans une zone qui propose la plate-forme de processeur que vous souhaitez utiliser avec les événements PMU.

  • Si vous pouvez modifier le type de machine, procédez comme suit :

    1. Vérifiez qu'une plate-forme de processeur compatible est disponible dans la zone où se trouve votre instance de calcul en consultant les régions et zones disponibles.

    2. Si une plate-forme de processeur compatible n'est pas disponible dans la zone de votre instance de calcul, migrez l'instance de calcul vers une zone qui dispose d'une plate-forme de processeur compatible.

    3. Modifiez le type de machine. Pour activer le type de PMU architectural ou standard, vous pouvez spécifier n'importe quel type de machine A4X, C4A, C4 ou M4. Toutefois, pour activer le type de PMU amélioré, vous devez spécifier l'un des types de machines C4 ou M4 suivants :

      • Tout type de machine C4 avec 144 ou 288 processeurs virtuels

      • L'un des types de machines M4 suivants :

        • m4-megamem-112

        • m4-megamem-224

        • m4-ultramem-56

        • m4-ultramem-112

        • m4-ultramem-224

Vous n'avez pas besoin d'arrêter l'instance de calcul pour activer la PMU. Toutefois, pour que la modification prenne effet, vous devez redémarrer l'instance de calcul, comme décrit dans cette section.

Pour activer la PMU dans une instance de calcul existante, sélectionnez l'une des options suivantes :

gcloud

  1. Créez un fichier YAML vide.

  2. Pour exporter les propriétés d'une instance de calcul dans le fichier YAML que vous venez de créer, utilisez la commande gcloud compute instances export :

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

    Remplacez les éléments suivants :

    • INSTANCE_NAME : nom de l'instance de calcul.

    • YAML_FILE : chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.

    • ZONE : zone où se trouve l'instance de calcul.

  3. Dans le fichier de configuration YAML, dans le champ advancedMachineFeatures, ajoutez le champ performanceMonitoringUnit. Si le champ advancedMachineFeatures n'existe pas, ajoutez-le également :

    advancedMachineFeatures:
      performanceMonitoringUnit: PMU_TYPE
    

    Remplacez PMU_TYPE par l'une des valeurs suivantes :

    • Type de PMU architectural : ARCHITECTURAL

    • Type de PMU standard : STANDARD

    • Type de PMU amélioré : ENHANCED

  4. Pour mettre à jour l'instance de calcul et la redémarrer, utilisez la commande gcloud compute instances update-from-file avec le flag --most-disruptive-allowed-action défini sur RESTART :

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

    Remplacez YAML_FILE par le chemin d'accès au fichier YAML contenant les données de configuration que vous avez modifiées à l'étape précédente.

REST

  1. Pour afficher les propriétés d'une instance de calcul existante, envoyez une requête GET à la méthode instances.get :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous avez créé l'instance de calcul.

    • ZONE : zone où se trouve l'instance de calcul.

    • INSTANCE_NAME : nom de l'instance de calcul.

  2. Pour mettre à jour l'instance de calcul et la redémarrer, envoyez une requête PUT à la méthode instances.update comme suit :

    • Dans l'URL de la requête, incluez le paramètre de requête mostDisruptiveAllowedAction défini sur RESTART.

    • Pour le corps de la requête, utilisez la sortie de la requête GET de l'étape précédente. Toutefois, dans le champ advancedMachineFeatures, vous devez ajouter le champ performanceMonitoringUnit pour activer la PMU. Si le champ advancedMachineFeatures n'existe pas dans le résultat de la requête, ajoutez-le également :

    La requête PUT ressemble à ce qui suit :

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

    Remplacez PMU_TYPE par l'une des valeurs suivantes :

    • Type de PMU architectural : ARCHITECTURAL

    • Type de PMU standard : STANDARD

    • Type de PMU amélioré : ENHANCED

Pour en savoir plus sur la mise à jour des propriétés d'une instance de calcul, consultez Mettre à jour les propriétés d'une instance.

Activer la PMU lors de la création d'une instance de calcul

Vous ne pouvez créer une instance de calcul avec la PMU activée que dans une zone contenant une plate-forme de processeur compatible. Pour obtenir la liste des processeurs disponibles par zone, consultez Régions et zones disponibles.

Pour créer une instance de calcul avec la PMU activée, sélectionnez l'une des options suivantes :

gcloud

Pour créer une instance de calcul avec la PMU activée, utilisez la commande gcloud compute instances create avec l'indicateur --performance-monitoring-unit :

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

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance de calcul.

  • MACHINE_TYPE : type de machine pour l'instance de calcul. Si vous souhaitez activer le type de PMU amélioré dans une instance de calcul, vous ne pouvez le faire que si votre instance de calcul utilise un type de machine compatible.

  • PMU_TYPE : type de PMU à activer dans l'instance de calcul. Spécifiez une des valeurs suivantes :

    • Type de PMU architectural : architectural

    • Type de PMU standard : standard

    • Type de PMU amélioré : enhanced

  • ZONE : zone dans laquelle créer l'instance de calcul.

REST

Pour créer une instance de calcul avec la PMU activée, envoyez une requête POST à la méthode instances.insert. Dans le corps de la requête, incluez le champ 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"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer l'instance de calcul.

  • ZONE : zone dans laquelle créer l'instance de calcul.

  • INSTANCE_NAME : nom de l'instance de calcul.

  • MACHINE_TYPE : type de machine pour l'instance de calcul. Si vous souhaitez activer le type de PMU amélioré dans une instance de calcul, vous ne pouvez le faire que si votre instance de calcul utilise un type de machine compatible.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • PMU_TYPE : type de PMU à activer dans l'instance de calcul. Spécifiez une des valeurs suivantes :

    • Type de PMU architectural : ARCHITECTURAL

    • Type de PMU standard : STANDARD

    • Type de PMU amélioré : ENHANCED

Pour en savoir plus sur la création d'une instance de calcul, consultez Créer et démarrer une instance Compute Engine.

Activer la PMU lors de la création groupée d'instances de calcul

Vous ne pouvez créer des instances de calcul de manière groupée avec la PMU activée que dans une zone contenant une plate-forme de processeur compatible. Pour obtenir la liste des processeurs disponibles par zone, consultez Régions et zones disponibles.

Pour créer de manière groupée des instances de calcul avec la PMU activée, sélectionnez l'une des options suivantes :

gcloud

Pour créer de manière groupée des instances de calcul avec la PMU activée, utilisez la commande gcloud compute instances bulk create avec l'indicateur --performance-monitoring-unit.

Par exemple, pour créer des instances de calcul de manière groupée dans une seule zone et spécifier un format de nom, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • COUNT : nombre d'instances de calcul à créer.

  • MACHINE_TYPE : type de machine pour les instances de calcul. Si vous souhaitez activer le type de PMU amélioré dans une instance de calcul, vous ne pouvez le faire que si votre instance de calcul utilise un type de machine compatible.

  • NAME_PATTERN : format de nom pour les instances de calcul. Pour remplacer une séquence de nombres dans un nom d'instance de calcul, utilisez une séquence de caractères dièse (#). Par exemple, le modèle de nom instance-# génère des instances de calcul portant les noms instance-1, instance-2, etc., jusqu'à ce qu'il atteigne le nombre d'instances de calcul spécifié par COUNT.

  • PMU_TYPE : type de PMU à activer dans les instances de calcul. Spécifiez une des valeurs suivantes :

    • Type de PMU architectural : architectural

    • Type de PMU standard : standard

    • Type de PMU amélioré : enhanced

  • ZONE : zone dans laquelle créer des instances de calcul de manière groupée.

REST

Pour créer de manière groupée des instances de calcul avec la PMU activée, envoyez une requête POST à la méthode instances.bulkInsert. Dans le corps de la requête, incluez le champ performanceMonitoringUnit.

Par exemple, pour créer des instances de calcul de manière groupée dans une seule zone et spécifier un format de nom, envoyez une requête POST comme suit :

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"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer des instances de calcul de manière groupée.

  • ZONE : zone dans laquelle créer des instances de calcul de manière groupée.

  • COUNT : nombre d'instances de calcul à créer.

  • NAME_PATTERN : format de nom pour les instances de calcul. Pour remplacer une séquence de nombres dans un nom d'instance de calcul, utilisez une séquence de caractères dièse (#). Par exemple, le modèle de nom instance-# génère des instances de calcul portant les noms instance-1, instance-2, etc., jusqu'à ce qu'il atteigne le nombre d'instances de calcul spécifié par COUNT.

  • MACHINE_TYPE : type de machine pour les instances de calcul. Si vous souhaitez activer le type de PMU amélioré dans une instance de calcul, vous ne pouvez le faire que si votre instance de calcul utilise un type de machine compatible.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • PMU_TYPE : type de PMU à activer dans les instances de calcul. Spécifiez une des valeurs suivantes :

    • Type de PMU architectural : ARCHITECTURAL

    • Type de PMU standard : STANDARD

    • Type de PMU amélioré : ENHANCED

Pour en savoir plus sur la création d'instances de calcul de manière groupée, consultez Créer des VM de manière groupée.

Activer la PMU lors de la création d'un modèle d'instance

Si vous souhaitez créer un modèle d'instance régional qui spécifie l'activation de la PMU, assurez-vous qu'au moins une zone de la région sélectionnée contient une plate-forme de processeur compatible. Pour obtenir la liste des processeurs disponibles par zone, consultez Régions et zones disponibles.

Après avoir créé un modèle d'instance qui spécifie d'activer la PMU, vous pouvez utiliser le modèle pour effectuer les opérations suivantes :

Pour créer un modèle d'instance qui spécifie d'activer la PMU, sélectionnez l'une des options suivantes :

gcloud

Pour créer un modèle d'instance qui spécifie l'activation de la PMU, utilisez la commande gcloud compute instance-templates create avec l'indicateur --performance-monitoring-unit.

Par exemple, exécutez la commande suivante pour créer un modèle d'instance régional. Si vous souhaitez créer un modèle d'instance global, utilisez la même commande sans le flag --instance-template-region.

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

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • REGION : région dans laquelle créer le modèle d'instance.

  • MACHINE_TYPE : type de machine pour les instances de calcul. Si vous souhaitez activer le type de PMU amélioré dans une instance de calcul, vous ne pouvez le faire que si votre instance de calcul utilise un type de machine compatible.

  • PMU_TYPE : type de PMU à inclure dans le modèle d'instance. Spécifiez une des valeurs suivantes :

    • Type de PMU architectural : architectural

    • Type de PMU standard : standard

    • Type de PMU amélioré : enhanced

REST

Pour créer un modèle d'instance qui spécifie l'activation de la PMU, envoyez une requête POST à l'une des méthodes suivantes :

Dans le corps de la requête, incluez le champ performanceMonitoringUnit.

Par exemple, pour créer un modèle d'instance régional qui spécifie d'activer la PMU, envoyez une requête POST comme suit :

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"
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer le modèle d'instance.

  • REGION : région dans laquelle créer le modèle d'instance.

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • IMAGE_PROJECT : projet contenant l'image, par exemple, debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.

  • IMAGE : spécifiez l'une des options suivantes :

    • Une version spécifique de l'image de l'OS. Exemple : debian-12-bookworm-v20240617.

    • Une famille d'images, qui doit être au format family/IMAGE_FAMILY. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.

  • MACHINE_TYPE : type de machine pour les instances de calcul. Si vous souhaitez activer le type de PMU amélioré dans une instance de calcul, vous ne pouvez le faire que si votre instance de calcul utilise un type de machine compatible.

  • PMU_TYPE : type de PMU à inclure dans le modèle d'instance. Spécifiez une des valeurs suivantes :

    • Type de PMU architectural : ARCHITECTURAL

    • Type de PMU standard : STANDARD

    • Type de PMU amélioré : ENHANCED

Pour en savoir plus sur la création d'un modèle d'instance, consultez la section Créer des modèles d'instances.

Étapes suivantes