Comprendre les décisions des autoscalers

L'autoscaling permet d'effectuer la mise à l'échelle automatique d'un groupe d'instances géré en votre nom. Ce document a pour objectif de vous aider à comprendre certaines décisions prises par l'autoscaler lorsqu'il fait évoluer vos groupes d'instances gérés.

Écarts entre l'utilisation cible et réelle

Au cours du processus d'autoscaling, vous pouvez remarquer une différence importante entre l'utilisation réelle et l'utilisation cible des plus petits groupes d'instances. En effet, un autoscaler agit toujours prudemment en arrondissant à l'unité supérieure ou inférieure les données d'utilisation qu'il interprète, et détermine le nombre d'instances à ajouter ou à supprimer. Ainsi, l'autoscaler ne peut pas ajouter un nombre insuffisant de ressources ou en supprimer trop.

Par exemple, si vous définissez un objectif d'utilisation de 0,7 et que votre application dépasse cet objectif, l'autoscaler peut déterminer qu'il faut ajouter 1,5 machine virtuelle pour se rapprocher de l'objectif de 0,7. Étant donné qu'il n'est pas possible d'ajouter 1,5 machine virtuelle, l'autoscaler arrondit la valeur à l'unité supérieure et ajoute deux machines virtuelles. Cela peut entraîner une diminution de l'utilisation moyenne du processeur à une valeur inférieure à 0,7, mais garantit que votre application dispose de suffisamment de ressources pour la prendre en charge.

De même, si l'autoscaler détermine que la suppression de 1,5 machine virtuelle peut augmenter votre utilisation à près de 0,7, il ne supprime qu'une seule machine virtuelle.

Pour les groupes plus importants qui disposent de plus de machines virtuelles, l'utilisation est répartie sur un plus grand nombre d'instances. L'ajout ou la suppression de machines virtuelles réduit l'écart entre l'utilisation réelle et l'utilisation cible.

Délais d'adaptation des applications

Afin de supprimer des instances, l'autoscaler calcule la taille cible recommandée du groupe en fonction de la charge maximale des 10 dernières minutes. On parle pour ces 10 dernières minutes de période de stabilisation.

L'observation de ces 10 dernières minutes d'utilisation permet à l'autoscaler de :

  • vérifier que les informations d'utilisation recueillies à partir du groupe d'instances sont stables ;
  • empêcher un autoscaler d'ajouter ou de supprimer continuellement des instances à un taux excessif ;
  • supprimer les instances en toute sécurité en déterminant que la taille du plus petit groupe est suffisante pour gérer les pics de charge des 10 dernières minutes.

Cette période de stabilisation de 10 minutes peut être perçue comme un délai d'adaptation, mais il s'agit en fait d'une fonction d'autoscaling intégrée. Le délai garantit également que si une nouvelle instance est ajoutée au groupe d'instances géré, l'instance est exécutée pendant au moins 10 minutes avant de pouvoir être supprimée.

Les intervalles entre chaque période d'autoscaling des nouvelles instances sont ignorés au moment de décider de faire évoluer ou non un groupe à la baisse.

Retards engendrés par le drainage de connexion

Si le groupe fait partie d'un service de backend sur lequel le drainage de connexion est activé, le retrait ou la suppression de l'instance de VM peuvent prendre jusqu'à 60 secondes après la fin de la période de drainage.

Préparer les arrêts d'instances

Lorsque l'autoscaler évolue à la baisse, il détermine le nombre de machines virtuelles qu'il doit arrêter et supprime les instances de machine virtuelle peu utilisées du groupe d'instances. Avant d'arrêter des instances, vous pouvez vérifier qu'elles effectuent certaines tâches, telles que la fermeture de toutes les connexions existantes, l'arrêt optimal des applications ou des serveurs d'applications, l'importation des journaux, etc. Vous pouvez demander à votre instance d'effectuer ces tâches à l'aide d'un script d'arrêt.

Un script d'arrêt s'exécute de la façon la plus optimale possible dans un bref délai entre le moment où la requête d'arrêt est effectuée et le moment où l'instance est réellement arrêtée. Pendant ce laps de temps, Compute Engine tente d'exécuter votre script d'arrêt pour effectuer les tâches que vous avez indiquées dans le script.

Ceci est particulièrement utile si vous utilisez l'équilibrage de charge avec votre groupe d'instances géré. Si votre instance est défectueuse, l'équilibreur de charge peut mettre un certain temps à reconnaître que l'instance est en panne. Il continue donc à envoyer de nouvelles requêtes à l'instance. Grâce à un script d'arrêt, l'instance peut signaler qu'elle est défectueuse lors de sa fermeture afin que l'équilibreur de charge puisse cesser de lui envoyer du trafic. Pour en savoir plus, consultez la section Gérer des instances défectueuses dans la documentation relative à l'équilibrage de charge.

Pour en savoir plus sur les scripts d'arrêt, consultez la page Scripts d'arrêt.

Pour en savoir plus sur les arrêts d'instances, consultez la documentation sur l'arrêt ou la suppression d'une instance.

Afficher les graphiques d'autoscaling liés à l'utilisation

Si vous disposez d'un groupe d'instances géré avec autoscaling, Compute Engine vous fournit un graphique d'autoscaling permettant de surveiller l'utilisation totale du processeur et le nombre d'instances à un moment donné. Vous pouvez accéder à ce graphique dans la console Google Cloud Platform.

  1. Accédez à la page "Groupes d'instances" dans la console GCP.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur le nom d'un groupe d'instances géré avec autoscaling que vous souhaitez afficher. Le groupe doit appliquer l'autoscaling en fonction de l'utilisation du processeur (les autres métriques d'autoscaling ne sont pas encore prises en charge).
  3. Sur la page d'informations du groupe d'instances géré, sélectionnez l'onglet Monitoring (Surveillance) si cette option n'est pas déjà sélectionnée.

    Capture d'écran de l'onglet de surveillance

  4. Assurez-vous que l'option Taille adaptée automatiquement est sélectionnée dans le menu déroulant.

Les graphiques permettent de surveiller le nombre d'instances par rapport à l'utilisation du processeur. Consultez les informations suivantes pour comprendre ces graphiques :

  • La ligne bleue dans le graphique du haut indique le nombre d'instances dans le groupe d'instances géré.
  • La ligne bleue dans le graphique du bas indique l'utilisation totale du processeur par le groupe.
  • La ligne verte dans le graphique du bas indique la capacité disponible restante du groupe d'instances géré.
    • Si la ligne verte se situe au-dessus de la ligne bleue, cela signifie que vous disposez d'une capacité importante et que vos instances de VM sont probablement sous-exploitées.
    • Si la ligne verte se situe en dessous de la ligne bleue, la capacité restante est faible, voire inexistante, et vous devez ajouter davantage d'instances au groupe.
  • Si votre capacité chute, cela signifie probablement que la taille de votre groupe d'instances a diminué. La ligne bleue décroît donc également. De même, si votre capacité augmente, la taille de votre groupe d'instances a probablement également augmenté.

Par exemple, le graphique suivant représente un groupe d'instances géré avec autoscaling qui atteint sa capacité maximale. L'autoscaler ajoute alors davantage d'instances de VM pour augmenter la capacité du groupe :

Capture d'écran du graphique d'autoscaling

Afficher les messages d'état

Lorsque l'autoscaler rencontre un problème de scaling, il renvoie un message d'avertissement ou d'erreur. Vous pouvez passer en revue ces messages d'état de deux manières différentes.

Afficher les messages d'état sur la page "Groupes d'instances"

Vous pouvez afficher les messages d'état directement sur la page "Groupes d'instances" de la console Google Cloud Platform.

  1. Accédez à la page "Groupes d'instances" dans la console Google Cloud Platform.

    Accéder à la page "Groupes d'instances"

  2. Recherchez les groupes d'instances dotés de l'icône ! . Exemple :

    Capture d'écran des messages d'état sur la page des groupes d'instances

  3. Placez le pointeur de la souris sur une icône d'état pour obtenir des détails sur le message d'état.

Afficher les messages d'état sur la page d'informations "Groupe d'instances"

Vous pouvez accéder directement à la page d'informations d'un groupe d'instances spécifique pour afficher les messages d'état pertinents.

  1. Accédez à la page "Groupes d'instances" dans la console Google Cloud Platform.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur le groupe d'instances pour lequel vous souhaitez afficher les messages d'état.
  3. Sur la page d'informations, affichez le message d'état dans l'onglet Membres. Exemple :

    Capture d'écran des messages d'état sur la page d'informations d'un groupe d'instances

Messages d'état fréquemment affichés

Lorsque l'autoscaler rencontre un problème de scaling, il renvoie un message d'avertissement ou d'erreur. Voici quelques messages fréquemment affichés et leur signification.

All instances in the instance group are unhealthy (not in RUNNING state). If this is an error, check the instances.
Aucune des instances du groupe n'est associée à l'état RUNNING. Si cela est intentionnel, vous pouvez ignorer ce message. Dans le cas contraire, vous devez résoudre le problème du groupe d'instances.
The number of instances has reached the maxNumReplicas. The autoscaler cannot add more instances.
Lors de la création de l'autoscaler, vous avez indiqué le nombre maximal d'instances que le groupe peut compter. L'autoscaler tente actuellement de redimensionner le groupe d'instances pour répondre à la demande, mais a atteint le maxNumReplicas. Pour augmenter la valeur maxNumReplicas, consultez la section Mettre à jour un autoscaler.
The monitoring metric that was specified does not exist or does not have the required labels. Check the metric.
Vous procédez à un autoscaling à l'aide d'une métrique Stackdriver, mais la métrique que vous avez fournie n'existe pas ou ne possède pas les libellés nécessaires. Des libellés différents sont requis en fonction de la nature de la métrique (standard ou personnalisée). Pour en savoir plus, consultez la documentation Effectuer un scaling basé sur les métriques Stackdriver Monitoring.
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
Vous pouvez obtenir des informations sur votre quota disponible sur la page Quotas de la console Google Cloud Platform.
Autoscaling does not work with an HTTP/S load balancer configured for maxRate.
Le groupe d'instances est soumis à un équilibrage de charge à l'aide de la configuration maxRate, mais l'autoscaler ne prend pas en charge ce mode. Modifiez la configuration ou désactivez l'autoscaling. Pour en savoir plus sur maxRate, consultez les restrictions et directives dans la documentation sur l'équilibrage de charge.
The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any queries from the load balancer. Check that the load balancing configuration is working.
Le groupe d'instances est soumis à un équilibrage de charge, mais ne reçoit aucune requête. Le service rencontre peut-être une période d'inactivité, auquel cas il n'y a rien à craindre. Toutefois, ce message peut aussi être causé par une mauvaise configuration. Par exemple, un groupe d'instances avec autoscaling peut être la cible de plusieurs équilibreurs de charge, ce qui n'est pas accepté. Pour obtenir la liste complète des consignes, consultez les restrictions et directives dans la documentation relative à l'équilibrage de charge.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine