Autoscaler géré

Cette page décrit le fonctionnement de l'autoscaler géré, ainsi que les coûts et les limites applicables lors de son utilisation. Il fournit également des informations pour vous aider à déterminer comment configurer l'autoscaler géré.

Fonctionnement de l'autoscaler géré

Lorsque vous activez l'autoscaler géré, Spanner ajuste automatiquement la taille de votre instance pour vous. La fonctionnalité d'autoscaler géré réagit aux changements de la charge de travail ou des besoins de stockage de votre instance lorsque votre charge augmente ou diminue. L'autoscaling géré effectue un scaling à la hausse en ajoutant de la capacité de calcul à l'instance, ou un scaling à la baisse pour supprimer la capacité de calcul de l'instance.

Lorsque vous configurez l'autoscaler géré, vous pouvez utiliser des unités de traitement pour les petites instances ou des nœuds pour les instances volumineuses. Dans ce document, nous utilisons le terme capacité de calcul pour désigner les nœuds ou les unités de traitement.

L'autoscaler géré Spanner détermine la capacité de calcul requise en fonction des éléments suivants:

  • Objectif d'utilisation du processeur à haute priorité
  • Objectif d'utilisation du stockage
  • Limite minimale
  • Limite maximale

Chaque dimension de scaling génère une taille d'instance recommandée, et Spanner utilise automatiquement la plus élevée. Cela signifie, par exemple, que si votre instance a besoin de 10 nœuds pour atteindre votre objectif d'utilisation du stockage, mais de 12 nœuds pour atteindre votre objectif d'utilisation du processeur, Spanner ajuste l'instance à 12 nœuds.

À mesure que la quantité de capacité de calcul change, Spanner optimise en permanence le stockage. Il rééquilibre les données entre tous les serveurs pour garantir que le trafic est réparti uniformément et qu'aucun serveur individuel n'est surchargé. Pour en savoir plus, consultez la section Limites.

Si l'autoscaler géré fait évoluer une instance jusqu'à sa limite maximale, mais que la charge de travail entraîne toujours une utilisation du processeur supérieure à la cible, les requêtes de charge de travail peuvent présenter une latence plus élevée ou échouer. Si une instance effectue un scaling à la hausse jusqu'à atteindre sa capacité de calcul maximale cible, mais que la charge de travail nécessite plus d'espace de stockage que la limite de stockage maximale, les requêtes d'écriture peuvent échouer. Pour savoir si l'objectif maximal est atteint, vous pouvez afficher les journaux des événements système de l'autoscaler géré dans la console Google Cloud, sur la page Insights système. Pour en savoir plus, consultez la section Limites de stockage.

Lorsque Spanner effectue un scaling à la baisse d'une instance, il supprime la capacité de calcul plus lentement que lors du scaling à la hausse, afin de réduire tout impact sur la latence.

Coûts

Le coût total de Spanner peut être inférieur ou supérieur en fonction de la configuration de votre instance Spanner avant l'activation de l'autoscaler géré, ainsi que des limites que vous avez définies pour celui-ci.

Par exemple, si vous aviez l'habitude de configurer manuellement votre instance Spanner afin de disposer d'une capacité de calcul suffisante pour gérer les pics de charge de travail à tout moment, vos coûts peuvent être réduits avec l'autoscaler géré, car il réduit la capacité de calcul lorsque l'instance est inactive.

Si vous aviez l'habitude de configurer manuellement votre instance Spanner afin de disposer d'une capacité de calcul suffisante pour les charges de travail moyennes et que les performances globales se dégradent lorsque le trafic de votre charge de travail augmente, vos coûts avec l'autoscaler géré peuvent être plus élevés, car l'autoscaler géré peut augmenter la capacité de calcul lorsque l'instance est occupée. Cependant, les performances de vos utilisateurs sont plus constantes.

Vous pouvez limiter le coût maximal de votre instance Spanner en définissant le nombre maximal de nœuds ou d'unités de traitement au niveau que vous souhaitez dépenser.

Limites

Les limites suivantes s'appliquent lorsque vous activez ou modifiez la fonctionnalité d'autoscaling géré sur une instance:

  • Vous ne pouvez pas déplacer une instance lorsque la fonctionnalité d'autoscaler géré est activée. Vous devez d'abord désactiver l'autoscaler géré, puis déplacer l'instance. Après avoir déplacé l'instance, vous pouvez réactiver l'autoscaler géré.
  • Vous devez définir la limite minimale de l'instance avec autoscaling sur 1 000 unités de traitement ou plus, ou sur 1 nœud ou plus.
  • Lorsque vous activez l'autoscaling sur une instance existante, la capacité de l'instance existante peut être inférieure à la valeur limite minimale que vous configurez sur l'autoscaler géré. Cependant, l'instance effectue automatiquement un scaling à la hausse jusqu'à la valeur minimale configurée lorsque vous la démarrez. Par exemple, si votre instance comporte un nœud, mais que vous définissez la valeur minimale à deux nœuds, elle évolue automatiquement jusqu'à deux nœuds lorsque vous démarrez votre instance.

Paramètres de l'autoscaler géré

Lorsque vous créez ou modifiez une instance et que vous choisissez d'activer l'autoscaler géré, vous définissez les valeurs affichées dans le tableau suivant.

Paramètres Description
Objectif d'utilisation du processeur à haute priorité Pourcentage de la capacité de processeur à priorité élevée de l'instance. Cette valeur doit être comprise entre 10% et 90%. Lorsque l'utilisation du processeur d'une instance dépasse l'objectif que vous avez défini, Spanner ajoute immédiatement de la capacité de calcul à l'instance. Lorsque l'utilisation du processeur est nettement inférieure à l'objectif, Spanner supprime de la capacité de calcul. Pour en savoir plus, consultez la section Déterminer l'objectif d'utilisation du processeur.
Objectif d'utilisation du stockage Pourcentage de stockage sur un nœud que vous pouvez utiliser avant le scaling à la hausse de Spanner. Cette cible garantit que vous disposez toujours d'une capacité de calcul suffisante pour gérer les fluctuations de la quantité de données que vous stockez. Cette valeur doit être comprise entre 10 et 99%. Pour en savoir plus, consultez la section Déterminer l'objectif d'utilisation du stockage.
Limite minimale Capacité de calcul la plus faible à laquelle Spanner peut faire évoluer l'instance. La valeur minimale ne peut pas être inférieure à 10% de la valeur que vous avez définie pour la limite maximale. Par exemple, si la limite maximale est de 40 nœuds, la limite minimale doit être d'au moins 4 nœuds. La limite de 10 % est une limite stricte. Pour en savoir plus, consultez la section Déterminer la limite minimale.
Limite maximale Capacité de calcul maximale pouvant être atteinte par Spanner pour faire évoluer l'instance. Pour les nœuds, cette valeur doit être supérieure à 1 nœud (ou 1 000 unités de traitement) et égale ou supérieure au nombre minimal de nœuds ou d'unités de traitement. La valeur ne peut pas être plus de 10 fois la valeur que vous avez choisie pour la capacité de calcul minimale. Cette limite de 10 fois est une limite stricte. Pour en savoir plus, consultez la section Déterminer la limite maximale.

Configurer l'autoscaler géré

Cette section explique comment déterminer les nombres à choisir pour les paramètres de l'autoscaler géré. Après avoir défini vos valeurs initiales, surveillez votre instance et ajustez les valeurs si nécessaire.

Déterminer l'objectif d'utilisation du processeur

La cible optimale pour votre instance dépend des exigences de latence et de débit de votre charge de travail. Pour consulter nos recommandations concernant l'utilisation maximale du processeur pour les configurations d'instances régionales, birégionales et multirégionales, consultez la section Alertes en cas d'utilisation élevée du processeur.

En général, si vous constatez une latence inacceptable, vous devez réduire la cible d'utilisation du processeur.

Déterminer l'objectif d'utilisation du stockage

Pour l'autoscaling, l'objectif d'utilisation du stockage est exprimé en pourcentage par nœud. Pour les instances comportant un nœud (1 000 unités de traitement) ou plus, la taille de stockage est limitée à 4 To par nœud.

Déterminer la limite maximale

La valeur que vous choisissez comme quantité maximale de capacité de calcul est égale à la capacité de calcul dont l'instance a besoin pour gérer le trafic le plus dense, même si vous ne prévoyez pas d'atteindre ce volume la plupart du temps. Spanner n'effectue jamais un scaling à la hausse à la hausse ou à la baisse pour atteindre plus de capacité de calcul que nécessaire. Vous pouvez également considérer ce nombre comme la capacité de calcul la plus élevée que vous êtes prêt à payer. Pour en savoir plus sur les valeurs acceptées, consultez la section Paramètres de l'autoscaler.

La limite maximale doit tenir compte à la fois de l'objectif d'utilisation du processeur et de l'objectif d'utilisation du stockage que vous avez défini pour l'autoscaling.

  • Si vous passez de l'allocation manuelle à l'autoscaling géré pour une instance, recherchez la capacité de calcul la plus élevée de l'instance au cours des deux derniers mois. La limite maximale de votre autoscaler géré doit être au moins aussi élevée.

  • Si vous activez l'autoscaler géré pour une nouvelle instance, examinez les métriques des autres instances et utilisez-les comme guide lorsque vous définissez la limite maximale.

  • Si vous avez une nouvelle charge de travail et que vous n'êtes pas sûr de savoir comment elle va se développer, vous pouvez estimer la quantité de capacité de calcul dont vous avez besoin pour atteindre l'objectif d'utilisation du stockage intégré, puis ajuster ce nombre ultérieurement.

Vous devez également connaître le quota restant sur votre nœud, car l'autoscaler géré ne peut pas configurer votre instance pour disposer d'une capacité de calcul supérieure à votre quota. Pour en savoir plus, consultez la section Limites de nœuds.

Une fois que votre instance est opérationnelle et que l'autoscaling est activé, surveillez l'instance et assurez-vous que la valeur que vous avez choisie pour la limite maximale est au moins égale aux limites recommandées pour la cible du processeur et à la limite recommandée pour la cible de stockage.

Déterminer la limite minimale

Vous définissez une limite minimale pour l'autoscaler géré afin de vous assurer que votre instance Spanner peut effectuer un scaling à la baisse jusqu'à la taille la plus petite et la plus rentable. Spanner empêche automatiquement le nombre de nœuds de passer en dessous du minimum requis pour maintenir les objectifs d'utilisation du processeur et du stockage.

La valeur minimale autorisée par l'autoscaler géré est de 1 nœud ou 1 000 unités de traitement. Lorsque vous activez l'autoscaling pour une instance existante dont la capacité est inférieure à la valeur minimale configurée pour l'autoscaler géré, l'instance effectue automatiquement un scaling à la hausse jusqu'à cette valeur minimale lorsque vous la démarrez.

Après avoir démarré l'instance dotée de l'autoscaling géré, vous devez effectuer un premier test pour vous assurer qu'elle fonctionne avec la taille minimale définie. Effectuez des tests à nouveau régulièrement pour vous assurer qu'il continue de fonctionner comme prévu.

Pour en savoir plus sur les valeurs acceptées, consultez la section Paramètres de l'autoscaler géré de ce document.

Dans de nombreux cas, vous souhaiterez définir la valeur minimale sur plusieurs valeurs. Choisissez un nombre plus élevé ou augmentez la limite minimale dans les cas suivants:

  • Un événement de pic d'activité est prévu pour une augmentation temporaire de votre trafic, et vous souhaitez vous assurer que vous disposez d'une capacité de calcul suffisante.
  • Votre application envoie du trafic. Lorsque vous ajoutez de la capacité de calcul, Spanner rééquilibre automatiquement l'opération pour utiliser les nouveaux nœuds ou unités de traitement. Comme ce processus peut prendre plusieurs minutes, vous pouvez envisager d'adopter une approche conservatrice et de choisir une valeur minimale plus élevée. De cette façon, votre instance peut s'adapter parfaitement aux pics.
  • Vous augmentez la capacité de calcul maximale. La valeur minimale doit toujours être inférieure ou égale à 10 % de l'objectif de capacité de calcul maximale. Par exemple, si vous définissez le nombre maximal de nœuds sur 30, vous devez définir le nombre minimal de nœuds sur au moins 3.

Si vous augmentez la valeur de la capacité de calcul minimale sur une instance, Spanner tente immédiatement de faire évoluer l'instance au nouveau minimum. Les contraintes standards s'appliquent. Lorsque vous dépassez votre quota, votre demande de modification de la configuration de l'autoscaler géré échoue, et la configuration n'est pas mise à jour.

Options et limites des paramètres de la Google Cloud CLI

Lorsque vous configurez l'autoscaler géré à l'aide de la Google Cloud CLI, vous devez définir certains indicateurs obligatoires. Des indicateurs facultatifs vous permettent d'indiquer si vous souhaitez utiliser des nœuds ou des unités de traitement. Pour en savoir plus sur la création d'une instance avec l'autoscaler géré ou sur l'activation de l'autoscaling géré sur une instance existante, consultez les pages suivantes:

Les options suivantes sont requises lors de l'activation de l'autoscaler géré sur votre instance:

  • autoscaling-high-priority-cpu-percent
  • autoscaling-storage-percent

Si vous choisissez d'utiliser des nœuds, vous devez également utiliser les deux options suivantes lorsque vous activez l'autoscaler géré:

  • autoscaling-min-nodes
  • autoscaling-max-nodes

Si vous choisissez d'utiliser des unités de traitement, vous devez également utiliser les deux options suivantes lorsque vous activez l'autoscaler géré:

  • autoscaling-min-processing-units
  • autoscaling-max-processing-units

Les limites suivantes s'appliquent lors de l'ajout de l'autoscaler géré à une instance existante à l'aide de Google Cloud CLI:

  • Vous ne pouvez pas utiliser l'option --nodes avec les options --autoscaling-min-nodes ou --autoscaling-max-nodes, car l'utilisation de --nodes définit un nombre spécifique de nœuds plutôt qu'une plage de scaling. De même, vous ne pouvez pas utiliser l'option --processing-units avec les options autoscaling-min-processing-units ou autoscaling-max-processing-units, car l'utilisation de --processing-units définit un nombre spécifique d'unités de traitement plutôt qu'une plage de scaling.
  • Vous ne pouvez pas combiner les indicateurs pour les nœuds et les unités de traitement. Par exemple, vous ne pouvez pas utiliser --autoscaling-max-nodes avec autoscaling-min-processing-units.

Ajuster vos paramètres

Surveillez votre utilisation de la capacité de calcul et ajustez vos paramètres, si nécessaire, en particulier après avoir activé l'autoscaler géré pour la première fois. Nous vous recommandons d'utiliser la page Insights du système de la console Google Cloud.

Contrôle des accès

Pour configurer l'autoscaler géré, vous devez être un compte principal doté d'un rôle disposant des autorisations de création et de mise à jour pour l'instance que vous configurez.

Surveillance

Spanner fournit plusieurs métriques pour vous aider à comprendre le fonctionnement de l'autoscaler géré lorsqu'il effectue un scaling à la hausse ou à la baisse pour répondre aux exigences de la charge de travail. Les métriques peuvent également vous aider à évaluer si vos paramètres sont optimaux pour répondre aux exigences de votre entreprise concernant la charge de travail et les coûts. Par exemple, si vous constatez que le nombre de nœuds d'une instance est souvent proche du nombre maximal de nœuds, vous pouvez envisager d'augmenter le nombre maximal. Pour en savoir plus sur la surveillance de vos ressources Spanner, consultez la page Surveiller les instances avec Cloud Monitoring.

Les métriques suivantes sont affichées dans des graphiques sur la page Insights sur le système de la console Google Cloud. Vous pouvez également afficher ces métriques à l'aide de Cloud Monitoring.

  • spanner.googleapis.com/instance/autoscaling/min_node_count
  • spanner.googleapis.com/instance/autoscaling/max_node_count
  • spanner.googleapis.com/instance/autoscaling/min_processing_units
  • spanner.googleapis.com/instance/autoscaling/max_processing_units
  • spanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilization
  • spanner.googleapis.com/instance/autoscaling/storage_target_utilization

Journalisation

Spanner crée un journal d'audit des événements système chaque fois qu'il fait évoluer une instance.

Vous pouvez afficher les journaux d'événements système de l'autoscaler géré dans la console Google Cloud, sur la page Insights sur le système.

Vous pouvez également afficher les journaux à l'aide de l'explorateur de journaux:

  1. Dans la console Google Cloud, ouvrez l'explorateur de journaux:

    Accéder à l'explorateur de journaux

  2. Sélectionnez le projet Google Cloud approprié.

  3. Dans le champ Requête, saisissez ce qui suit :

     protoPayload.methodName="AutoscaleInstance"
    

    Vous pouvez ajouter la requête suivante pour filtrer davantage les journaux:

    resource.type="spanner_instance"
    resource.labels.instance_id=INSTANCE_ID
    resource.labels.project_id=PROJECT_ID
    logName="projects/span-cloud-testing/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="AutoscaleInstance"
  4. Cliquez sur Exécuter la requête.

Le volet Résultats de la requête affiche les journaux de la dernière heure.

Pour en savoir plus sur l'affichage des journaux, consultez la page Cloud Logging. Vous pouvez configurer des alertes basées sur les journaux sur la page Explorateur de journaux de Google Cloud ou à l'aide de l'API Cloud Monitoring.

Étapes suivantes