Appliquer des recommandations de dimensionnement aux MIG

Compute Engine fournit des recommandations de type de machine pour les groupes d'instances gérés (MIG, Managed Instance Groups), qui vous aideront à améliorer les performances des charges de travail et la rentabilité. Utilisez ces recommandations pour déterminer si vous devez redimensionner le type de machine de vos instances pour ajouter ou supprimer des ressources de processeur virtuel et de mémoire.

Pour en savoir plus sur les différentes options de dimensionnement disponibles pour les instances de VM, consultez la documentation sur les types de machines.

Les recommandations de dimensionnement sont également appelées recommandations de redimensionnement.

Avant de commencer

Restrictions

Des recommandations sont disponibles pour les groupes d'instances gérés qui se trouvent dans une seule zone et qui ne font l'objet ni d'un autoscaling, ni d'un équilibrage de charge.

Prix

Les recommandations de dimensionnement sont gratuites.

Cas d'utilisation

Vous pouvez bénéficier de recommandations de dimensionnement dans les conditions de charges de travail suivantes :

  • Des charges de travail avec des augmentations et des diminutions périodiques du trafic, telles que des charges de travail susceptibles de générer du trafic saisonnier.
  • Des charges de travail sous-utilisées dans le processeur et la mémoire RAM, car limitées par d'autres restrictions, telles que le débit en lecture/écriture.
  • Des charges de travail qui exécutent des logiciels nécessitant des licences logicielles individuelles et qui ne peuvent plus ajouter d'instances. Dans ce cas, vous pouvez vous fier aux recommandations de dimensionnement pour adapter vos types de machines, tout en maintenant le nombre d'instances de VM.
  • Des charges de travail dans l'incapacité de s'adapter dynamiquement à un nombre fluctuant d'instances, telles que les charges de travail non compatibles avec l'autoscaling.

Les recommandations de dimensionnement peuvent ne pas vous intéresser pour l'une des raisons suivantes :

  • Vos charges de travail présentent de très brefs pics d'utilisation du processeur. Les recommandations de dimensionnement étant basées sur l'utilisation moyenne du processeur à des intervalles de 60 secondes, il est possible que les recommandations ne soient pas générées assez rapidement pour capturer des pics d'une plus courte durée. Les applications présentant de courts pics d'utilisation de processeur peuvent avoir besoin de fonctionner sur un type de machine de taille plus importante que celui recommandé. Vous pouvez également activer l'autoscaling pour faire face à ces pics.
  • Vos pics de charge se produisent moins d'une fois tous les huit jours (par exemple, une fois par mois). L'algorithme de redimensionnement ne prend pas en compte les pics peu fréquents. Il ne consulte que les huit derniers jours de l'historique.
  • Chaque instance de votre MIG traite une charge de travail très différente des autres. Dans ce cas, les recommandations sont optimisées pour les instances de VM ayant la charge la plus élevée, ce qui peut provoquer le surdimensionnement de la plupart des instances de VM du groupe.
  • Votre MIG contient des VM sous-exploitées, car il ne fournit pas de charge en temps réel, mais une capacité de basculement prête à l'emploi.
  • Votre MIG contient des VM surdimensionnées pour l'une des raisons suivantes :
    • Votre licence logicielle requiert une taille de machine minimale.
    • Vous devez répondre aux conditions requises pour les IOPS de stockage ou de mise en réseau qui ne sont disponibles qu'avec un type de machine minimal.

Fonctionnement des recommandations de dimensionnement

Compute Engine surveille l'utilisation du processeur et de la mémoire des VM en cours d'exécution. Il émet des recommandations d'après les huit derniers jours de données. Afin de recommander le meilleur type de machine unique pour toutes les instances d'un groupe d'instances géré, Compute Engine propose une recommandation de dimensionnement standard pour des instances individuelles. Une fois les anomalies ajustées, il choisit un type de machine qui ne sous-dimensionne aucune instance de VM unique. Les instances qui ne sont pas en cours d'exécution, comme les instances de VM arrêtées ou en cours de redémarrage, ne sont pas prises en compte dans le calcul.

Compute Engine peut émettre des recommandations semblables à celles-ci :

  • Si la plupart du temps votre groupe d'instances a peu utilisé les processeurs, Compute Engine recommandera un type de machine comportant moins de processeurs virtuels.
  • Si la plupart du temps votre groupe d'instances a beaucoup utilisé les processeurs, Compute Engine recommandera un type de machine comportant davantage de processeurs virtuels.
  • Si votre groupe d'instances n'a pas utilisé une grande partie de sa mémoire, Compute Engine recommandera un type de machine avec moins de mémoire.
  • Si la plupart du temps votre groupe d'instances a utilisé intensivement une grande partie de sa mémoire, Compute Engine recommandera un type de machine comportant davantage de mémoire.

Compute Engine peut recommander d'utiliser un type de machine standard ou personnalisé. Sachez qu'il existe des limitations concernant la quantité de mémoire et de processeurs virtuels disponibles sur une machine. Par exemple, l'augmentation d'une ressource peut nécessiter l'augmentation d'une autre ressource au même moment pour que les spécifications d'un type de machine valide soient respectées. En outre, Compute Engine ne recommande que les types de machines disponibles dans la zone où l'instance est en cours d'exécution.

Pour en savoir plus, consultez les spécifications concernant les types de machines personnalisés.

Si la charge de travail du groupe d'instances géré varie beaucoup entre les instances, certaines d'entre elles peuvent être surdimensionnées afin que les instances pleinement utilisées disposent de ressources suffisantes conformément à la recommandation. Par exemple, Compute Engine peut formuler les recommandations suivantes pour prendre en charge la charge de travail de l'instance 4, même si les instances 1, 2, 3 et 5 sont surdimensionnées et sous-utilisées :

Recommandations émises pour un groupe d'instances géré
Exemple de surdimensionnement dû à des charges de travail différentes parmi les instances gérées

C'est pourquoi les recommandations pour un groupe d'instances géré fonctionnent mieux lorsque la charge de travail des instances est raisonnablement répartie.

Pour les estimations de différence de coût, le coût d'un groupe d'instances est basé sur l'utilisation au cours de la semaine précédente (avant la remise automatique proportionnelle à une utilisation soutenue) et est extrapolé à 30 jours. Cette valeur est ensuite comparée au coût mensuel du type de machine recommandé (avant la remise automatique proportionnelle à une utilisation soutenue). Pour plus de détails, consultez la documentation sur les tarifs.

Afficher les recommandations de dimensionnement

Compute Engine émet des recommandations via Google Cloud Console. Vous pouvez consulter les recommandations pour la taille de la machine via l'outil de recommandation à l'aide de l'outil gcloud ou de l'API.

Console

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

  2. Sélectionnez le projet et cliquez sur Continuer.
  3. Dans la colonne Recommendation (Recommandation), examinez les recommandations pour les groupes d'instances gérés individuels. Vous pouvez également trier la colonne en fonction du montant des économies estimées. Si aucune recommandation ne s'affiche à côté des groupes d'instances, cela signifie que Compute Engine n'en propose aucune.

    Colonne de recommandations.

  4. Si votre groupe d'instances comporte deux modèles d'instance, Compute Engine formule des recommandations pour chacun d'entre eux. Cliquez sur une recommandation pour afficher les recommandations du modèle d'instance correspondant.

    Recommandations pour plusieurs modèles

gcloud

Exécutez la commande gcloud recommender recommendations list, puis spécifiez l'outil de recommandation de redimensionnement de groupe d'instances de VM géré.

    gcloud recommender recommendations list \
          --recommender=google.compute.instanceGroupManager.MachineTypeRecommender \
          --project [PROJECT_ID] \
          --location [ZONE] \
          --format=yaml
    

Exemple :

    gcloud recommender recommendations list \
        --recommender=google.compute.instanceGroupManager.MachineTypeRecommender \
        --project my-project \
        --location us-central1-a \
        --format=yaml
    

La réponse inclut les champs suivants pour chaque recommandation :


    ---
    content:
      ...
      operationGroups:
      - operations:
        - action: test
          path: /properties/machineType
          resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/my-old-template
          resourceType: compute.googleapis.com/InstanceTemplate
          value: n1-standard-4
        - action: copy
          path: /
          resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
          resourceType: compute.googleapis.com/InstanceTemplate
          sourcePath: /
          sourceResource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/my-old-template
        - action: replace
          path: /name
          resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
          resourceType: compute.googleapis.com/InstanceTemplate
          value: $new-it-name
        - action: replace
          path: /properties/machineType
          resource: //compute.googleapis.com/projects/my-project/global/instanceTemplates/$new-it-name
          resourceType: compute.googleapis.com/InstanceTemplate
          value: custom-2-5632
      - operations:
        - action: replace
          path: /versions/*/name
          pathValueMatchers:
            versions/*/instanceTemplate:
              matchesPattern: .*global/instanceTemplates/my-old-template
          resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instanceGroupManagers/example-group
          resourceType: compute.googleapis.com/InstanceGroupManager
          value: global/instanceTemplates/$new-it-name
    ...
    description: Save cost by changing machine type from n1-standard-4 to custom-2-5120.
    ...
    name: projects/823742397239/locations/us-central1-a/recommenders/google.compute.instanceGroupManager.MachineTypeRecommender/recommendations/c50a1c41-7e65-417d-a32e-45248a2cb318
    ...
    

Pour en savoir plus, consultez la documentation sur l'outil de recommandation.

API

Utilisez l'API Recommender avec l'ID de l'outil de recommandation du type de machine pour les MIG.

Si vous ne maîtrisez pas encore les conditions préalables d'authentification pour appeler les API Google Cloud, consultez la page Présentation de l'authentification.

L'exemple suivant de script bash utilise le flux d'authentification de l'utilisateur final avec des identifiants client OAuth. Le script utilise l'outil de ligne de commande Google oauth2l pour obtenir un jeton d'accès OAuth 2.0, puis envoie une requête curl à l'aide du jeton.

PROJECT_ID=my-project
    LOCATION=us-central1-c
    RECOMMENDER_ID=google.compute.instanceGroupManager.MachineTypeRecommender
    OAUTH_JSON=~/client_secrets.json  # credentials for service account
    OAUTH_HEADER="$(oauth2l header --json $OAUTH_JSON cloud-platform)"

    curl -H "$OAUTH_HEADER" https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations
    

La réponse inclut les champs suivants pour chaque recommandation :

  • name : nom de la recommandation
  • description : explication de la recommandation, dans un format lisible
  • operationGroups : groupes d'opérations que vous pouvez effectuer dans un ordre sérialisé pour appliquer la recommandation

Pour en savoir plus, consultez la documentation sur l'outil de recommandation.

Lorsque vous créez un groupe d'instances géré, les recommandations pour le nouveau groupe sont visibles 24 heures après la création du groupe.

Par la suite, les recommandations sont actualisées à intervalles réguliers tout au long de la journée.

Appliquer des recommandations aux groupes d'instances

Si vous souhaitez appliquer les recommandations émises par Compute Engine, vous pouvez redimensionner les instances gérées directement à partir de la console. Vous pouvez également effectuer manuellement les opérations de redimensionnement. L'API Recommender renvoie une série d'opérations de redimensionnement. Pour en savoir plus, consultez la section Groupes d'opérations.

Lorsque vous appliquez une recommandation à un groupe d'instances géré, vous effectuez les opérations suivantes :

  1. Il clone les modèles d'instance utilisés par le groupe d'instances géré.
  2. Vous modifiez les modèles d'instance clonés en fonction des recommandations et des modifications que vous apportez.
  3. Vous appliquez le nouveau modèle à l'aide du programme de mise à jour de groupes d'instances gérés. Si le groupe d'instances possède deux modèles d'instance, voici ce qui se produit :

    1. Les recommandations s'appliquent pour un modèle d'instance à la fois.
    2. Un groupe d'instances géré ne peut disposer que de deux modèles d'instance à la fois. Il est donc impossible d'appliquer une recommandation tout en conservant deux autres modèles d'instance. Toutefois, vous pouvez appliquer une recommandation si votre groupe d'instances ne dispose que d'un seul modèle d'instance.

Pour redimensionner des instances gérées directement depuis la console :

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

    Cliquez sur le texte de la recommandation pour le groupe d'instances que vous souhaitez mettre à jour.

    Sélectionner une colonne de recommandation

  2. Un pop-up contenant plus de détails s'affiche. Plusieurs options sont proposées : Annuler, Ignorer la recommandation ou Continuer. Pour examiner et appliquer la recommandation, cliquez sur Continuer.

  3. Dans l'écran suivant, la recommandation est expliquée en détail. Si vous poursuivez, Compute Engine crée un modèle d'instance et met à jour toutes les instances du groupe afin qu'elles utilisent ce nouveau modèle.

  4. (Avancé) Pour personnaliser le déploiement du nouveau modèle dans vos instances, cliquez sur Personnaliser le déploiement. Un écran s'affiche.

    1. Sous Modèle, vous pouvez choisir d'appliquer le nouveau modèle à toutes les instances du groupe ou uniquement à un sous-ensemble de ces instances.
    2. Sous Mode de mise à jour, vous pouvez indiquer si vous souhaitez que Compute Engine supprime et crée activement des instances à l'aide du nouveau modèle d'instance (Proactive) ou s'il ne doit appliquer la mise à jour que si l'instance est créée par d'autres moyens, via le redimensionnement ou l'ajout au groupe par exemple (Quand l'occasion se présente).
    3. Sous Surutilisation maximale, choisissez le nombre d'instances supplémentaires temporaires à créer au-delà de la taille cible du groupe d'instances géré. Plus vous autorisez d'instances, plus votre mise à jour est rapide, au prix des instances supplémentaires. La valeur par défaut correspond à une instance supplémentaire.
    4. Sous Nombre maximal d'instances indisponibles, vous pouvez choisir le nombre d'instances pouvant être hors connexion simultanément au cours de cette mise à jour. Ce nombre inclut également toute instance indisponible pour d'autres raisons. Par exemple, si le groupe d'instances est en cours de redimensionnement, les instances en cours de création peuvent être indisponibles et, par conséquent, incluses dans ce nombre. La valeur par défaut correspond à une instance indisponible à la fois.
    5. Sous Durée d'attente minimale, vous pouvez choisir le nombre de secondes à attendre avant de marquer une nouvelle instance comme mise à jour. Cette durée commence une fois la vérification de l'état réussie. Contrôlez la fréquence à laquelle le modèle d'instance est appliqué à l'aide de cette fonctionnalité.
  5. Pour appliquer les modifications, cliquez sur le bouton Enregistrer.

  6. Lorsque vous êtes prêt à déployer les modifications, cliquez sur Déployer.

Ignorer des recommandations

Lorsque vous avez terminé d'utiliser une recommandation, vous pouvez l'ignorer depuis la console. Dans la console, cette action supprime la recommandation de l'estimation des économies totales et minimise également son apparence en la grisant.

Lorsqu'une recommandation est ignorée via la console, cela n'a pas d'incidence sur la liste de recommandations renvoyée par l'API Recommender. Pour gérer l'état des recommandations renvoyées par l'API Recommender, consultez la page Utiliser l'API.

Pour ignorer une seule recommandation depuis la console, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

    Cliquez sur le texte de la recommandation que vous voulez ignorer. Une fenêtre contextuelle affiche plus de détails et le bouton Ignorer la recommandation.
  2. Cliquez sur Ignorer la recommandation.

Pour ignorer toutes les recommandations, cliquez sur le bouton Dismiss all (Tout ignorer) de la page Groupes d'instances.

Ignorer les recommandations

Pour restaurer une recommandation dans la console, procédez comme suit :

  1. Sur la page Groupes d'instances, cliquez sur le texte de recommandation grisé à restaurer.

    Recommandation ignorée

  2. Une fenêtre contextuelle affiche plus de détails et le bouton Restaurer la recommandation.

  3. Cliquez sur Restore recommendation (Restaurer la recommandation).

Utiliser l'agent de surveillance pour des recommandations plus précises

Stackdriver Monitoring propose un agent de surveillance qui collecte des métriques de disque, de processeur, de réseau et de processus supplémentaires à partir de vos instances de VM. Vous pouvez installer l'agent de surveillance sur les instances de VM pour qu'il puisse accéder aux ressources système et aux services d'application permettant de recueillir ces données.

Si l'agent de surveillance est installé et s'exécute sur une instance de VM, les métriques de processeur et de mémoire qu'il collecte sont automatiquement utilisées afin de calculer les recommandations de dimensionnement. Les métriques de l'agent de surveillance permettent de mieux comprendre l'utilisation des ressources de l'instance par rapport aux métriques par défaut de Compute Engine. De cette façon, le moteur de recommandations peut mieux estimer les besoins en ressources et émettre des recommandations plus précises.

Pour installer l'agent, consultez la page Installer l'agent Stackdriver Monitoring.

Étape suivante