Autoscaling

Cette page explique le fonctionnement de l'autoscaling. Avant de lire cette page, vous devez avoir consulté les articles Présentation de Bigtable et Instances, clusters et nœuds.

Dans Bigtable, les instances sont des conteneurs pour les clusters, qui sont des ressources spécifiques à l'emplacement qui traitent les requêtes. Chaque cluster possède un ou plusieurs nœuds, qui correspondent à des ressources de calcul permettant de gérer vos données. Lorsque vous créez un cluster dans une instance, vous devez choisir l'allocation manuelle des nœuds ou l'autoscaling.

Avec l'allocation manuelle de nœuds, le nombre de nœuds dans le cluster reste constant jusqu'à ce que vous le modifiiez. Lorsque l'autoscaling est activé, Bigtable surveille en permanence le cluster et ajuste automatiquement le nombre de nœuds dans le cluster si nécessaire. L'autoscaling fonctionne sur les clusters HDD et SSD, dans toutes les régions Bigtable.

Vous pouvez configurer l'autoscaling dans la console Google Cloud , à l'aide de gcloud ou de la bibliothèque cliente Cloud Bigtable pour Java.

Quand utiliser l'autoscaling

Nous vous recommandons d'activer le scaling automatique dans la plupart des cas. L'autoscaling présente les avantages suivants :

  • Coûts : l'autoscaling peut vous aider à optimiser les coûts, car Bigtable réduit le nombre de nœuds de votre cluster autant que possible. Cela peut vous aider à éviter le surprovisionnement.
  • Performances : l'autoscaling permet à Bigtable d'ajouter automatiquement des nœuds à un cluster lorsqu'une charge de travail change ou lorsque les besoins en stockage de données augmentent. Cela permet de maintenir les objectifs de performances des charges de travail en garantissant que le cluster dispose de suffisamment de nœuds pour répondre aux exigences d'utilisation et de stockage cibles du processeur.
  • Automatisation : l'autoscaling réduit la complexité de gestion. Vous n'avez pas besoin de surveiller et de faire évoluer le cluster manuellement, ni d'écrire une application pour effectuer ces tâches, car le service Bigtable les gère pour vous.

L'autoscaling seul peut ne pas fonctionner correctement pour les types de charges de travail suivants, car même si Bigtable ajoute rapidement des nœuds lorsque le trafic augmente, l'équilibrage des nœuds supplémentaires peut prendre du temps.

  • Trafic intensif
  • Charges de travail par lot soudaines

Si vos pics d'utilisation sont prévisibles ou régulièrement planifiés, vous pouvez utiliser l'autoscaling et ajuster les paramètres avant l'utilisation intensive prévue. Pour en savoir plus, consultez la section Délai pendant le rééquilibrage des nœuds.

Fonctionnement de l'autoscaling

L'autoscaling est le processus de scaling automatique ou de modification de la taille d'un cluster en ajoutant ou en supprimant des nœuds. Lorsque vous activez l'autoscaling, Bigtable ajuste automatiquement la taille de votre cluster. Lorsque la charge de travail ou les besoins de stockage de votre cluster fluctuent, Bigtable évolue à la hausse, en ajoutant des nœuds au cluster ou effectue un scaling à la baisse en supprimant les nœuds du cluster.

L'autoscaling Bigtable détermine le nombre de nœuds requis, en fonction des facteurs suivants :

  • Objectif d'utilisation du CPU
  • Objectif d'utilisation du stockage
  • Nombre minimal de nœuds
  • Nombre maximal de nœuds

Chaque dimension de scaling génère un nombre de nœuds recommandé, et Bigtable utilise automatiquement le plus élevé. Cela signifie, par exemple, que si votre cluster 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, Bigtable le redimensionne à 12 nœuds.

À mesure que le nombre de nœuds évolue, Bigtable optimise en permanence le stockage, en rééquilibrant les données entre les nœuds, afin d'assurer une répartition uniforme du trafic et de ne pas surcharger les nœuds.

Une fois qu'un cluster est mis à l'échelle, Bigtable rééquilibre automatiquement les nœuds de votre cluster pour optimiser les performances. Toutes les requêtes continuent d'atteindre le cluster pendant le scaling et le rééquilibrage. Pour en savoir plus, consultez la section Limites de scaling.

Si un cluster a évolué jusqu'à son nombre maximal de nœuds et que la cible d'utilisation du processeur est dépassée, les requêtes peuvent avoir une latence élevée ou échouer. Si un cluster a atteint un nombre maximal de nœuds et que la limite d'utilisation du stockage est dépassée, les requêtes d'écriture échouent. Pour en savoir plus sur les limites de stockage, consultez la section Stockage par nœud.

Lorsqu'un nœud est ajouté à un petit cluster, tel qu'un cluster à un seul nœud, vous pouvez observer une augmentation temporaire de la latence à mesure que le cluster se rééquilibre. En effet, le nœud supplémentaire double proportionnellement la taille du cluster. De même, si la taille d'un cluster passe de deux nœuds à un seul, une certaine latence peut se produire.

Lorsqu'un cluster est réduit, les nœuds sont supprimés plus lentement que lors d'un scaling à la hausse, afin d'éviter tout impact sur la latence. Pour en savoir plus, consultez la section Limites de scaling.

Paramètres d'autoscaling

Lorsque vous créez ou modifiez un cluster et que vous choisissez l'autoscaling, vous définissez les valeurs de la cible d'utilisation du processeur, du nombre minimal de nœuds et du nombre maximal de nœuds. Vous pouvez configurer l'objectif d'utilisation du stockage ou le conserver par défaut, qui est de 50 % (2,5 To pour le disque SSD et 8 To pour le disque dur HDD).

Paramètre Description
Objectif d'utilisation du CPU

Pourcentage de la capacité du processeur du cluster. Peut aller de 10 % à 80 %. Lorsque l'utilisation du processeur d'un cluster dépasse la cible que vous avez définie, Bigtable ajoute immédiatement des nœuds au cluster. Lorsque l'utilisation du processeur est nettement inférieure à la cible, Bigtable supprime les nœuds. Pour obtenir des conseils, consultez la section Déterminer l'objectif d'utilisation du processeur.

Nombre minimal de nœuds

Nombre minimal de nœuds vers lesquels Bigtable effectuera le scaling à la baisse du cluster. Si le scaling de nœuds X2 est activé, ce nombre doit être pair. Cette valeur doit être supérieure à zéro et ne peut pas être inférieure à 10 % de la valeur que vous avez définie pour le nombre maximal de nœuds. Par exemple, si le nombre maximal de nœuds est de 40, le nombre minimal de nœuds doit être au moins égal à 4. La limite de 10 % est une limite stricte. Pour en savoir plus, consultez la section Déterminer le nombre minimal de nœuds.

Nombre maximal de nœuds

Nombre maximal de nœuds que vous souhaitez autoriser à faire évoluer le cluster. Si le scaling de nœuds X2 est activé, ce nombre doit être pair. Cette valeur doit être supérieure à zéro, et supérieure ou égale au nombre minimal de nœuds. Cette valeur ne peut pas dépasser 10 fois le nombre que vous avez choisi pour le nombre minimal de nœuds. Dix fois l'exigence est une limite stricte. Pour en savoir plus, consultez la section Déterminer le nombre maximal de nœuds.

Objectif d'utilisation du stockage

Nombre maximal de téraoctets par nœud que vous pouvez stocker dans des clusters SSD ou HDD avant que Bigtable ne procède au scaling à la hausse. Cet objectif garantit que vous disposez toujours de suffisamment de nœuds pour gérer les fluctuations de la quantité de données que vous stockez. Pour en savoir plus, consultez Déterminer l'objectif d'utilisation du stockage. Cette cible n'inclut pas le niveau d'accès peu fréquent.

Utilisation combinée des disques SSD et de l'accès peu fréquent

Nombre maximal de téraoctets par nœud que vous pouvez stocker dans les clusters SSD et à accès peu fréquent avant que Bigtable ne procède au scaling à la hausse. Cet objectif garantit que vous disposez toujours de suffisamment de nœuds pour gérer les fluctuations de la quantité de données que vous stockez. Pour en savoir plus, consultez la section Stockage par niveaux et autoscaling de ce document.

Configurer l'autoscaling

Cette section explique comment choisir vos paramètres d'autoscaling. Après avoir défini vos valeurs initiales, surveillez votre cluster et ajustez les valeurs si nécessaire.

Déterminer l'objectif d'utilisation du processeur

Basez l'objectif d'utilisation du processeur sur votre charge de travail unique. La cible optimale pour votre cluster dépend des exigences de latence et de débit de votre charge de travail. Pour en savoir plus, consultez Planifier votre capacité Bigtable.

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

Si votre application est sensible à la latence, maintenez l'utilisation du stockage en dessous de 60%. Si votre application n'est pas sensible à la latence, vous pouvez choisir une cible d'utilisation du stockage de 70% ou plus. Pour en savoir plus, consultez la section Planifier la capacité Bigtable.

Pour l'autoscaling, l'utilisation du stockage est exprimée sous forme de nombre d'octets de stockage par nœud plutôt que sous forme de pourcentage. La cible d'utilisation du stockage est spécifiée par nœud, mais elle est appliquée à l'ensemble du cluster. Les limites de capacité pour les nœuds sont de 5 To par nœud pour le stockage SSD et de 16 To par nœud pour le stockage HDD.

Le tableau suivant indique les montants cibles pour les pourcentages cibles typiques d'utilisation du stockage. La console Google Cloud accepte la valeur en To par nœud, et gcloud CLI, l'API et les bibliothèques clientes Cloud Bigtable acceptent une valeur entière en Gio par nœud.

Pourcentage SSD HDD
80% 4 To ou 4 096 Gio 12,8 To ou 13 107 Gio
70 % 3,5 To ou 3 584 Gio 11,2 To ou 11 468 Gio
60 % 3 To ou 3 072 Gio 9,6 To ou 9 830 Gio
50% 2,5 To ou 2 560 Gio 8 To ou 8 192 Gio

Stockage à plusieurs niveaux et autoscaling

Le stockage hiérarchisé (aperçu) n'a aucune incidence sur l'autoscaling SSD décrit dans la section Déterminer la cible d'utilisation du stockage de ce document. Lorsque vous activez l'accès peu fréquent dans le cadre du stockage hiérarchisé, l'autoscaling s'assure également que le stockage SSD combiné et le stockage à accès peu fréquent ne dépassent pas la limite de 32 To par nœud. Lorsque la limite est atteinte, Bigtable effectue automatiquement un scaling à la hausse.

Par exemple, sur un cluster SSD, si vous définissez un objectif d'utilisation du stockage de 2, 5 To (50 %) par nœud et que votre utilisation de l'accès peu fréquent est suffisamment élevée pour que l'utilisation du stockage avec stockage hiérarchisé dépasse la limite, Bigtable ajoute des nœuds. Cela se produit même si votre utilisation de l'espace SSD reste dans la limite cible de 50 %.

Le tableau suivant vous aide à comprendre comment l'autoscaling recommande un nombre de nœuds en fonction de l'utilisation du SSD et de l'utilisation de l'accès peu fréquent :

Scénario Objectif d'utilisation du stockage Pourcentage d'utilisation Utilisation des disques SSD Utilisation de l'accès peu fréquent Stockage combiné SSD et à accès peu fréquent Nombre de nœuds recommandé
L'utilisation du SSD se situe dans la plage cible et il n'y a pas d'utilisation d'accès peu fréquent. 5 To 100 % Moins de 5 To 0 To Moins de 5 To 1
L'utilisation du SSD dépasse la limite de stockage par nœud. 5 To 100 % 6 To 0 To 6 To 2
L'utilisation de SSD et l'utilisation de l'accès peu fréquent sont dans la limite de stockage par niveau. 5 To 100 % 5 To 27 To 32 To 1
L'utilisation de l'espace de stockage par niveau dépasse la limite de stockage par niveau. 5 To 100 % 5 To 28 To 33 To 2
L'utilisation des SSD est presque égale à l'objectif d'utilisation des SSD, et il n'y a pas d'utilisation d'accès peu fréquent. 3 To 60 % 3 To 0 To 3 To 1
L'utilisation du SSD est presque supérieure à l'objectif d'utilisation du SSD, et l'utilisation par niveau est presque supérieure à la limite de stockage par niveau. 3 To 60 % 3 To 29 To 32 To 1
L'utilisation du SSD dépasse l'objectif de stockage SSD et il n'y a pas d'utilisation d'accès peu fréquent. 2,5 To 50 % 4 To 0 To 4 To 2
L'utilisation par niveau dépasse la limite de stockage par niveau. 2,5 To 50 % 2 To 31 To 33 To 2

Pour en savoir plus sur le stockage hiérarchisé, consultez Présentation du stockage hiérarchisé.

Déterminer le nombre maximal de nœuds

La valeur que vous choisissez comme nombre maximal de nœuds doit correspondre au nombre de nœuds dont le cluster a besoin pour gérer le trafic le plus dense de votre charge de travail, même si vous ne prévoyez pas d'atteindre ce volume la plupart du temps. Bigtable ne fait jamais évoluer plus que le nombre de nœuds dont il a besoin. Vous pouvez également considérer ce nombre comme le nombre maximal de nœuds que vous êtes prêt à payer. Pour en savoir plus sur les valeurs acceptées, consultez Paramètres d'autoscaling.

Le nombre maximal doit autoriser à la fois l'objectif d'utilisation du processeur que vous avez défini et le seuil d'utilisation du stockage défini par Bigtable.

Si vous passez d'une allocation manuelle à une mise à l'échelle automatique, recherchez le nombre le plus élevé de nœuds reçus par le cluster au cours du mois passé. Ce maximum doit être au moins égal à ce nombre.

Si vous activez l'autoscaling pour un nouveau cluster dans une instance existante, utilisez les métriques des autres clusters de l'instance comme guide.

Si vous avez une nouvelle charge de travail et que vous ne savez pas comment elle va se développer, vous pouvez estimer le nombre de nœuds dont vous aurez besoin pour atteindre l'objectif d'utilisation du stockage intégré, puis ajuster le nombre plus tard.

Si vous avez activé le stockage hiérarchisé, vous devez tenir compte de la limite de stockage de 32 To par nœud. Même si votre utilisation de SSD est faible, un grand volume de données dans le niveau d'accès peu fréquent peut déclencher la mise à l'échelle des nœuds.

Pour obtenir ce nombre, estimez la quantité de données que vous prévoyez de stocker sur le cluster, puis divisez ce nombre par la cible d'utilisation du stockage correspondant au type de stockage que vous utilisez.

Par exemple, si vous stockez 10 To sur un cluster SSD, vous pouvez diviser 10 To par 2,5 To, qui est l'objectif d'utilisation du stockage défini par défaut pour les clusters SSD utilisant l'autoscaling. Le résultat est 4, ce qui signifie que 4 est le nombre de nœuds pouvant gérer cette quantité de données, et le maximum doit être un nombre supérieur à ce nombre.

En utilisant la même formule, les exemples suivants montrent le nombre de nœuds dont vous pourriez avoir besoin pour certains exemples de volumes de stockage :

Stockage SSD par cluster Plus petit nombre maximal de nœuds
25 To 10
35 To 14
50 To 20

Une fois votre cluster opérationnel avec l'autoscaling activé, procédez comme suit : surveiller le cluster et assurez-vous que la valeur que vous choisissez pour le nombre maximal de nœuds est au moins égale à recommended number of nodes for CPU target et recommended number of nodes for storage target.

Déterminer le nombre minimal de nœuds

Vous pouvez définir une valeur minimale sur 1 pour vous assurer que Bigtable peut effectuer un scaling à la baisse jusqu'à la taille la plus petite et la plus rentable possible. Le cluster ne devient jamais trop petit, car Bigtable 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. Consultez la section Paramètres d'autoscaling pour en savoir plus sur les valeurs acceptées.

Toutefois, dans de nombreux cas, vous devez définir cette valeur sur plusieurs valeurs. Choisissez un nombre plus élevé ou augmentez le nombre minimal de nœuds 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é.
  • Votre application envoie du trafic. Lorsque de nouveaux nœuds sont ajoutés, Bigtable rééquilibre automatiquement les nouveaux nœuds. É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 pour que votre cluster puisse s'adapter facilement aux pics.
  • Vous augmentez le nombre maximal de nœuds. Ce minimum doit toujours être égal à 10 % ou moins du nombre maximal de nœuds. Par exemple, si vous définissez la valeur maximale sur 30, vous devez définir la valeur minimale sur au moins 3.

Si vous augmentez la valeur du nombre minimal de nœuds d'un cluster, Bigtable tente immédiatement de procéder au scaling du cluster au nouveau minimum. Les contraintes standards s'appliquent. Cependant, si une zone ne dispose plus de nœuds, aucun nœud supplémentaire n'est provisionné pour atteindre le minimum configuré. Bigtable continue d'essayer d'ajouter des nœuds et crée une entrée de journal d'audit pour chaque tentative ayant échoué jusqu'à ce que le nouveau nombre minimal de nœuds soit atteint. Bigtable ne modifie pas la valeur configurée dans cette situation. Par conséquent, vous pouvez constater que le nombre de nœuds du cluster est inférieur au minimum jusqu'à la fin du scaling.

Ajuster vos paramètres

Une fois l'autoscaling activé, il est important de surveiller son comportement et d'ajuster vos paramètres si nécessaire. Utilisez les métriques de surveillance pour observer les éléments suivants :

  • Nombre de nœuds recommandé : soyez particulièrement attentif aux métriques recommended_node_count_for_cpu et recommended_node_count_for_storage. Ces métriques indiquent le nombre idéal de nœuds en fonction de vos objectifs d'utilisation du processeur et du stockage, respectivement.
  • Nombre de nœuds provisionnés : comparez le nombre de nœuds recommandé avec le nombre de nœuds réellement provisionnés. Si votre cluster utilise systématiquement plus de nœuds que recommandé, vous pouvez envisager de réduire le nombre minimal de nœuds pour réduire vos coûts.
  • Nombre maximal de nœuds : assurez-vous que votre nombre maximal de nœuds est suffisamment élevé pour permettre à votre cluster de s'adapter à la demande. Si vous constatez que votre cluster atteint fréquemment le nombre maximal de nœuds, augmentez-le pour fournir plus de capacité.

Vous pouvez également ajuster l'objectif d'utilisation du processeur pour améliorer les performances. Si vous constatez des problèmes de latence, vous devrez peut-être réduire la cible d'utilisation du processeur pour vous assurer que votre cluster évolue plus rapidement lorsque la demande augmente. À l'inverse, si votre cluster est constamment surprovisionné et que votre latence est acceptable, vous pouvez envisager d'augmenter la cible de CPU.

Compte de réplication

Dans une instance qui utilise la réplication, les paramètres d'autoscaling et l'activité de chaque cluster sont complètement indépendants de ceux des autres clusters de l'instance. Vous devez configurer le mode de scaling pour chaque cluster d'une instance.

En général, pour les instances répliquées, vous devez activer l'autoscaling pour chaque cluster de l'instance. La configuration de l'autoscaling est souvent la même pour tous les clusters de l'instance, mais elle peut être différente en fonction des cas d'utilisation, de la charge de travail et des performances de chaque cluster.

Étant donné que les clusters d'une instance dupliquée effectuent des tâches supplémentaires pour gérer la réplication, vous devez choisir un nombre maximal de nœuds plus élevé que pour une instance à cluster unique. Pour en savoir plus, consultez la page Réplication et performances.

Contrôle des accès

Pour configurer l'autoscaling, vous devez être un compte principal doté des autorisations create et update pour le cluster et l'instance que vous configurez.

Surveillance

Bigtable fournit plusieurs métriques qui vous permettent de comprendre le fonctionnement de l'autoscaling de Bigtable 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'un cluster 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 Bigtable, consultez la page Surveiller une instance.

Les métriques suivantes s'affichent dans les graphiques sur la page de présentation du cluster dans la console Google Cloud . Vous pouvez également afficher ces métriques à l'aide de Cloud Monitoring.

  • bigtable.googleapis.com/cluster/autoscaling/min_node_count
  • bigtable.googleapis.com/cluster/autoscaling/max_node_count
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpu
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage

Logging

Bigtable émet un journal d'audit des événements système chaque fois qu'il procède au scaling d'un cluster. L'entrée de journal est semblable à ceci :

Grew from 9 to 10 nodes to maintain CPU utilization at 60%.

Vous pouvez afficher les journaux des événements système de l'autoscaling sur la page de présentation du cluster Bigtable dans la console Google Cloud . Vous pouvez également les consulter à l'aide de l'explorateur de journaux :

  1. Accédez à l'explorateur de journaux :

    Accéder à l'explorateur de journaux

    Sélectionnez le projet Google Cloud approprié.

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

    resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com"
    resource.labels.method="AutoscaleCluster"
    
  3. Cliquez sur Run query.

    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.

Étape suivante