Scaling
Le scaling d'un cluster est le processus d'ajout ou de suppression de nœuds dans le cluster en réponse aux modifications de la charge de travail ou des besoins de stockage de données du cluster. Lorsque vous créez un cluster, vous pouvez également configurer le facteur de scaling des nœuds pour le cluster. Avant de configurer le scaling, comprenez les limites.
Vous pouvez faire évoluer votre cluster Bigtable en fonction de métriques telles que l'utilisation du processeur du cluster. Par exemple, si votre cluster est soumis à des charges importantes et que son utilisation du processeur est élevée, vous pouvez ajouter des nœuds au cluster jusqu'à ce que son utilisation diminue. Vous pouvez également économiser de l'argent en supprimant des nœuds du cluster lorsqu'il n'est pas utilisé de manière intensive.
Vous pouvez procéder au scaling d'un cluster Bigtable de différentes manières :
Scaling horizontal
- Autoscaling
- Attribution manuelle des nœuds
Dans la plupart des cas, choisissez l'autoscaling. Lorsque vous activez l'autoscaling pour un cluster, Bigtable surveille en permanence le cluster et ajuste automatiquement le nombre de nœuds en fonction de vos paramètres.
Scaling vertical du niveau en mémoire
Le niveau en mémoire de Bigtable utilise le scaling vertical entièrement géré pour le débit, ce qui permet aux clusters de répondre presque instantanément aux pics de trafic de lecture ponctuelle.
Le scaling vertical ajuste automatiquement chaque nœud pour répondre aux demandes de charge de travail et fonctionne de manière transparente avec l'autoscaling Bigtable. Chaque nœud Bigtable avec le niveau en mémoire activé a une limite de scaling vertical. Si cette limite est atteinte, l'autoscaling Bigtable ajoute des nœuds dans la configuration maximale des nœuds pour prendre en charge la charge de travail et rééquilibrer le trafic.
Pour en savoir plus sur les limites de scaling vertical, consultez Quotas et limites. Pour en savoir plus sur la capacité de débit en mémoire par nœud, consultez Comprendre les performances.
Facteur de scaling des nœuds
Lorsque vous créez un cluster Bigtable, vous avez la possibilité de le configurer avec un facteur de scaling des nœuds de 2. Lorsque vous choisissez cette configuration, Bigtable traite deux nœuds standards comme un seul nœud de calcul plus grand, et le cluster est toujours mis à l'échelle par incréments de deux nœuds. Par conséquent, il y a moins de limites de calcul entre les nœuds du cluster. Selon la charge de travail, les avantages du scaling des nœuds par 2 incluent les suivants :
- Amélioration du débit et de la stabilité de la latence de queue
- Plus grande capacité à absorber les points chauds
Vous pouvez créer un cluster avec un facteur de scaling des nœuds de 2 activé lorsque vous utilisez la Google Cloud console ou gcloud CLI.
Vous pouvez configurer le scaling des nœuds par 2 avec l'autoscaling ou l'attribution manuelle des nœuds. Dans l'édition Enterprise Plus, vous devez activer le scaling des nœuds par 2 pour accéder à la limite de stockage hiérarchisé étendue de 64 To par nœud (aperçu).
Pour connaître les limites, consultez Limites du facteur de scaling des nœuds.
Petits clusters
Le scaling des nœuds par 2 est optimal pour les charges de travail plus importantes. Si vous envisagez de passer du scaling des nœuds standard (par un facteur de 1) au scaling des nœuds par 2, tenez compte des implications en termes de coûts. Pour une charge de travail plus petite, par exemple une charge de travail exécutée sur un cluster avec un seul nœud, l'utilisation du scaling des nœuds par 2 coûte deux fois plus cher. De même, l'utilisation du scaling des nœuds par 2 pour une charge de travail qui était auparavant exécutée sur un cluster de trois nœuds augmente les coûts de 33%.
En revanche, pour une charge de travail qui était auparavant exécutée sur un grand cluster, tel qu'un cluster de 50 nœuds, l'effet d'un facteur de scaling des nœuds de 2 est faible par rapport au nombre de nœuds.
Bigtable renvoie une erreur si vous essayez de créer un cluster avec un facteur de scaling des nœuds de 2 dans une zone non compatible.
Limites
Le scaling de cluster est soumis à la disponibilité des nœuds, prend du temps, ne peut pas compenser une conception de schéma inappropriée et doit être effectué progressivement. Les sections suivantes décrivent ces limites, ainsi que celles qui s'appliquent au scaling des nœuds par 2.
Disponibilité des nœuds
Les quotas de nœuds s'appliquent si l'allocation manuelle ou l'autoscaling sont activés sur le cluster. Pour en savoir plus, consultez la section Quotas et disponibilité des nœuds.
Délai pendant le rééquilibrage des nœuds
Une fois que vous avez ajouté des nœuds à un cluster, un délai de 20 minutes peut s'écouler avant que vous constatiez une amélioration significative des performances du cluster. Par conséquent, si votre charge de travail implique des pics d'utilisation courts, l'ajout de nœuds en fonction de la charge de processeur n'améliore pas les performances de votre cluster, car le pic d'utilisation sera probablement terminé avant que Bigtable ne rééquilibre vos données.
Pour gérer ce délai, vous pouvez ajouter des nœuds à votre cluster de façon automatisée ou via la Google Cloud console, avant d'augmenter la charge du cluster. Cette approche donne suffisamment de temps à Bigtable pour rééquilibrer vos données entre les nœuds supplémentaires avant d'augmenter la charge de travail. Sur les clusters qui utilisent l'allocation manuelle de nœuds, modifiez le nombre de nœuds. Sur les clusters qui utilisent l'autoscaling, modifiez le nombre minimal de nœuds. Une fois que votre trafic est revenu à la normale, rétablissez vos paramètres de nœud.
Le niveau en mémoire gère les pics de trafic avec un scaling vertical presque instantané. Lorsque Bigtable ajoute des nœuds via l'autoscaling et que la capacité de débit du niveau en mémoire augmente, il gère automatiquement le partitionnement des données dans le niveau en mémoire.
Augmentation de la latence provoquée par une réduction trop rapide de la capacité
Lorsque vous réduisez le nombre de nœuds dans un cluster pour effectuer un scaling à la baisse, essayez de ne pas réduire la taille du cluster de plus de 10% sur une période de 10 minutes. Une réduction trop rapide de la capacité peut entraîner des problèmes de performances, tels qu'une latence accrue, si les nœuds restants du cluster deviennent temporairement surchargés.
Problèmes de conception de schémas
Si vous rencontrez des problèmes lors de la conception du schéma de votre table, l'ajout de nœuds à votre cluster Bigtable peut ne pas améliorer les performances. Par exemple, si vous effectuez un grand nombre de lectures ou d'écritures dans une seule ligne de votre table, toutes les lectures ou écritures seront effectuées sur le même nœud de votre cluster. Par conséquent, l'ajout de nœuds n'améliore pas les performances. En revanche, si les lectures et les écritures sont réparties uniformément sur les lignes de votre table, l'ajout de nœuds améliore généralement les performances.
Pour en savoir plus sur la conception d'un schéma permettant de faire évoluer efficacement Bigtable, consultez la page Concevoir votre schéma.
Limites des éditions
Le niveau en mémoire et le scaling vertical ne sont disponibles que pour les clusters SSD dans l'édition Enterprise Plus.
Limites du facteur de scaling des nœuds
Vous ne pouvez pas convertir un cluster avec un scaling des nœuds standard pour utiliser le scaling des nœuds par 2. Vous devez créer un cluster et activer le scaling des nœuds par 2 au moment de la création. Pour en savoir plus sur l'ajout d'un cluster à une instance, consultez Modifier une instance.
Vous ne pouvez pas configurer le scaling des nœuds par 2 pour un cluster HDD.
Vous pouvez créer des clusters configurés avec le scaling des nœuds par 2 dans chaque région Bigtable, mais pas dans toutes les zones. Les zones suivantes ne peuvent pas contenir de cluster avec le scaling des nœuds par 2 :
- me-central2-b
Étape suivante
- En savoir plus sur l'autoscaling Bigtable.
- Découvrez comment vous pouvez surveiller votre instance, à la fois de façon automatisée et via la Google Cloud console.