Tablets suractifs

Pour vous aider à résoudre les problèmes de performances, Bigtable permet d'identifier et d'observer les tablets très sollicités 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é, dans ce document, cette méthode est désignée par son nom d'API RPC Cloud Bigtable Admin, 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 :

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.

Résultat

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. Le 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 le suffixe \000 est ajouté à la clé de ligne de fin, une tablette à ligne unique est créée. Lorsque cette tablette reçoit une quantité disproportionnée de trafic, elle mène à des hotspots.

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.

Étapes suivantes