Scaling basé sur l'utilisation du processeur


La forme la plus simple d'autoscaling consiste à faire évoluer un groupe d'instances géré (MIG) en fonction de l'utilisation du processeur de ses instances.

Vous pouvez également effectuer l'autoscaling d'un groupe d'instances géré en fonction de la capacité de diffusion de l'équilibrage de charge, des métriques Monitoring ou des planifications.

Avant de commencer

  • Examinez les limites de l'autoscaler.
  • Découvrez les principes de base de l'autoscaler.
  • 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

Effectuer un autoscaling basé sur l'utilisation du processeur

Vous pouvez procéder à un autoscaling en fonction de l'utilisation moyenne du processeur d'un groupe d'instances géré. L'utilisation de cette stratégie permet à l'autoscaler de collecter les données d'utilisation du processeur associées aux instances du groupe et de déterminer si un scaling est nécessaire. Vous définissez l'utilisation du processeur cible que l'autoscaler doit gérer et l'autoscaler s'occupe de maintenir ce niveau.

L'autoscaler traite l'objectif d'utilisation du processeur comme une fraction de l'utilisation moyenne de tous les processeurs virtuels au fil du temps dans le groupe d'instances. Si l'utilisation moyenne de l'ensemble de vos processeurs virtuels dépasse l'utilisation cible, l'autoscaler ajoute des instances de VM. Si l'utilisation moyenne de l'ensemble de vos processeurs virtuels est inférieure à l'utilisation cible, l'autoscaler supprime des instances. Par exemple, définir une utilisation cible de 0,75 indique à l'autoscaler de maintenir une utilisation moyenne de 75 % parmi tous les processeurs virtuels du groupe d'instances.

Vous pouvez également effectuer un scaling en fonction de l'utilisation prévue du processeur. Pour plus d'informations et pour savoir si cette méthode est adaptée à votre charge de travail, consultez la section Scaling basé sur les prédictions.

Activer l'autoscaling basé sur l'utilisation du processeur

Console

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

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

  2. Si vous disposez d'un groupe d'instances, sélectionnez-le et cliquez sur Modifier. Si vous n'en avez pas, cliquez sur Créer un groupe d'instances.

  3. Si aucune configuration d'autoscaling n'existe, cliquez sur Configurer l'autoscaling sous Autoscaling.

  4. Sous Mode autoscaling, sélectionnez Activé : ajouter et supprimer des instances au groupe pour activer l'autoscaling.

  5. Spécifiez le nombre minimal et maximal d'instances que l'autoscaler doit créer dans ce groupe.

  6. Si la section Métriques d'autoscaling ne comporte aucune métrique Utilisation du processeur, ajoutez-en une :

    1. Cliquez sur Ajouter une métrique.
    2. Sous Type de métrique, sélectionnez Utilisation du processeur.
    3. Saisissez l'utilisation du processeur cible souhaitée. Cette valeur est traitée comme un pourcentage. Par exemple, pour une utilisation du processeur à 75 %, saisissez 75.
    4. Sous Autoscaling prédictif, sélectionnez Désactivé. Pour en savoir plus sur l'autoscaling prédictif et vérifier s'il est adapté à votre charge de travail, consultez la section Scaling basé sur les prédictions.
    5. Cliquez sur OK.
  7. Vous pouvez utiliser la période d'initialisation pour indiquer à l'autoscaler le temps nécessaire à l'initialisation de votre application. Spécifier une période d'initialisation précise améliore les décisions de l'autoscaler. Par exemple, lors d'un scaling horizontal, l'autoscaler ignore les données des VM qui sont toujours en cours d'initialisation, car il est possible que ces VM ne représentent pas encore une utilisation normale de l'application. La période d'initialisation par défaut est de 60 secondes.

  8. Cliquez sur Enregistrer.

gcloud

Utilisez la sous-commande set-autoscaling pour activer l'autoscaling pour un groupe d'instances géré. Par exemple, la commande suivante crée un autoscaler dont l'objectif d'utilisation du processeur est de 60 %. Outre le paramètre --target-cpu-utilization, le paramètre --max-num-replicas est également obligatoire lors de la création d'un autoscaler :

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-cpu-utilization 0.60 \
    --cool-down-period 90

Vous pouvez utiliser l'option --cool-down-period pour définir la période d'initialisation, qui indique à l'autoscaler le temps nécessaire à l'initialisation de votre application. Spécifier une période d'initialisation précise améliore les décisions de l'autoscaler. Par exemple, lors d'un scaling horizontal, l'autoscaler ignore les données des VM qui sont toujours en cours d'initialisation, car il est possible que ces VM ne représentent pas encore une utilisation normale de l'application. La période d'initialisation par défaut est de 60 secondes.

Si vous le souhaitez, vous pouvez activer l'autoscaling prédictif pour effectuer un scaling horizontal de manière à anticiper la charge prévue. Pour savoir si l'autoscaling prédictif est adapté à votre charge de travail, consultez la section Scaling basé sur les prédictions.

Vous pouvez vérifier que l'autoscaling est activé à l'aide de la sous-commande instance-groups managed describe, qui décrit le groupe d'instances géré correspondant et fournit des informations sur les fonctionnalités d'autoscaling de ce groupe d'instances :

gcloud compute instance-groups managed describe example-managed-instance-group

Pour obtenir la liste des commandes et indicateurs gcloud disponibles, consultez la référence gcloud.

REST

Pour créer un autoscaler, utilisez la méthode autoscalers.insert pour un MIG zonal ou la méthode regionAutoscalers.insert pour un MIG régional.

L'exemple suivant crée un autoscaler pour un MIG zonal :

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

Le corps de votre requête doit contenir les champs name, target et autoscalingPolicy. autoscalingPolicy doit définir cpuUtilization et maxNumReplicas.

Vous pouvez utiliser le champ coolDownPeriodSec pour définir la période d'initialisation, qui indique à l'autoscaler le temps nécessaire à l'initialisation de votre application. Spécifier une période d'initialisation précise améliore les décisions de l'autoscaler. Par exemple, lors d'un scaling horizontal, l'autoscaler ignore les données des VM qui sont toujours en cours d'initialisation, car il est possible que ces VM ne représentent pas encore une utilisation normale de l'application. La période d'initialisation par défaut est de 60 secondes.

Si vous le souhaitez, vous pouvez activer l'autoscaling prédictif pour effectuer un scaling horizontal de manière à anticiper la charge prévue. Pour savoir si l'autoscaling prédictif est adapté à votre charge de travail, consultez la section Scaling basé sur les prédictions.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

Pour plus d'informations sur l'activation de l'autoscaling en fonction de l'utilisation du processeur, suivez le tutoriel Utiliser l'autoscaling pour des applications hautement évolutives.

Comment l'autoscaler gère une utilisation intensive du processeur

En période d'utilisation intensive du processeur, si le taux d'utilisation approche des 100 %, l'autoscaler estime que le groupe est peut-être déjà surchargé. Dans ce cas, l'autoscaler augmente le nombre de machines virtuelles de 50 % au maximum.

Étape suivante