Identifier les points chauds dans votre base de données

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

Présentation des insights sur les hotspots

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 affectées par le hotspotting. Pour déterminer si les hotspots sont à l'origine de la latence et, le cas échéant, comment résoudre le problème, procédez comme suit :

  1. Ouvrir le tableau de bord
  2. Déterminez si les points d'accès nécessitent votre intervention.
  3. Identifier les divisions actives problématiques

Les insights sur les hotspots sont disponibles dans les configurations régionales, multirégionales et birégionales.

Tarifs

L'utilisation des insights sur les hotspots n'entraîne aucuns frais supplémentaires.

Conservation des données

Les règles de conservation des données pour les graphiques d'insights sur les hotspots et la table des divisions 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 de statistiques de division à chaud.

Rôles requis

Vous aurez peut-être besoin de rôles et d'autorisations Identity and Access Management (IAM) différents, selon que vous êtes un utilisateur IAM ou un utilisateur du contrôle ultraprécis des accès.

Utilisateur IAM

Pour obtenir les autorisations nécessaires pour afficher la page Insights sur les hotspots, 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 hotspots :

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

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

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

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

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

Ouvrir le tableau de bord des insights sur les points d'accès

Le tableau de bord Insights sur les hotspots 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 lors de l'accès aux lignes d'une division.

Pour afficher le tableau de bord Insights sur les hotspots 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 hotspots.

  4. Dans le champ database, sélectionnez une base de données dans la liste. Le tableau de bord affiche le score maximal d'utilisation du CPU pour la division de 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 divisions actives sur une base de données spécifique ou sur toutes les bases de données.
  • Filtre de période : filtre l'utilisation maximale du processeur par les fractionnements 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 score d'utilisation du processeur.

Tableau de bord des insights sur les hotspots dans Spanner, affichant un graphique de l'utilisation maximale du processeur par division, un sélecteur de base de données, un filtre de période et un tableau des N principales divisions actives.

Comprendre les données de la table "N principales divisions" : La table N principales divisions renseigne 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 de statistiques de division à chaud.

Interpréter les lignes des tables 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 la section Agrégation d'événements de table, le CPU_USAGE_SCORE de ces lignes est le score maximal observé dans n'importe quel sous-intervalle d'une minute sous-jacent, et UNSPLITTABLE_REASONS est une union de raisons.

Déterminer si les hotspots 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 élevé et persistant pour la division, vous devrez peut-être approfondir vos recherches.

Examinez le graphique pour explorer les 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 dont la charge est la plus élevée, vous pouvez également consulter le graphique Latence pour les 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 d'accès 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 hotspots ne sont pas un 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 voyez pas de pics d'utilisation du processeur à 100 % pendant au moins 10 minutes, il est possible que les hotspots ne soient pas un problème. Si le pourcentage d'utilisation maximale du processeur par division est élevé pendant plus de 10 minutes, vous pouvez approfondir vos recherches 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 pics d'utilisation du processeur de 100 % pendant plus de 10 minutes, il est possible que les hotspots nécessitent votre intervention. Vous pouvez ensuite poursuivre le processus de débogage en identifiant les divisions suractives dans votre base de données.

Identifier les divisions de hotspots problématiques

Pour identifier une division potentiellement problématique qui présente des hotspots, consultez la section TopN splits (Divisions TopN) de la console Google Cloud , comme illustré ci-dessous.

Tableau des "divisions TopN" dans Spanner, qui liste les divisions potentiellement problématiques. Le tableau comprend 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 de non-division".

La table N principales divisions fournit un aperçu des divisions qui ont pu être actives pendant la période sélectionnée, triées de la plus récente à la plus ancienne. Le nombre de divisions TopN est limité à 100.

Pour les graphiques, Spanner récupère les données de la table de statistiques des divisions TopN, avec une précision d'une minute. La valeur de chaque point de données dans les 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 du pic d'utilisation 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>, elle 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 active. La présence de valeurs ici indique que le fractionnement basé sur la charge ne peut pas atténuer le point d'accès pour les raisons indiquées. Pour en savoir plus, consultez Types de UNSPLITTABLE_REASONS.

Analyser les motifs de non-fractionnement

Le tableau TopN splits (N premières divisions) vous permet d'explorer les divisions spécifiques qui sont affectées par ces raisons à des moments particuliers, comme indiqué dans la colonne Unsplittable reasons (Raisons de l'impossibilité de diviser).

Exemple de workflow de diagnostic

Voici un workflow type pour déboguer les hotspots à l'aide du tableau de bord :

  1. Observez le problème de performances : vous remarquez une augmentation de la latence ou des erreurs dans votre application.
  2. Ouvrir les insights sur les points d'accès : accédez au tableau de bord des insights sur les points d'accès dans la console Google Cloud pour la base de données Spanner concernée. Sélectionnez la période correspondant au problème.
  3. Examinez le graphique :
    • Vérifiez si le graphique Score maximal d'utilisation du CPU pour la division présente des valeurs élevées et soutenues, par exemple supérieures à 50 %, en particulier si elles approchent les 100 % pendant au moins 10 minutes.
  4. Identifier les divisions concernées et mettre en corrélation les résultats : si l'utilisation du processeur est élevée, accédez au tableau N principales divisions. Filtrez ou triez les résultats pour trouver les divisions ayant le score d'utilisation du CPU le plus élevé pendant la période d'impact. Examinez la colonne UNSPLITTABLE_REASONS pour ces divisions principales :
    • Score d'utilisation du CPU élevé pour la division et raisons de l'impossibilité de diviser : il s'agit d'un signal fort indiquant que le problème de performances est lié à des hotspots 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 élevé pour la division et aucune raison d'impossibilité de division : le point d'accès est peut-être nouveau et Spanner est peut-être encore en cours de division. Il est également possible que le problème soit lié à des modifications de la charge de travail, ce qui ne nécessite aucune action de votre part.
  5. Comprendre les raisons : notez les codes spécifiques dans le tableau UNSPLITTABLE_REASONS.
  6. Atténuer : en fonction des raisons identifiées, reportez-vous aux types de 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