Identifier les points chauds dans votre base de données

Ce document explique comment utiliser le tableau de bord des insights sur les points chauds pour détecter les points chauds dans votre base de données Spanner.

Présentation des insights sur les points d'accès

Les hotspots entraînent une latence dans votre base de données Spanner. Le tableau de bord des insights sur le hotspotting vous aide à détecter les divisions concernées par le hotspotting. Pour déterminer si les points d'accès sont à l'origine de la latence et, le cas échéant, comment résoudre le problème, procédez comme suit :

  1. Ouvrez le tableau de bord.
  2. Déterminez si les points d'accès nécessitent votre intervention.
  3. Identifiez les fractionnements à chaud problématiques.

Les insights sur les points d'accès sont disponibles dans les configurations à une, deux ou plusieurs régions.

Tarifs

L'utilisation de Insights sur les points d'accès n'entraîne aucun coût supplémentaire.

Conservation des données

Les règles de conservation des données pour les graphiques "Insights sur les points chauds" et le tableau "Répartitions TopN" sont basées sur les tables SPANNER_SYS.SPLIT_STATS_TOP_* sous-jacentes. Pour connaître les règles de conservation spécifiques, consultez Conservation des données statistiques sur les fractionnements à chaud.

Rôles requis

Vous aurez peut-être besoin de différents rôles et autorisations IAM, selon que vous êtes un utilisateur IAM ou un utilisateur du contrôle des accès précis.

Utilisateur Identity and Access Management (IAM)

Pour obtenir les autorisations nécessaires pour afficher la page Insights sur les points d'accès, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'instance :

Les autorisations suivantes du rôle Lecteur de bases de données Cloud Spanner (roles/spanner.databaseReader) sont requises pour afficher la page Insights sur les points chauds :

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

Utilisateur du contrôle des accès ultraprécis

Si vous utilisez le contrôle des accès ultraprécis, assurez-vous de :

  • Disposer du rôle Lecteur Cloud Spanner (roles/spanner.viewer)
  • disposent de droits de contrôle des accès ultraprécis et se voient attribuer le rôle système spanner_sys_reader ou l'un de ses rôles membres.
  • Sélectionnez spanner_sys_reader ou un rôle de membre comme rôle système actuel sur la page Vue d'ensemble de la base de données.

Pour en savoir plus, consultez Présentation du contrôle des accès ultraprécis et Rôles système pour le contrôle des accès ultraprécis.

Ouvrir le tableau de bord "Insights sur les points d'accès"

Le tableau de bord Insights sur les points chauds affiche le pourcentage maximal d'utilisation du CPU pour la division. Cette métrique est un pourcentage abstrait compris entre 0 et 100 qui reflète la quantité de CPU utilisée lorsque les lignes d'une division sont consultées.

Pour afficher le tableau de bord Insights sur les points chauds d'une base de données, procédez comme suit :

  1. Dans la console Google Cloud , ouvrez la page Spanner.

    Accéder à Spanner

  2. Sélectionnez une instance dans la liste.

  3. Dans le menu de navigation, cliquez sur l'onglet Insights sur les points d'accès.

  4. Dans le champ Base de données, sélectionnez une base de données dans la liste. Le tableau de bord affiche le score maximal d'utilisation du CPU pour la base de données.

Le tableau de bord comprend les éléments suivants :

  • Graphique Score maximal d'utilisation du CPU pour la division : un score d'utilisation du CPU plus élevé (par exemple, proche de 100) indique que la division est active et qu'elle est très susceptible de provoquer un hotspotting sur le serveur par rapport à des scores plus faibles.
  • Champ "Base de données" : filtre les informations sur les fractionnements à chaud sur une base de données spécifique ou sur toutes les bases de données.
  • Filtre de période : filtre l'utilisation du processeur des fractionnements de pointe par incréments d'une minute, jusqu'à un total de six heures.
  • Tableau des N principaux fractionnements : affiche la liste des principaux fractionnements triés par scores d'utilisation du processeur pour la division.

Tableau de bord "Insights sur les points chauds" dans Spanner, affichant un graphique de l'utilisation maximale du processeur par fractionnement, un sélecteur de base de données, un filtre de plage de temps et un tableau des N principaux fractionnements actifs.

Comprendre les données du tableau "N principales divisions" : Le tableau N principales divisions est rempli avec les données des tables SPANNER_SYS.SPLIT_STATS_TOP_* sous-jacentes en fonction de la période que vous sélectionnez. Pour en savoir plus, consultez Conservation des données statistiques sur la répartition à chaud.

Interpréter les lignes des tableaux 10MINUTE ou HOUR : Les lignes provenant de SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE ou SPANNER_SYS.SPLIT_STATS_TOP_HOUR représentent des données agrégées sur leurs intervalles respectifs. Comme décrit dans Agrégation des événements dans les tableaux, le CPU_USAGE_SCORE de ces lignes correspond au score maximal observé dans un sous-intervalle d'une minute sous-jacent, et UNSPLITTABLE_REASONS correspond à une union de motifs.

Déterminer si des régions les plus sensibles nécessitent une intervention

Si vous constatez un pic ou une augmentation dans le graphique correspondant à la latence globale et un score d'utilisation du CPU pour la division élevé et persistant, vous devrez peut-être approfondir vos recherches.

Examinez le graphique pour répondre aux questions suivantes :

  • Quelle base de données subit la dégradation de la latence ? Sélectionnez différentes bases de données dans la liste Bases de données pour trouver celles avec la latence la plus élevée. Pour identifier la base de données ayant la charge la plus élevée, vous pouvez également consulter le graphique "Latence" des bases de données dans la console Google Cloud .

    Graphique en courbes intitulé "Score maximal d'utilisation du CPU pour la division", qui montre le score maximal d'utilisation du CPU pour la division au fil du temps. Le graphique affiche un pic, qui peut indiquer un point chaud et des problèmes de latence potentiels.

  • La latence est-elle élevée ? La latence est-elle élevée par rapport à la latence attendue pour la charge de travail ? Le graphique a-t-il connu un pic ou augmenté au fil du temps ? Si vous ne constatez pas de latence élevée, les points d'accès ne posent pas de problème.

  • Le score maximal d'utilisation du CPU pour la division est-il de 100 % ? Le graphique a-t-il connu un pic ou augmenté au fil du temps ? Si vous ne constatez pas de pics d'utilisation du processeur à 100 % pendant au moins 10 minutes, il est possible que les points chauds ne soient pas un problème. Si le pourcentage maximal d'utilisation du processeur fractionné est élevé pendant plus de 10 minutes, vous pouvez effectuer des investigations supplémentaires pour déterminer si la base de données présente des niveaux de latence plus élevés que prévu.

Si vous constatez des pourcentages d'utilisation du CPU de 100 % pendant plus de 10 minutes, vous devrez peut-être intervenir sur les points chauds. Vous pouvez ensuite poursuivre le débogage en identifiant les fractionnements actifs dans votre base de données.

Identifier les fractionnements à chaud problématiques

Pour identifier un fractionnement potentiellement problématique comportant des points chauds, consultez la section TopN splits (Fractionnements TopN) dans la console Google Cloud , comme illustré ci-dessous.

Table des "fractionnements TopN" dans Spanner, qui liste les fractionnements potentiellement problématiques. Le tableau inclut les colonnes "Fin de l'intervalle", "Début de la division", "Limite de division", "Score d'utilisation du CPU pour la division", "Tables concernées" et "Motifs d'indivisibilité".

Le tableau N principales divisions fournit un aperçu des divisions qui peuvent être populaires au cours de la période sélectionnée, triées de la plus récente à la plus ancienne. Le nombre de fractionnements TopN est limité à 100.

Pour les graphiques, Spanner extrait les données de la table de statistiques des fractionnements TopN, avec une précision d'une minute. La valeur de chaque point de données des graphiques représente la valeur moyenne sur un intervalle d'une minute.

Le tableau affiche les propriétés suivantes :

  • Fin de l'intervalle : date et heure de fin de l'utilisation élevée du processeur.
  • Début de la division : clé de début de la plage de lignes dans la division. Si le début de la division est <begin>, cela indique le début de la plage de clés de la base de données.
  • Limite de division : clé de limite de la plage de lignes dans la division. Si la clé de limite est <end>, cela indique la fin de la plage de clés de la base de données.
  • Score d'utilisation du CPU pour la division : score abstrait compris entre 0 et 100 reflétant la quantité de CPU utilisée par les accès aux lignes dans la division sur un seul serveur. Utilisez le score d'utilisation du CPU pour évaluer la présence de hotspotting.
  • Tables concernées : tables dont les lignes peuvent être dans la division.
  • Motifs de non-fractionnement : tableau des raisons pour lesquelles Spanner ne peut pas fractionner davantage une division chaude. La présence de valeurs ici indique que le fractionnement basé sur la charge ne peut pas atténuer le point chaud pour les raisons listées. Pour en savoir plus, consultez les types UNSPLITTABLE_REASONS.

Analyser les motifs de non-fractionnement

Le tableau Répartitions TopN vous permet d'examiner plus en détail les répartitions spécifiques concernées par ces motifs à des moments précis, comme indiqué dans la colonne Motifs de non-répartition.

Exemple de workflow de diagnostic

Voici un workflow type pour déboguer les points d'accès à l'aide du tableau de bord :

  1. Observez le problème de performances : notez l'augmentation de la latence ou des erreurs dans votre application.
  2. Ouvrir les insights sur les points chauds : accédez au tableau de bord "Insights sur les points chauds" dans la console Google Cloud pour la base de données Spanner concernée. Sélectionnez la période correspondant au problème.
  3. Examiner le graphique :
    • Consultez le graphique Score maximal d'utilisation du CPU pour la division pour identifier les valeurs élevées et soutenues (par exemple, > 50 %), en particulier celles proches de 100 % pendant au moins 10 minutes.
  4. Identifiez les fractionnements concernés et mettez en corrélation les résultats : si l'utilisation du processeur est élevée, accédez au tableau N principaux fractionnements. Filtrez ou triez les divisions pour trouver celles qui ont le score d'utilisation du CPU pour la division le plus élevé pendant la période d'impact. Examinez la colonne UNSPLITTABLE_REASONS pour ces principaux fractionnements :
    • Score d'utilisation du CPU élevé et raisons pour lesquelles la division n'est pas possible : il s'agit d'un signal fort indiquant que le problème de performances est lié à des points chauds que Spanner ne peut pas résoudre automatiquement. Le type de motif, tel que HOT_ROW ou MOVING_HOT_SPOT, fournit un indice crucial.
    • Score d'utilisation du CPU pour la division élevé et aucune raison de non-division : le point chaud est peut-être nouveau et Spanner est peut-être encore en train de le diviser. Il est également possible que le problème soit lié à des modifications de la charge de travail, auquel cas aucune action n'est requise de votre part.
  5. Comprendre les raisons : notez les codes spécifiques dans le tableau UNSPLITTABLE_REASONS.
  6. Atténuation : en fonction des raisons identifiées, consultez les types UNSPLITTABLE_REASONS pour obtenir des explications détaillées et des stratégies d'atténuation recommandées, qui impliquent généralement des modifications de la conception du schéma ou des ajustements de la charge de travail.

Étapes suivantes