Activer la PMU dans les VM


Ce document explique comment activer l'unité de surveillance des performances (PMU) dans les instances de machine virtuelle (VM) nouvelles ou existantes.

Une fois que vous avez activé la PMU dans une VM C4 et que vous vous êtes connecté à la VM, vous pouvez exécuter et installer un logiciel de surveillance des performances sur la VM pour analyser et optimiser les performances du logiciel exécuté sur la VM. Cela est utile lorsque vous exécutez des charges de travail sensibles aux performances, telles que des charges de travail de calcul hautes performances (HPC) ou de machine learning (ML).

Avant de commencer

  • Si vous ne l'avez pas déjà fait, découvrez comment fonctionne le PMU.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      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 pour activer le PMU dans une VM nouvelle ou existante, demandez à votre administrateur de vous accorder 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 la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour activer le PMU dans une VM 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 VM nouvelle ou existante:

  • Pour créer des machines virtuelles :
    • 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 libellés pour la VM : compute.instances.setLabels sur la VM
    • Pour définir un compte de service à utiliser avec 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 VM : compute.instances.update sur la VM

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 VM

Pour activer la PMU dans une ou plusieurs VM C4, sélectionnez l'une des méthodes suivantes:

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

Activer la PMU dans une VM existante

Avant d'activer la PMU dans une VM existante, assurez-vous qu'elle utilise un type de machine et une plate-forme de processeur compatibles en procédant comme suit:

  1. Pour vérifier le type de machine et la plate-forme de processeur de la VM, affichez les détails de la VM.

  2. Si vous devez modifier le type de machine de la VM, procédez comme suit:

    1. Pour vérifier qu'une plate-forme de processeur compatible est disponible dans la zone où se trouve la VM, consultez la section Régions et zones disponibles.

    2. Modifiez le type de machine comme suit:

      • Pour activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels.

      • Sinon, pour activer le type de PMU architectural ou standard, spécifiez un type de machine C4.

Vous n'avez pas besoin d'arrêter la VM pour activer la PMU. Toutefois, pour que le changement prenne effet, vous devez redémarrer la VM comme décrit dans cette section.

Pour activer la PMU dans une VM 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 VM dans le fichier YAML que vous venez de créer, utilisez la commande gcloud compute instances export.

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

    Remplacez les éléments suivants :

    • VM_NAME : Nom de la VM.

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

    • ZONE : zone où se trouve la VM.

  3. Dans le fichier de configuration YAML, ajoutez le champ performanceMonitoringUnit.

    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 la VM et la redémarrer, exécutez la commande gcloud compute instances update-from-file avec l'option --most-disruptive-allowed-action définie sur RESTART.

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

    Remplacez les éléments suivants :

    • VM_NAME : Nom de la VM.

    • YAML_FILE: chemin d'accès au fichier YAML avec les données de configuration que vous avez modifiées à l'étape précédente.

    • ZONE : zone où se trouve la VM.

REST

  1. Créez un fichier JSON vide.

  2. Pour exporter les propriétés d'une VM existante, envoyez une requête GET à la méthode instances.get.

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

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel se trouve la VM.

    • ZONE : zone où se trouve la VM.

    • VM_NAME : nom d'une VM existante.

  3. Dans le fichier JSON vide que vous avez créé lors des étapes précédentes, procédez comme suit :

    1. Saisissez les propriétés de la VM à partir de la sortie de la requête GET.

    2. Ajoutez le champ performanceMonitoringUnit.

      {
        "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 la VM et la redémarrer, envoyez une requête PUT à la méthode instances.update. Dans la requête, procédez comme suit :

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

    • Pour le corps de la requête, utilisez les propriétés de la VM du fichier JSON que vous avez créé et mis à jour aux étapes précédentes.

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

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

Activer la PMU lors de la création d'une VM

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

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

gcloud

Pour créer une VM avec le PMU activé, utilisez la commande gcloud compute instances create avec l'indicateur --performance-monitoring-unit.

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

Remplacez les éléments suivants :

  • VM_NAME : Nom de la VM.

  • MACHINE_TYPE: type de machine C4. Si vous souhaitez activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels. Sinon, la création de la VM échouera.

  • PMU_TYPE: type de PMU à activer dans la VM. 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 VM.

REST

Pour créer une VM avec le PMU activé, 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": "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"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel la VM sera créée.

  • ZONE : Zone dans laquelle créer l'instance de VM.

  • VM_NAME : Nom de la VM.

  • MACHINE_TYPE: type de machine C4. Si vous souhaitez activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels. Sinon, la création de la VM échouera.

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

    • 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 la VM. 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 VM, consultez la section Créer et démarrer une instance Compute Engine.

Activer la PMU lors de la création groupée de VM

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

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

gcloud

Pour créer de manière groupée des VM avec le PMU activé, exécutez la commande gcloud compute instances bulk create avec l'option --performance-monitoring-unit.

Par exemple, pour créer des VM 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 de VM à créer.

  • MACHINE_TYPE: type de machine C4. Si vous souhaitez activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels. Sinon, la création de la VM échouera.

  • NAME_PATTERN : modèle de nom des VM. Pour remplacer une séquence de nombres dans un nom de VM, utilisez une séquence de caractères de hachage (#). Par exemple, le modèle de nom vm-# génère des VM portant des noms commençant par vm-1, vm-2, etc., jusqu'au nombre de VM spécifié par COUNT.

  • PMU_TYPE: type de PMU à activer dans les VM. 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 les VM de manière groupée.

REST

Pour créer des VM de manière groupée avec le PMU activé, 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 VM 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 les VM de manière groupée.

  • ZONE: zone dans laquelle créer les VM de manière groupée.

  • COUNT : nombre de VM à créer.

  • NAME_PATTERN : modèle de nom des VM. Pour remplacer une séquence de nombres dans un nom de VM, utilisez une séquence de caractères de hachage (#). Par exemple, le modèle de nom vm-# génère des VM portant des noms commençant par vm-1, vm-2, etc., jusqu'au nombre de VM spécifié par COUNT.

  • MACHINE_TYPE: type de machine C4. Si vous souhaitez activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels. Sinon, la création de la VM échouera.

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

    • 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 VM. 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 les VM de manière groupée.

Pour en savoir plus sur la création de VM de manière groupée, consultez la section 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 avec le PMU activé, 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 la section Régions et zones disponibles.

Après avoir créé un modèle d'instance avec la PMU activée, vous pouvez l'utiliser pour effectuer les opérations suivantes:

Pour créer un modèle d'instance avec la PMU activée, sélectionnez l'une des options suivantes:

gcloud

Pour créer un modèle d'instance avec le PMU activé, exécutez la commande gcloud compute instance-templates create avec l'indicateur --performance-monitoring-unit.

Par exemple, pour créer un modèle d'instance global avec le PMU activé, exécutez la commande suivante:

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

Remplacez les éléments suivants :

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

  • MACHINE_TYPE: type de machine C4. Si vous souhaitez activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels. Sinon, la création de la VM échouera.

  • 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 avec la PMU activée, 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 global avec le PMU activé, envoyez une requête POST comme suit:

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

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel 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 :

    • 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 C4. Si vous souhaitez activer le type de PMU amélioré, vous devez spécifier un type de machine C4 avec 96 ou 192 processeurs virtuels. Sinon, la création de la VM échouera.

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

Étape suivante