Sursolliciter des processeurs sur des VM à locataire unique


La sursollicitation des processeurs sur les nœuds à locataire unique vous permet de planifier des instances pouvant partager leurs cycles de processeur en trop entre elles. Cela vous permet de surprovisionner les ressources de nœud à locataire unique et de planifier plus de processeurs de VM normalement disponibles sur un nœud à locataire unique. La sursollicitation des processeurs est particulièrement utile pour les charges de travail sous-utilisées, mais qui peuvent connaître des utilisations intensives relativement non corrélées.

La sursollicitation des processeurs peut vous aider à réduire les coûts par VM en répartissant le coût d'un nœud à locataire unique sur plusieurs VM. Cela permet également de réduire les coûts de licence par VM lors de l'utilisation de licences par socket ou par cœur.

Les VM dotées de processeurs sursollicités peuvent utiliser les ressources de processeur inutilisées des manières suivantes :

  • Si un nœud à locataire unique n'est pas saturé, les VM sursollicitées peuvent utiliser des cœurs non alloués.

  • Si une autre VM sur un nœud à locataire unique n'utilise pas toutes ses ressources de processeur, par exemple en raison de l'inactivité du processeur, une VM sursollicitée peut utiliser ces ressources de processeur.

Niveau de sursollicitation

Vous pouvez spécifier la valeur du nombre minimal de processeurs alloué à une VM lorsque vous créez une VM ou après l'arrêt d'une VM. Le niveau de sursollicitation représente le nombre minimal de threads de processeur sous-jacents dont la disponibilité pour une VM est garantie. Si la VM comporte plus de processeurs virtuels que les threads sous-jacents disponibles, ses processeurs virtuels partagent les ressources de calcul sous-jacentes et s'exécutent avec des performances dégradées.

Cette valeur peut être définie pour chaque VM, ce qui vous permet de provisionner des VM avec différents ratios de sursollicitation des processeurs sur un seul nœud à locataire unique. Des valeurs inférieures réduisent les besoins en capacité au détriment des performances en cas d'utilisation intensive corrélée. Afin de définir une valeur optimale pour le nombre minimal de processeurs, vous devez comprendre l'utilisation de votre charge de travail et la modification itérative de la valeur.

Lorsque vous définissez cette valeur, gardez à l'esprit les points suivants :

  • Si vous ne définissez pas de valeur pour le nombre minimal de processeurs ou définissez une valeur égale au nombre de processeurs sur le type de machine de la VM, le ratio de sursollicitation autorisée de la VM est de 1.0. Avec un ratio de sursollicitation égal à 1.0, tous les processeurs ne sont accessibles que par cette VM, et aucune ressource de processeur n'est disponible pour les autres VM.

  • Le nombre minimal de processeurs ne peut pas être supérieur au nombre de processeurs spécifié par le type de machine de la VM.

  • La somme des valeurs du nombre minimal de processeurs pour toutes les VM d'un nœud à locataire unique ne peut pas dépasser la capacité de processeur pour ce type de nœud à locataire unique (égale à 96 pour le type de nœud n1-node-96-624).

La valeur du nombre de processeurs spécifiés par le type de machine de la VM est une valeur statique et représente le nombre de processeurs qu'une VM peut utiliser intensivement par rapport au nombre minimal si ces processeurs sont disponibles. Si vous avez besoin d'un certain nombre de processeurs différents de ceux fournis par les types de machines fixes, vous pouvez utiliser un type de machine personnalisé.

Remarques

Avant de configurer les niveaux de sursollicitation des processeurs pour les VM, tenez compte de l'importance de votre charge de travail. Les charges de travail moins critiques, telles que les charges de travail de développement et de test, peuvent potentiellement tolérer des niveaux de sursollicitation supérieurs. Des charges de travail plus critiques, telles qu'un système de paiement en production, peuvent ne pas tolérer autant de sursollicitation, voire pas du tout.

Pensez également à l'utilisation de votre charge de travail. La sursollicitation des processeurs n'est pas recommandée pour les charges de travail avec une utilisation des processeurs élevée, car elles ne disposeront pas de cycles inutilisés pour les autres VM sursollicitées. En outre, les charges de travail avec une utilisation moyenne des processeurs faible, mais un pic d'utilisation faible, peuvent tirer parti de différentes tailles de types de machines.

La sursollicitation des processeurs est utile pour charges de travail intensives non corrélées avec une utilisation maximale élevée et une utilisation moyenne faible car ces charges de travail sont plus susceptibles d'avoir des ressources de processeur disponibles à partager entre les VM lorsque certaines VM doivent basculer en utilisation intensive. Si toutes les VM d'un hôte basculent en utilisation intensive simultanément, l'hôte ne disposera pas de ressources suffisantes pour vos VM.

Limites

Limites de charge de travail

La sursollicitation des processeurs est particulièrement adaptée aux charges de travail ne présentant pas d'exigences strictes en termes de performances, telles que les charges de travail de développement et de test et les infrastructures de bureau virtuel.

Un niveau élevé de sursollicitation des processeurs peut ne pas convenir à des charges de travail sensibles aux performances.

Pour les charges de travail dont l'utilisation moyenne et maximale est systématiquement faible, Google recommande un redimensionnement. En effet, plutôt que de sursolliciter les processeurs, nous vous recommandons de modifier la taille de l'instance de VM pour qu'elle corresponde aux exigences en ressources de la charge de travail concernée.

Si vos instances sont trop sursollicitées, déplacez-les vers un autre nœud à locataire unique.

Limites des types de machines

Vous ne pouvez sursolliciter des processeurs que sur les éléments suivants :

Limites de niveau de sursollicitation

Vous ne pouvez configurer le processeur minimal que sur la moitié des processeurs de la VM pour chaque nœud à locataire unique, ce qui permet d'obtenir un ratio de sursollicitation maximal égal à 2.0 pour le nœud à locataire unique.

Limites de planification des VM

Les groupes de nœuds à locataire unique basés sur des modèles de nœud à locataire unique qui ne sont pas configurés pour la sursollicitation des processeurs ne permettent pas de provisionner des VM pour lesquelles cette fonctionnalité est activée. Vous ne pouvez pas programmer une VM avec un nombre minimal de processeurs spécifié sur un groupe de nœuds à locataire unique non configuré pour la sursollicitation des processeurs.

Quota

Le quota de processeurs est basé sur le nombre de processeurs virtuels du type de nœud à locataire unique, et non sur le nombre maximal de processeurs virtuels éventuellement disponibles pour la sursollicitation.

Coûts

Les nœuds à locataire unique pour lesquels la sursollicitation des processeurs est sélectionnée sur leur modèle de nœud sont facturés 25 % en plus. Ces frais s'ajoutent aux 10 % supplémentaires liés à l'exécution de VM sur des nœuds à locataire unique. Le supplément de sursollicitation des processeurs est fixe, quels que soient le niveau de sursollicitation des processeurs et le nombre de VM planifiées sur le nœud à locataire unique.

Les nœuds à locataire unique offrent des remises sur engagement d'utilisation. Des remises automatiques proportionnelles à une utilisation soutenue sont disponibles pour le supplément de location unique et le supplément de sursollicitation des processeurs.

Pour estimer le coût d'exécution des VM sur des nœuds à locataire unique, accédez au simulateur de coût.

Configurer des VM à locataire unique pour la sursollicitation

Pour configurer des VM à locataire unique afin que les ressources de processeur soient disponibles pour la sursollicitation, procédez comme suit :

  1. Créez un modèle de nœud à locataire unique sur lequel la sursollicitation des processeurs est activée. Vous devez activer la sursollicitation des processeurs lors de la création du modèle de nœud. Vous ne pouvez pas l'activer après la création du modèle.

  2. Créez un groupe de nœuds à locataire unique sur la base du modèle de nœud à locataire unique sur lequel la sursollicitation des processeurs est activée.

  3. Créez une VM et procédez comme suit :

    1. Choisissez un type de machine pour la VM. Le nombre de processeurs sur le type de machine représente le nombre maximal de processeurs que la VM peut utiliser intensivement par rapport au nombre minimal de processeurs si le nombre minimal de processeurs est inférieur au nombre de processeurs spécifié par le type de machine.

      Vous pouvez choisir un type de machine différent pour chaque VM sur un nœud à locataire unique, à condition de ne pas dépasser la capacité de processeur et de mémoire du nœud à locataire unique.

    2. Spécifiez le nombre minimal de processeurs à allouer à cette seule VM ou utilisez un groupe d'instances géré pour créer plusieurs VM avec le même niveau de sursollicitation des processeurs.

Avant de commencer

  • Créez un modèle de nœud à locataire unique et spécifiez --cpu-overcommit-type=enabled.
  • Créez un groupe de nœuds à locataire unique basé sur le modèle de nœud à locataire unique avec la sursollicitation des processeurs activée.
  • 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 comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    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.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Définir le niveau de sursollicitation des processeurs

Les procédures suivantes vous expliquent comment créer une VM à locataire unique avec des ressources de processeur disponibles en cas de sursollicitation de capacité. Si vous devez modifier le niveau de sursollicitation des processeurs d'une VM en cours d'exécution, vous devez d'abord arrêter la VM.

Console

Dans Google Cloud Console, créez une VM à locataire unique sur un groupe de nœuds à locataire unique créé à partir d'un modèle de nœud à locataire unique pour lequel la sursollicitation des processeurs est activée :

  1. Accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur Groupes de nœuds.

  3. Cliquez sur le groupe de nœuds à locataire unique sur lequel créer une VM.

  4. Cliquez sur Créer une instance.

  5. Spécifiez le nom, la région et la zone de la VM.

  6. Sous Configuration de la machine, choisissez un type de machine fixe ou personnalisé avec au moins quatre processeurs virtuels.

  7. Sous Sursollicitation des processeurs, sélectionnez Activer la sursollicitation des processeurs.

  8. Sous Nombre minimal de processeurs virtuels alloués, ajustez le curseur ou saisissez manuellement le nombre de processeurs virtuels pour spécifier le niveau de sursollicitation des processeurs sur cette VM.

  9. Cliquez sur Créer pour créer une instance de VM disposant de ressources de processeur disponibles en cas de sursollicitation.

gcloud

L'exemple suivant montre comment utiliser la commande gcloud compute instances create pour créer une VM à locataire unique sur un type de machine fixe avec des ressources de processeur disponibles en cas de sursollicitation.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --min-node-cpu=MIN_VCPUS \
    --node-group=GROUP_NAME

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM sur laquelle sursolliciter des processeurs.

  • MACHINE_TYPE : type de machine sur lequel provisionner la VM à locataire unique. Le nombre de processeurs spécifié par le type de machine est le nombre maximal de processeurs que la VM peut utiliser intensivement depuis MIN_VCPUS.

  • MIN_VCPUS : nombre minimal de processeurs virtuels garantis disponibles pour cette VM.

  • GROUP_NAME : nom du groupe de nœuds à locataire unique sur lequel vous souhaitez provisionner la VM.

Définir le niveau de sursollicitation sur un type de machine personnalisé

Pour créer une VM à locataire unique avec des ressources de processeur disponibles pour la sursollicitation sur un type de machine personnalisé, omettez l'option --machine-type et utilisez les options --custom-cpu et --custom-memory pour spécifier le nombre de processeurs et la quantité de mémoire, en gigaoctets, pour la machine personnalisée.

REST

L'exemple suivant montre comment utiliser la commande instances.insert pour créer une VM à locataire unique sur un type de machine fixe avec des ressources de processeur disponibles en cas de sursollicitation.

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

{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "scheduling": {
    "minNodeCpus": MIN_VCPUS,
    "nodeAffinities": [
      {
        "key": "compute.googleapis.com/node-group-name",
        "operator": "IN",
        "values": [
          "GROUP_NAME"
        ]
      }
    ]
  },
  ...
}

Remplacez les éléments suivants :

  • PROJECT_ID : par l'ID du projet.

  • ZONE : zone de cette requête.

  • MACHINE_TYPE_ZONE : zone hébergeant le type de machine.

  • MACHINE_TYPE : type de machine sur lequel provisionner la VM à locataire unique. Le nombre de processeurs spécifié par le type de machine est le nombre maximal de processeurs que la VM peut utiliser intensivement depuis MIN_VCPUS.

  • VM_NAME : nom de la VM à locataire unique sur laquelle sursolliciter des processeurs.

  • MIN_VCPUS : nombre minimal de processeurs virtuels garantis disponibles pour cette VM.

  • GROUP_NAME : nom du groupe de nœuds à locataire unique sur lequel vous souhaitez provisionner la VM.

Définir le niveau de sursollicitation sur un type de machine personnalisé

Pour créer une VM à locataire unique avec des ressources de processeur disponibles pour la sursollicitation sur un type de machine personnalisé, remplacez la valeur du champ machineType par zones/zone/machineTypes/custom-CPUS-MEMORY, en remplaçant CPUS par le nombre de processeurs et MEMORY par la quantité de mémoire, en mégaoctets, pour le type de machine personnalisé.

Mettre à jour le niveau de sursollicitation du processeur

Les procédures suivantes vous expliquent comment mettre à jour le niveau de sursollicitation des processeurs d'une VM à locataire unique.

gcloud

  1. Pour modifier le niveau de sursollicitation des processeurs d'une VM en cours d'exécution, vous devez d'abord arrêter la VM. Pour arrêter une VM, utilisez la commande gcloud compute instances stop comme suit :

    gcloud compute instances stop VM_NAME
    

    Remplacez VM_NAME par le nom de l'instance que vous souhaitez arrêter.

  2. Pour mettre à jour le niveau de sursollicitation des processeurs d'une VM à locataire unique, utilisez la commande gcloud compute instances set-scheduling comme suit :

    gcloud compute instances set-scheduling VM_NAME \
      --min-node-cpu=MIN_VCPUS
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de la VM à locataire unique pour modifier le niveau de sursollicitation du processeur.

    • MIN_VCPUS : nombre minimal de processeurs virtuels garantis disponibles pour cette VM.

REST

  1. Pour modifier le niveau de sursollicitation des processeurs d'une VM en cours d'exécution, vous devez d'abord arrêter la VM. Pour arrêter une VM, envoyez une requête POST à l'aide de la méthode instances.stop comme suit :

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

    Remplacez les éléments suivants :

    • PROJECT_ID : par l'ID de votre projet.

    • ZONE : zone de cette requête.

    • VM_NAME : nom de la VM à locataire unique pour modifier le niveau de sursollicitation du processeur.

  2. Pour mettre à jour le niveau de sursollicitation des processeurs d'une VM à locataire unique, utilisez la méthode instances.setScheduling comme suit :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    {
    "minNodeCpus":MIN_VCPUS
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : par l'ID de votre projet.

    • ZONE : zone de cette requête.

    • VM_NAME : nom de la VM à locataire unique pour modifier le niveau de sursollicitation du processeur.

    • MIN_VCPUS : nombre minimal de processeurs virtuels garantis disponibles pour cette VM.

Désactiver la sursollicitation des processeurs pour les VM à locataire unique

Les procédures suivantes vous expliquent comment désactiver la sursollicitation des processeurs d'une VM à locataire unique.

gcloud

L'exemple suivant montre comment utiliser la commande gcloud compute instances set-scheduling pour désactiver la sursollicitation des processeurs d'une VM à locataire unique.

gcloud compute instances set-scheduling VM_NAME \
  --clear-min-node-cpu

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM à locataire unique pour désactiver la sursollicitation des processeurs.

REST

L'exemple suivant montre comment utiliser la commande instances.setScheduling pour désactiver la sursollicitation des processeurs d'une VM à locataire unique.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
  "minNodeCpus":null
}

Remplacez les éléments suivants :

  • PROJECT_ID : par l'ID du projet.

  • ZONE : zone de cette requête.

  • VM_NAME : nom de la VM à locataire unique pour désactiver la sursollicitation des processeurs.

Afficher l'utilisation du processeur

Pour vérifier l'utilisation du processeur des VM à locataire unique dans un groupe de nœuds à locataire unique, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Nœuds à locataire unique.

    Accéder à la page Nœuds à locataire unique

  2. Cliquez sur Groupes de nœuds.

  3. Cliquez sur le groupe de nœuds à locataire unique contenant le nœud à locataire unique qui dispose de la VM avec des processeurs sursollicités.

  4. Cliquez sur le nœud à locataire unique sur lequel se trouve la VM dont les processeurs sont sursollicités.

  5. Sous le nom du nœud à locataire unique, affichez l'utilisation du processeur, le type de sursollicitation des processeurs et l'utilisation minimale des processeurs.

    • L'utilisation du processeur indique le nombre total de processeurs pour toutes les VM de ce nœud à locataire unique divisé par le nombre de processeurs spécifié par le type de nœud à locataire unique.

      Le nombre de processeurs sur le nœud disponible pour la sursollicitation est le numérateur moins le dénominateur, et le niveau de sursollicitation est le quotient du numérateur et du dénominateur.

    • L'utilisation minimale des processeurs indique le quotient du nombre minimal de processeurs alloués à toutes les VM sur un nœud à locataire unique divisé par le nombre de processeurs spécifié par le type de nœud.

Optimiser les niveaux de sursollicitation des processeurs

Pour vous aider à optimiser le réglage des niveaux de sursollicitation des processeurs, Compute Engine fournit la métrique Durée d'attente du programmeur. La métrique Durée d'attente du programmeur indique le temps d'attente agrégé pour tous les processeurs virtuels de la VM et permet de déterminer l'impact de la sursollicitation des processeurs sur les performances de la VM.

La sensibilité de la charge de travail varie, mais il est généralement recommandé de définir le temps d'attente maximal du programmeur sur 20 millisecondes par seconde (20 ms/s) pour chaque processeur virtuel. Par exemple, si une VM est définie sur 8 processeurs virtuels, vous pouvez spécifier un seuil de 160 ms/s, ce qui donne une durée d'attente du programmeur moyenne acceptable de 20 ms/s par processeur virtuel. Les exigences de performances de votre charge de travail vont à terme imposer des seuils acceptables.

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Cliquez sur Explorateur de métriques.

  3. Dans le champ Type de ressource, saisissez Instance de VM.

  4. Dans le champ Métrique, saisissez Durée d'attente du programmeur.

  5. Vous pouvez éventuellement configurer des alertes liées aux seuils de temps d'attente de la VM en cliquant sur Alertes.

Étape suivante