Autoscaler géré

Cette page décrit le fonctionnement de l'autoscaler géré, ainsi que les coûts et les limites associés à 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. La fonctionnalité d'autoscaler géré réagit aux changements dans la charge de travail ou les besoins de stockage de votre instance à mesure que votre charge augmente ou diminue. L'autoscaling géré augmente la capacité de calcul de l'instance ou la réduit.

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 grandes instances. 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 la redimensionne à 12 nœuds.

À mesure que la capacité de calcul évolue, Spanner optimise en permanence le stockage. Il rééquilibre les données entre tous les serveurs pour s'assurer que le trafic est réparti de manière uniforme et qu'aucun serveur 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 avoir une latence plus élevée ou échouer. Si une instance est mise à l'échelle jusqu'à sa cible de capacité de calcul maximale, 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 la cible maximale est atteinte, vous pouvez consulter 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 réduit la taille d'une instance, il supprime la capacité de calcul à un rythme plus lent que lors d'un scaling à la hausse, afin de réduire tout impact sur la latence.

Vous pouvez choisir d'effectuer l'autoscaling asymétrique de vos instances répliquées en lecture seule. Pour en savoir plus, consultez la section Autoscaling asymétrique en lecture seule.

Coûts

Vos coûts Spanner totaux peuvent être inférieurs ou supérieurs, en fonction de la façon dont vous avez configuré votre instance Spanner avant d'activer l'autoscaler géré et des limites que vous avez définies pour l'autoscaler géré.

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

Si vous aviez l'habitude de configurer manuellement votre instance Spanner pour 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. Toutefois, cela offre à vos utilisateurs des performances plus cohérentes.

Vous pouvez limiter le coût maximal de votre instance Spanner en définissant la limite maximale 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'autoscaling géré est activée. Vous devez d'abord désactiver l'autoscaler géré, puis déplacer l'instance. Une fois l'instance déplacée, vous pouvez réactiver l'autoscaler géré.
  • Vous devez définir la limite minimale de l'instance d'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 de limite minimale que vous configurez sur l'autoscaler géré. Toutefois, l'instance est automatiquement redimensionnée à 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 sur deux nœuds, elle est automatiquement mise à l'échelle 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 indiquées dans le tableau suivant.

Paramètre Description
Objectif d'utilisation du processeur à haute priorité Pourcentage de la capacité du 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 la cible que vous avez définie, Spanner ajoute immédiatement de la capacité de calcul à l'instance. Lorsque l'utilisation du processeur est nettement inférieure à la cible, Spanner supprime la capacité de calcul. Pour obtenir des conseils, 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 que Spanner ne procède au scaling à la hausse. Cet objectif 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 obtenir des conseils, consultez la section Déterminer l'objectif d'utilisation du stockage.
Limite minimale Quantité minimale de capacité de calcul à laquelle Spanner réduit 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 à laquelle Spanner fait évoluer l'instance. Pour les nœuds, cette valeur doit être supérieure à un 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. Cette valeur ne peut pas dépasser 10 fois le nombre que vous avez choisi pour la capacité de calcul minimale. Dix fois l'exigence 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 vos paramètres d'autoscaler gérés. 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'instance régionales, bi-régionales et multirégionales, consultez la section Alertes en cas d'utilisation intensive 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 de 1 nœud (1 000 unités de traitement) et plus, la taille de stockage est limitée à 10 To par nœud.

Déterminer la limite maximale

La valeur que vous choisissez comme capacité de calcul maximale 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 ne fait jamais évoluer plus que la capacité de calcul dont il a besoin. Vous pouvez également considérer ce nombre comme la capacité de calcul maximale 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 définissez pour l'autoscaling.

  • Si vous passez d'une allocation manuelle à une mise à l'échelle automatique gérée pour une instance, recherchez la capacité de calcul la plus élevée que l'instance a eue 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 ne savez pas 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 le nombre plus tard.

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

Une fois votre instance opérationnelle avec l'autoscaling activé, surveillez-la et assurez-vous que la valeur que vous avez choisie pour la limite maximale est au moins égale à la limite recommandée pour la cible de 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 cibles d'utilisation du processeur et du stockage.

La valeur minimale la plus faible autorisée par l'autoscaler géré est de 1 nœud ou de 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 est automatiquement redimensionnée à cette valeur minimale lorsque vous la démarrez.

Après avoir démarré l'instance qui a géré l'autoscaling, vous devez effectuer un test initial pour vous assurer qu'elle fonctionne à la taille minimale définie. Vous devez effectuer des tests périodiquement 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 devez définir la valeur minimale sur plusieurs valeurs. Choisissez un nombre plus élevé ou augmentez la limite minimale pour les situations suivantes:

  • Vous avez un événement à venir, lorsque vous prévoyez une augmentation temporaire de votre trafic, et que vous souhaitez vous assurer que vous disposez de suffisamment de capacité de calcul.
  • Votre application envoie du trafic. Lorsque vous ajoutez de la capacité de calcul, Spanner rééquilibre automatiquement les nouveaux nœuds ou unités de traitement. Étant donné que ce processus peut prendre plusieurs minutes, vous pouvez envisager d'adopter une approche prudente et de choisir une valeur minimale plus élevée. Votre instance pourra ainsi s'adapter facilement aux pics.
  • Vous augmentez la capacité de calcul maximale. Ce minimum doit toujours être égal à 10 % ou plus de la cible 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 procéder au scaling de l'instance au nouveau minimum. Les contraintes standards s'appliquent. Lorsque vous avez atteint votre quota, votre demande de modification de la configuration de l'autoscaler géré échoue et la configuration n'est pas mise à jour.

Après avoir configuré l'autoscaler géré pour la première fois, et régulièrement par la suite, testez votre instance pour vous assurer qu'elle fonctionne à la taille minimale.

Options et limites des paramètres de Google Cloud CLI

Lorsque vous utilisez Google Cloud CLI pour configurer l'autoscaler géré, vous devez définir certaines options obligatoires. Vous pouvez utiliser des indicateurs facultatifs pour 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 l'activation de l'autoscaling géré sur une instance existante, consultez les pages suivantes:

Les options suivantes sont obligatoires lorsque vous activez 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 indicateurs suivants 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 indicateurs suivants lorsque vous activez l'autoscaler géré:

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

Les limites suivantes s'appliquent lorsque vous ajoutez l'autoscaler géré à une instance existante à l'aide de la Google Cloud CLI:

  • Vous ne pouvez pas utiliser l'option --nodes avec les options --autoscaling-min-nodes ou --autoscaling-max-nodes, car l'option --nodes définit un nombre spécifique de nœuds plutôt qu'une plage de mise à l'échelle. 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 mise à l'échelle.
  • 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 système de la console Google Cloud.

Autoscaling asymétrique en lecture seule

Une fois l'autoscaler géré activé, vous pouvez également activer et mettre à l'échelle automatiquement vos réplicas en lecture seule indépendamment des autres réplicas. L'autoscaling asymétrique en lecture seule vous permet de contrôler les limites de capacité de calcul et les cibles d'utilisation du processeur de vos régions en lecture seule en fonction de leur utilisation. Cela optimise les modèles de trafic de lecture locale et améliore la rentabilité. Les paramètres de configuration d'autoscaling suivants sont configurables pour chaque région d'instance dupliquée en lecture seule:

  • Limite de capacité de calcul minimale
  • Limite de capacité de calcul maximale
  • Objectif d'utilisation du processeur à haute priorité

Vous pouvez activer l'autoscaling asymétrique et configurer ces paramètres en créant une instance ou en mettant à jour une instance existante.

Pour chaque réplica, les règles suivantes s'appliquent lorsque vous activez l'autoscaling asymétrique sur une instance existante:

  • Si la capacité de calcul actuelle du réplica se situe entre les valeurs minimale et maximale d'autoscaling définies pour la région, la capacité de calcul du réplica ne change pas.
  • Si la capacité de calcul actuelle du réplica est inférieure au minimum d'autoscaling défini pour la région, la capacité de calcul est ajustée pour correspondre au minimum d'autoscaling.
  • Si la capacité de calcul actuelle du réplica est supérieure au maximum d'autoscaling défini pour la région, la capacité de calcul est ajustée pour correspondre au maximum d'autoscaling.

Contrôle des accès

Pour configurer l'autoscaler géré, vous devez être un compte principal doté des autorisations de création et de modification pour l'instance que vous configurez.

Surveillance

Spanner fournit plusieurs métriques qui vous permettent de comprendre le fonctionnement de l'autoscaler géré lorsqu'il évolue à la hausse ou à la baisse pour répondre aux exigences de la charge de travail. Les métriques peuvent également vous aider à déterminer si vos paramètres sont optimaux pour répondre aux exigences de charge de travail et de coût de votre entreprise. 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 cette valeur maximale. Pour en savoir plus sur la surveillance de vos ressources Spanner, consultez la page Surveiller des instances avec Cloud Monitoring.

Les métriques suivantes s'affichent dans des graphiques sur la page Insights 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 procède au scaling d'une instance. Chaque journal des événements contient un texte de description et des métadonnées associées à l'événement d'autoscaling.

Afficher les journaux sur la page "Insights système"

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.

  1. Dans la console Google Cloud, ouvrez Spanner:

    Accéder à Spanner

  2. Sélectionnez l'instance avec autoscaling activé.

  3. Dans le menu de navigation, cliquez sur Insights système.

  4. Sur la page "Insights système", accédez à la métrique Capacité de calcul.

  5. Cliquez sur Afficher les journaux pour ouvrir le panneau des journaux.

    Le volet Journaux de la capacité de calcul affiche les journaux de la dernière heure.

    Si l'autoscaling asymétrique en lecture seule est activé pour votre instance, le récapitulatif du journal fournit une description et l'emplacement des modifications de la capacité de calcul de chaque réplica. Par exemple, Increased from 1 to 2 nodes in us-central1 to maintain high priority CPU utilization at 80%. Si vous n'utilisez pas l'autoscaling asymétrique, les informations de localisation ne sont pas fournies dans le récapitulatif du journal. Exemple : Increased from 9 to 10 nodes to maintain high priority CPU utilization at 65%.

Afficher les journaux à l'aide de l'explorateur de journaux

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 affiner 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 la Google Cloud ou à l'aide de l'API Cloud Monitoring.

Étape suivante