Tablets suractifs
Pour vous aider à résoudre les problèmes de performances, Bigtable fournit d'identifier et d'observer des tablets actifs dans un cluster. Cette page décrit les tablets suractifs, vous explique comment en obtenir la liste, et aborde les situations dans lesquelles l'identification des tablets suractifs est particulièrement pertinente. Avant de lire cette page, assurez-vous d'avoir pris connaissance de la Présentation de Bigtable.
Le nom de la méthode utilisée pour obtenir la liste des tablets suractifs dépend du langage utilisé. Par souci de simplicité, la méthode est désignée dans ce document par son nom dans l'API RPC Cloud Bigtable Admin, à savoir ListHotTablets
. Vous pouvez obtenir la liste des tablets suractifs à l'aide des ressources suivantes :
L'identification des tablets suractifs peut vous aider dans les tâches suivantes :
- Identifier les clés de ligne problématiques
- Observer les hotspots à la minute près
- Identifier les tables problématiques dans un cluster
Comprendre les tablets suractifs
Afin de faciliter l'équilibrage de la charge de travail des requêtes, une table Bigtable est segmentée en blocs de lignes adjacentes, appelés tablets. Chaque tablet est associé à un nœud, sur lequel sont effectuées les opérations associées aux lignes qui le composent. Pour optimiser les performances, les tablets sont divisés ou déplacés vers un nœud différent en fonction des modèles d'accès. Les tablets sont rééquilibrés entre les nœuds selon les modèles d'accès des utilisateurs (opérations de lecture, d'écriture et d'analyse). Pour en savoir plus sur l'équilibrage de charge, consultez la page Comment Bigtable optimise vos données au fil du temps.
Un tablet suractif est un tablet qui montre une surutilisation du processeur du nœud associé, car le tablet utilise un pourcentage disproportionné du processeur par rapport aux autres tablets. Ce déséquilibrage dans l'utilisation du nœud peut entraîner de la latence et augmenter les délais de réplication.
Les hotspots sont les causes les plus fréquentes de tablets suractifs. Ils se produisent lorsque votre application accède fréquemment à des lignes proches les unes des autres dans la table. Les hotspots sont souvent le résultat d'une conception de schémas qui n'est pas optimisée pour répartir les modèles d'accès de votre application sur l'ensemble de la table. Pour savoir comment concevoir vos clés de ligne de manière à ne pas créer de hotspots, consultez la page Bonnes pratiques liées à la conception de schémas.
Pour obtenir la liste des tablets suractifs, vous devez disposer d'un rôle avec l'autorisation bigtable.viewer
.
Sortie
La méthode ListHotTablets
renvoie les données suivantes pour un cluster donné dans une instance.
- Nom du tablet. ID unique attribué par Bigtable au tablet suractif. Ce champ n'est pas affiché par gcloud CLI.
- Table. ID de la table associée au tablet suractif.
- Usage du processeur. Utilisation moyenne du processeur du nœud associé au tablet suractif, exprimée en pourcentage, sur un intervalle d'une minute. Ce pourcentage correspond à la moyenne de la somme des métriques d'utilisation du processeur en écriture et en lecture, de l'heure de début à l'heure de fin.
- Heure de début. Heure de début de la période de mesure du tablet suractif.
- Heure de fin. Heure de fin de la période de mesure du tablet suractif.
- Clé de début. Clé de la première ligne du tablet suractif.
- Clé de fin. Clé de la dernière ligne du tablet suractif. Un suffixe
\000
est ajouté lorsque les clés de début et de fin sont identiques, ce qui indique que la tablette s'étend sur une seule ligne.
Au sein d'un tablet, les clés sont triées de façon lexicographique. Ainsi, toute clé comprise entre la clé de début et la clé de fin est contenue dans ce tablet suractif.
Les hotspots sont calculés sur une base d'une minute, et un tablet peut apparaître plusieurs fois dans la sortie. En d'autres termes, un même tablet peut être considéré comme suractif pendant plusieurs minutes.
Par défaut, la méthode ListHotTablets
effectue une recherche sur les dernières 24 heures. Pour effectuer une recherche sur une période spécifique, indiquez une heure de début et une heure de fin.
Le nombre maximal de tablets suractifs renvoyés est de 50. Pour modifier ce paramètre, spécifiez une autre taille de page.
La méthode affiche une liste vide si aucun des tablets du cluster n'est suractif.
Exemple utilisant gcloud CLI
Avant de copier cet exemple, installez gcloud
CLI.
Pour afficher la liste des tablets suractifs pour un cluster donné, exécutez la commande hot-tablets list
dans Cloud Shell ou dans une fenêtre de terminal local.
gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID
Remplacez les éléments suivants :
CLUSTER_ID
: identifiant permanent du cluster.INSTANCE_ID
: identifiant permanent de l'instance.
En cas de tablets suractifs dans le cluster, le terminal affiche un résultat semblable au suivant. Les tablets actifs dans un cluster sont répertoriés par ordre décroissant d'utilisation du processeur.
TABLE CPU_USAGE START_TIME END_TIME START_KEY END_KEY test-data 89.3 2021-12-14T01:19:57+00:00 2021-12-14T01:20:57+00:00 user29333893046… user29333893046… test-data 22.8 2021-12-14T01:04:59+00:00 2021-12-14T01:06:59+00:00 user29333893046… user29345657428… test-data 20.9 2021-12-14T01:18:56+00:00 2021-12-14T01:20:56+00:00 user54519105346… user545293 test-data 16.5 2021-12-14T01:18:56+00:00 2021-12-14T01:20:56+00:00 user49196524328… user49206
Cas d'utilisation des données de tablets suractifs
L'identification des tablets actifs dans un cluster peut vous aider à résoudre les problèmes de performances. Vous pouvez utiliser la méthode ListHotTablets
en combinaison avec d'autres outils de surveillance, tels que l'outil de diagnostic Key Visualizer pour Bigtable.
Identifier les clés de ligne problématiques
Vous pouvez utiliser la méthode ListHotTablets
pour identifier des clés de ligne et des plages de lignes spécifiques. Cela peut offrir une visibilité sur les modèles d'accès susceptibles de provoquer des hotspots.
Supposons par exemple que le schéma des clés de ligne d'une table soit [user_id]#[event_timestamp]
, à savoir des ID utilisateur et des codes temporels séparés par un symbole dièse. L'obtention d'une liste de tablets suractifs peut vous aider à déterminer si des ID utilisateur ou des codes temporels d'événements spécifiques génèrent des hotspots. L'identification des modèles d'accès vous permet d'engager des actions supplémentaires, par exemple reconcevoir les clés de ligne ou les tables, afin de répartir l'utilisation plus uniformément au sein de l'espace de clés. Dans cet exemple, si les ID utilisateur augmentent de manière monotone, et provoquent de ce fait des hotspots, vous pouvez attribuer des ID utilisateur selon un ordre différent ou utiliser à la place des identifiants uniques universels (UUID).
Lorsque les clés de ligne de début et de fin sont identiques, et que la clé de ligne de fin est ajoutée
avec le suffixe \000
, il crée une tablette à ligne unique. Lorsque cette tablette reçoit une quantité disproportionnée de trafic, des points chauds se produisent.
Observer les hotspots à la minute près
Vous pouvez utiliser une liste de tablets suractifs en combinaison avec les cartes de densité de Key Visualizer.
Bien que Key Visualizer constitue un bon outil pour observer une vue d'ensemble des modèles d'accès aux espaces de clés, ListHotTablets
offre une plus grande précision.
Après avoir inspecté les cartes de densité dans Key Visualizer, vous pouvez explorer plus en détail certains hotspots. Key Visualizer s'exécute sur une période de plusieurs semaines, et ses données pour l'identification des hotspots sont agrégées par intervalles de 15 minutes. En outre, plusieurs tablets peuvent être combinés dans le même espace de clés Key Visualizer.
Une fois que vous avez utilisé Key Visualizer pour identifier la période sur laquelle les hotspots se sont produits, vous pouvez exécuter la méthode ListHotTablets
afin d'obtenir une plus grande précision, à la fois au niveau de l'espace de clés et des codes temporels. Le fait de disposer d'une précision accrue est particulièrement pertinent dans le cadre d'une utilisation périodique.
ListHotTablets
peut identifier des hotspots de courte durée, qui seraient indétectables en passant exclusivement par Key Visualizer.
Identifier les tables problématiques dans un cluster
Étant donné que Key Visualizer fonctionne au niveau de la table, il ne constitue pas toujours le meilleur choix pour résoudre un problème dans un cluster comportant plusieurs tables.
ListHotTablets
fonctionne au niveau du cluster. Vous pouvez donc l'utiliser pour identifier les tables présentant une utilisation élevée du processeur et affiner le problème.
Étape suivante
- Analysez les performances de Bigtable.
- Apprenez-en plus sur les fonctions de surveillance de Bigtable.
- Suivez un tutoriel sur l'analyse comparative des performances.