Autoscaler géré

Cette page décrit le fonctionnement de l'autoscaler géré, et décrit les coûts et les limites applicables à 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 des besoins de charge de travail ou 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 évolue à la baisse (ce qui supprime de 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é de 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 taille 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 capacité de calcul change, Spanner optimise en permanence le stockage. Il rééquilibre les données sur tous les serveurs pour garantir que le trafic est réparti de manière uniforme et qu'aucun serveur individuel n'est surchargé. Pour en savoir plus, consultez 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 évolue à la hausse jusqu'à sa capacité de calcul cible maximale, mais que la charge de travail a besoin de 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 afficher les journaux des événements système de l'autoscaler géré dans la console Google Cloud, sur la page Insights sur le 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 d'un 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é et des limites que vous définissez pour l'autoscaler géré.

Par exemple, si vous avez configuré manuellement votre instance Spanner pour disposer d'une capacité de calcul suffisante pour gérer des pics de charges de travail à 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 configuré 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 la charge de travail augmente, les coûts liés à 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 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 d'autoscaling sur 1 000 unités de traitement ou plus, ou sur un 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é. 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 sur deux nœuds, lorsque vous démarrez l'instance, elle évolue automatiquement jusqu'à deux nœuds.

Paramètres d'autoscaler gérés

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

Paramètres Description
Objectif d'utilisation du processeur à haute priorité Pourcentage de la capacité de processeur de haute priorité 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 sensiblement inférieure à l'objectif, 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 d'espace de stockage que vous pouvez utiliser sur un nœud 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 obtenir des conseils, consultez la section Déterminer l'objectif d'utilisation du stockage.
Limite minimale Valeur la plus faible de capacité de calcul jusqu'à laquelle Spanner effectue le scaling à la baisse de l'instance. La valeur minimale ne peut pas être inférieure à 10% de la valeur 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 Déterminer la limite minimale.
Limite maximale La capacité de calcul la plus élevée jusqu'à laquelle Spanner peut effectuer le scaling de l'instance. Pour les nœuds, cette valeur doit être supérieure à 1 nœud (ou 1 000 unités de traitement) et supérieure ou égale au nombre minimal de nœuds ou d'unités de traitement. Cette valeur ne peut pas être plus de 10 fois supérieure au nombre que vous choisissez pour la quantité minimale de capacité de calcul. Cette exigence de 10 fois est une limite stricte. Pour en savoir plus, consultez Déterminer la limite maximale.

Configurer l'autoscaler géré

Cette section explique comment déterminer le nombre à choisir pour les paramètres de l'autoscaler géré. Une fois que vous avez défini les valeurs initiales, surveillez votre instance et ajustez les chiffres 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. Consultez la section Alertes en cas d'utilisation intensive du processeur pour consulter nos recommandations d'utilisation maximale du processeur pour les instances régionales et multirégionales.

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 composées d'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 important, même si vous ne prévoyez pas d'atteindre ce volume la plupart du temps. Spanner n'augmente jamais la capacité de calcul nécessaire. Ce nombre peut également être considéré comme la capacité de calcul la plus élevée que vous êtes prêt à payer. Consultez la section Paramètres de l'autoscaler pour en savoir plus sur les valeurs acceptées.

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 une instance de l'allocation manuelle à l'autoscaling géré, déterminez la capacité de calcul la plus élevée que l'instance a eue au cours des un ou 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, consultez 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 évoluer, 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 qu'elle dispose d'une capacité de calcul supérieure à votre quota. Pour en savoir plus, consultez Limites de nœuds.

Une fois que votre instance est opérationnelle avec l'autoscaling activé, surveillez l'instance et assurez-vous que la valeur que vous avez choisie pour la limite maximale est au moins égale à la limite recommandée pour l'objectif 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 de la taille de sorte qu'elle atteigne la taille la plus petite et la plus rentable. Spanner empêche automatiquement le nombre de nœuds de passer en dessous du seuil minimal requis pour maintenir les objectifs d'utilisation du processeur et de l'espace de stockage.

La valeur minimale autorisée par l'autoscaler géré est un 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 avec autoscaling géré, vous devez effectuer un test initial pour vous assurer qu'elle fonctionne à la taille minimale définie. Vous devez effectuer de nouveaux tests régulièrement pour vous assurer qu'il continue de fonctionner comme prévu.

Pour plus d'informations sur les valeurs acceptées, consultez la section Paramètres d'autoscaler gérés 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:

  • Vous avez un événement de pic d'échelle à venir lorsque vous prévoyez une augmentation temporaire de votre trafic et que vous souhaitez vous assurer que vous disposez d'une capacité de calcul suffisante.
  • Votre application envoie du trafic. Lorsque vous ajoutez une nouvelle capacité de calcul, Spanner procède automatiquement à un rééquilibrage pour utiliser les nouveaux nœuds ou unités de traitement. Comme ce processus peut prendre plusieurs minutes, vous pouvez adopter une approche prudente et choisir une valeur minimale plus élevée. De cette façon, votre instance s'adapte facilement aux pics.
  • Vous augmentez la capacité de calcul maximale. La valeur minimale doit toujours être inférieure ou égale à 10 % de la capacité de calcul maximale cible. 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 3 au minimum.

Si vous augmentez la valeur de la capacité de calcul minimale d'une instance, Spanner essaie immédiatement d'appliquer la nouvelle valeur minimale à l'instance. 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.

Indicateurs et limites des paramètres Google Cloud CLI

Lorsque vous utilisez Google Cloud CLI pour configurer l'autoscaler géré, vous devez définir certains indicateurs obligatoires. Des options facultatives 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 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 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'option --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'option --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 options des nœuds et des 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 System Insights (Insights système) de la console Google Cloud.

Contrôle des accès

Pour configurer l'autoscaler géré, vous devez avoir un rôle principal disposant d'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. Ces métriques peuvent également vous aider à déterminer si vos paramètres sont optimaux pour répondre aux exigences de votre entreprise en termes de charge de travail et de coût. 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 des ressources Spanner, consultez la page Surveiller des instances avec Cloud Monitoring.

Les métriques suivantes sont affichées dans les graphiques de la page System Insights (Statistiques 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 des é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