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. Vous pouvez activer l'autoscaler géré dans votre instance ou partition d'instance Spanner (en Preview). La fonctionnalité d'autoscaler géré réagit aux changements de charge de travail ou de besoins de stockage de votre instance lorsque votre charge augmente ou diminue. L'autoscaler géré augmente la capacité de calcul de l'instance ou la diminue.
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, le terme capacité de calcul désigne 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 totale du CPU
- 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 sur 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é augmente la taille d'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 jusqu'à sa capacité de calcul maximale cible, mais que la charge de travail a besoin de plus 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 Informations système. Pour en savoir plus, consultez Limites de stockage.
Lorsque Spanner réduit la taille d'une instance, il supprime la capacité de calcul plus lentement que lorsqu'il l'augmente, afin de limiter tout impact sur la latence.
Vous pouvez choisir d'autoscaler de manière asymétrique les instances répliquées en lecture seule. Vous ne pouvez pas effectuer un autoscaling asymétrique des partitions d'instance. Pour en savoir plus, consultez Autoscaling asymétrique en lecture seule.
Tarifs
Vos coûts Spanner totaux peuvent être inférieurs ou supérieurs selon la façon dont vous avez configuré votre instance ou partition d'instance Spanner avant d'activer l'autoscaler géré, et selon les limites que vous avez définies pour l'autoscaler géré.
Par exemple, si vous configuriez manuellement votre instance Spanner pour qu'elle dispose d'une capacité de calcul suffisante pour gérer les pics de charge 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 configuriez manuellement votre instance Spanner pour qu'elle dispose 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 il peut augmenter la capacité de calcul lorsque l'instance est occupée. Toutefois, cela permet à vos utilisateurs de bénéficier de 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.
Vous constaterez peut-être une augmentation de la capacité de calcul utilisée et, par conséquent, des coûts lorsque vous définissez un objectif d'utilisation totale du processeur sur votre instance Spanner, par rapport à la définition d'un objectif d'utilisation du processeur à priorité élevée uniquement. Toutefois, l'expérience de l'utilisateur final est nettement meilleure et les performances sont améliorées lorsque cette option est définie.
Limites
Les limites suivantes s'appliquent lorsque vous activez ou modifiez la fonctionnalité d'autoscaling géré sur une instance ou une partition d'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 le scaling automatique 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 limite minimale que vous configurez sur l'autoscaler géré. Toutefois, l'instance est automatiquement mise à l'échelle jusqu'à la valeur minimale configurée lorsque vous la démarrez. Par exemple, si votre instance ne comporte qu'un seul nœud, mais que vous définissez la valeur minimale sur deux nœuds, lorsque vous démarrerez votre instance, elle passera automatiquement à deux nœuds.
- Vous ne pouvez pas effectuer un autoscaling asymétrique des partitions d'instance.
- Si le nombre de lignes d'emplacements dans votre partition est supérieur à 100 millions, n'activez pas l'autoscaling. Il s'agit d'une limite de partitionnement géographique.
Paramètres de l'autoscaler géré
Lorsque vous créez ou modifiez une instance ou une partition d'instance et que vous choisissez d'activer le scaling automatique 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é de processeur de l'instance à utiliser pour les tâches à priorité élevée. Cette valeur doit être comprise entre 10 % et 90 %. Lorsque l'utilisation du processeur à priorité élevée 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 de la capacité de calcul. Pour en savoir plus, consultez Déterminer l'objectif d'utilisation du processeur à haute priorité. |
| Objectif d'utilisation totale du CPU | Pourcentage de la capacité totale du processeur de l'instance à utiliser pour les tâches à priorité élevée, moyenne et faible. Cette valeur doit être comprise entre 10 % et 90 %. Lorsque l'utilisation totale 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 totale du processeur est nettement inférieure à la cible, Spanner supprime de la capacité de calcul. Pour en savoir plus, consultez Déterminer l'objectif d'utilisation totale 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 Déterminer l'objectif d'utilisation du stockage. |
| Limite minimale | Capacité de calcul minimale à 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 Déterminer la limite minimale. |
| Limite maximale | Capacité de calcul maximale jusqu'à 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 supérieure ou égale 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 quantité minimale de capacité de calcul. Dix fois l'exigence 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 les nombres à choisir pour les paramètres de votre 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 à priorité élevée
La cible optimale pour votre instance ou partition d'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 Alertes en cas d'utilisation intensive du processeur.
Lorsque l'utilisation du processeur est proche de 100 % ou la dépasse, les performances peuvent se dégrader. Si votre charge de travail est sensible à la latence ou aux performances, envisagez de personnaliser la cible de processeur totale en lui attribuant une valeur inférieure. Notez que cela peut entraîner des coûts plus élevés.
En général, si vous constatez une latence inacceptable, vous devez réduire la cible d'utilisation du processeur.
Vous pouvez également configurer des cibles pour l'utilisation totale du processeur et l'utilisation du processeur à priorité élevée. Pour en savoir plus, consultez Déterminer les deux objectifs d'utilisation du processeur.
Déterminer l'objectif d'utilisation totale du processeur
Lorsque vous définissez l'objectif d'utilisation totale du processeur, Spanner effectue un autoscaling pour garantir une capacité suffisante pour les tâches à priorité élevée, moyenne et faible.
Si vos charges de travail sont sensibles à la latence ou si vous souhaitez que les tâches système se terminent plus rapidement, vous devez définir une cible de processeur totale pour vous assurer que l'instance dispose d'une capacité suffisante. Lorsque la cible de processeur totale est définie, vous pouvez payer plus, mais vos applications offrent une meilleure expérience à vos clients.
Si la cible de processeur totale est définie et que vous constatez toujours une latence inacceptable, vous devez réduire la cible d'utilisation totale du processeur.
Pour optimiser le débit des écritures et de la création d'index, nous recommandons un objectif de processeur total de 70 % pour les instances régionales et de 50 % pour les instances multirégionales. Cela fonctionne également bien lors du basculement, si la cible à priorité élevée n'est pas sélectionnée. Toutefois, ces cibles peuvent entraîner des coûts plus élevés. Si le coût est un problème, nous vous recommandons de définir un objectif de processeur total de 85 %. Cela permet d'absorber les pics sans déclencher de latence causée par la saturation des ressources (utilisation à 100 %).
Par défaut, Spanner donne la priorité au trafic destiné aux utilisateurs en limitant les opérations en arrière-plan gourmandes en ressources (comme la création d'index). Vous pouvez accélérer ces opérations en arrière-plan en configurant un objectif d'utilisation totale du processeur plus faible (par exemple, <=60 %). Cela indique à l'autoscaler de provisionner des ressources de calcul supplémentaires, ce qui augmente le débit des tâches système. Cela peut toutefois augmenter les coûts. Si vous souhaitez augmenter temporairement le débit pour la création d'index, vous pouvez définir des cibles de processeur total plus faibles jusqu'à ce que la création d'index soit terminée.
Vous pouvez également configurer des cibles pour l'utilisation totale du processeur et l'utilisation du processeur à priorité élevée. Pour en savoir plus, consultez Déterminer les deux objectifs d'utilisation du processeur.
Déterminer les deux objectifs d'utilisation du processeur
Si vous configurez des cibles pour l'utilisation totale du processeur et pour l'utilisation du processeur à priorité élevée, le scaler automatique évalue les deux métriques simultanément. Il sélectionne ensuite le nombre de nœuds ou d'unités de traitement le plus élevé parmi les deux recommandations. Cela garantit que l'instance évolue pour répondre à l'exigence la plus contraignante, en maintenant les performances pour les charges de travail critiques tout en effectuant les tâches en arrière-plan.
Lorsque les cibles d'utilisation du processeur à priorité élevée et du processeur total sont définies, l'utilisation du processeur pour les tâches à priorité élevée fait partie de ce total, ainsi que les tâches à priorité faible et moyenne. Lorsque les deux options sont sélectionnées, la valeur de l'objectif d'utilisation du processeur à haute priorité doit être inférieure à celle de l'objectif d'utilisation totale du processeur.
En général, si vous constatez une latence inacceptable, vous devez réduire la cible d'utilisation du processeur.
En général, nous recommandons les cibles d'utilisation du processeur suivantes pour un basculement fiable :
| Type d'instance | Objectif d'utilisation totale du CPU | Objectif d'utilisation du processeur à haute priorité |
|---|---|---|
| Instance régionale | 70 % | 65 % |
| Instance multirégionale | 50 % | 45 % |
En fonction de votre charge de travail, nous vous recommandons également les cibles d'utilisation du processeur plus spécifiques suivantes :
| Type de charge de travail | Cibles de CPU recommandées | Compromis |
|---|---|---|
| Charge de travail axée sur l'écriture et sensible au débit | Objectif d'utilisation totale du CPU : 70 % | Débit plus élevé au détriment de la latence |
| Charge de travail sensible à la latence et axée sur la lecture | Objectif d'utilisation totale du processeur : 80 % Objectif d'utilisation du processeur à haute priorité : 65 % (régional) ou 45 % (multirégional) |
Latence de queue prévisible à un coût plus élevé |
| Charge de travail privilégiant la rentabilité | Objectif d'utilisation totale du processeur : 85 % Objectif d'utilisation du processeur à haute priorité : 65 % (régional) ou 45 % (multirégional) |
Coût et performances raisonnables avec une création d'index potentiellement retardée |
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 ou les partitions d'instance de 1 nœud (1 000 unités de traitement) et plus, la taille de stockage est limitée à 10 Tio 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 ou la partition d'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 Paramètres de l'autoscaler.
La limite maximale doit autoriser à la fois l'objectif d'utilisation du processeur et l'objectif d'utilisation du stockage que vous avez définis pour le scaling automatique.
Si vous passez d'une allocation manuelle à une mise à l'échelle automatique gérée, recherchez la capacité de calcul la plus élevée dont l'instance a disposé au cours du mois ou des deux mois précédents. 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 aurez besoin pour atteindre l'objectif d'utilisation du stockage intégré, puis ajuster le nombre plus tard.
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 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 ou partition d'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 plus petite 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 est automatiquement mise à l'échelle 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 des tests régulièrement pour vous assurer qu'il continue de fonctionner comme prévu.
Pour en savoir plus sur les valeurs acceptées, consultez Paramètres de l'autoscaler géré.
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 à grande échelle 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 se rééquilibre automatiquement pour utiliser les nouveaux nœuds ou unités de traitement. Étant donné que ce processus peut prendre plusieurs minutes, il est souvent préférable 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 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 moins3.
Si vous augmentez la valeur de la capacité de calcul minimale d'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 du scaler automatique 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 périodiquement 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 le scaling automatique géré, vous devez définir certaines options obligatoires. Des indicateurs facultatifs vous permettent d'indiquer si vous souhaitez utiliser des nœuds ou des unités de traitement. Pour savoir comment créer une instance ou une partition d'instance avec l'autoscaler géré, ou comment activer l'autoscaler géré sur une instance ou une partition d'instance existante, consultez les guides pratiques suivants :
- Créer une instance
- Activer ou modifier l'autoscaler géré sur une instance
- Créer une partition d'instance
- Activer ou modifier l'autoscaler géré sur une partition d'instances
Les options suivantes sont obligatoires lorsque vous activez l'autoscaler géré sur votre instance :
autoscaling-high-priority-cpu-percentautoscaling-total-cpu-percentautoscaling-storage-percent
Lorsque vous définissez le pourcentage de CPU, vous pouvez sélectionner l'une ou l'autre des options, ou les deux.
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-nodesautoscaling-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-unitsautoscaling-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
--nodesavec les options--autoscaling-min-nodesou--autoscaling-max-nodes, car l'utilisation de--nodesdé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-unitsavec les optionsautoscaling-min-processing-unitsouautoscaling-max-processing-units, car l'utilisation de--processing-unitsdé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-nodesavecautoscaling-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
Après avoir activé l'autoscaler géré, vous pouvez également activer et autoscaler vos répliques en lecture seule indépendamment des autres répliques. L'autoscaling asymétrique en lecture seule vous permet de contrôler les limites de capacité de calcul et les objectifs d'utilisation du processeur de vos régions en lecture seule en fonction de leur utilisation. Cela permet d'optimiser les modèles de trafic en lecture locale et d'améliorer l'efficacité des coûts. Les paramètres de configuration de l'autoscaling suivants sont configurables pour chaque région d'instance répliquée en lecture seule :
- Limite de capacité de calcul minimale
- Limite de capacité de calcul maximale
- Objectif d'utilisation du processeur à haute priorité
- Objectif d'utilisation totale du CPU
- Désactiver le processeur total
- Désactiver le CPU à priorité élevée
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 de l'autoscaling définies pour la région, la capacité de calcul du réplica ne change pas.
- Si la capacité de calcul actuelle de la réplique est inférieure au minimum d'autoscaling défini pour la région, elle est ajustée pour correspondre à ce minimum.
- Si la capacité de calcul actuelle du réplica est supérieure au maximum d'autoscaling défini pour la région, elle est ajustée pour correspondre à ce maximum.
- Si les deux cibles de CPU sont définies au niveau de base et que vous souhaitez désactiver la cible de CPU au niveau du réplica, vous devez utiliser explicitement
disable_total_cpu_autoscalingoudisable_high_priority_cpu_autoscaling.
De plus, lorsque vous utilisez l'autoscaler asymétrique, nous vous recommandons de définir le même ensemble de cibles pour toutes les répliques afin de garantir un comportement d'autoscaling cohérent lors des événements de basculement. Pour en savoir plus, consultez Problèmes de basculement.
Problèmes de basculement
Pour maintenir une haute disponibilité et des performances élevées en cas d'indisponibilité, vous devez vous assurer que votre instance dispose d'une capacité de calcul suffisante pour gérer le trafic si une zone (pour les instances régionales) ou une région entière (pour les instances birégionales et multirégionales) devient indisponible.
Lorsque vous utilisez l'autoscaler asymétrique, il est essentiel d'appliquer les mêmes cibles d'utilisation à tous les réplicas. Des configurations incohérentes peuvent entraîner des goulots d'étranglement de capacité lors d'un basculement.
Imaginez le scénario suivant :
- La réplique A est configurée avec des objectifs de CPU à priorité élevée et totale.
- La réplique B n'est configurée qu'avec un objectif de CPU à priorité élevée.
Si un basculement transfère le trafic de la réplique A vers la réplique B, la réplique B ne s'adapte qu'en fonction des requêtes à haute priorité. Par conséquent, les tâches de priorité moyenne et basse (telles que les processus système en arrière-plan ou les requêtes analytiques) ne déclenchent pas l'autoscaling nécessaire sur la réplique B, ce qui peut entraîner une famine de tâches ou une latence accrue pour les charges de travail non critiques.
Pour éviter tout problème, nous vous recommandons de suivre les conseils ci-dessous :
- Définissez toujours des cibles d'autoscaler identiques pour toutes les répliques afin de garantir un comportement d'autoscaling cohérent. Par exemple, imaginez que vous configurez une réplique en lecture seule avec un objectif de CPU à priorité élevée et un objectif de CPU total. Si l'instance répliquée en lecture/écriture ne définit que la cible de processeur à haute priorité, le trafic à priorité moyenne et faible ne déclenchera pas l'autoscaling sur l'instance répliquée en lecture/écriture lors du basculement.
- Assurez-vous que votre utilisation cible dispose d'une capacité suffisante pour les pics de trafic qui se produisent lorsqu'un réplica doit soudainement absorber la charge d'un pair défaillant.
- Examinez régulièrement vos métriques Cloud Monitoring pour vérifier que les répliques secondaires disposent de la capacité requise pour gérer le trafic combiné de votre déploiement principal.
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 mise à jour pour l'instance ou la partition d'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 ou d'une partition d'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 Surveiller les instances avec Cloud Monitoring.
Les métriques suivantes s'affichent dans les 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_countspanner.googleapis.com/instance/autoscaling/max_node_countspanner.googleapis.com/instance/autoscaling/min_processing_unitsspanner.googleapis.com/instance/autoscaling/max_processing_unitsspanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilizationspanner.googleapis.com/instance/autoscaling/total_cpu_target_utilizationspanner.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 ou d'une partition d'instance. Chaque journal d'événements contient un texte descriptif et des métadonnées lié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 consoleGoogle Cloud sur la page Informations système.
Dans la console Google Cloud , ouvrez Spanner :
Sélectionnez l'instance ou la partition d'instance pour laquelle l'autoscaling est activé.
Dans le menu de navigation, cliquez sur Insights sur le système.
Sur la page "Insights système", accédez à la métrique Capacité de calcul.
Cliquez sur Afficher les journaux pour ouvrir le panneau des journaux.
Le volet Journaux de 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 des journaux fournit une description et l'emplacement de chaque modification de la capacité de calcul des réplicas. 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%. Vous pouvez également voir quand des nœuds sont ajoutés pour maintenir l'objectif d'utilisation totale du processeur.
Afficher les journaux à l'aide de l'explorateur de journaux
Vous pouvez également afficher les journaux à l'aide de l'explorateur de journaux :
Dans la console Google Cloud , ouvrez l'explorateur de journaux :
Sélectionnez le projet Google Cloud approprié.
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/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstance"
Pour afficher les journaux des requêtes exécutées dans une partition d'instance non définie par défaut, saisissez :
resource.type="spanner_instance" resource.labels.instance_id=INSTANCE_ID resource.labels.project_id=PROJECT_ID logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstancePartition"
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 console Google Cloud ou à l'aide de l'API Cloud Monitoring.
Étapes suivantes
- Découvrez comment créer une instance avec l'autoscaler géré activé.
- Découvrez comment modifier une instance pour utiliser l'autoscaling ou modifier les paramètres d'autoscaling.
- Découvrez comment passer de l'autoscaling au scaling manuel pour une instance.
- Découvrez comment créer une partition d'instance avec l'autoscaler géré activé.
- Découvrez comment modifier une partition d'instance pour utiliser l'autoscaling ou modifier les paramètres d'autoscaling.