Identifier les transactions pouvant entraîner des latences élevées

Cette page explique comment utiliser les insights sur les verrouillages et les insights sur les transactions pour identifier les transactions qui entraînent des latences élevées.

Présentation

Pour assurer la cohérence de plusieurs transactions simultanées, Spanner utilise des verrous afin de contrôler l'accès aux données. Un conflit de verrou se produit lorsque de nombreuses transactions nécessitent un accès fréquent au même verrou, ce qui entraîne des latences élevées. Sans interface visuelle, il peut être fastidieux d'identifier les transactions problématiques qui entraînent un grand nombre de conflits de verrous.

Les opérations Spanner acquièrent des verrous lorsqu'elles font partie d'une transaction en lecture/écriture. Les transactions en lecture seule n'acquièrent pas de verrou.

Spanner vous aide à identifier les transactions qui entraînent des latences élevées en vous guidant à travers les étapes suivantes:

  1. Vérifiez les pics de latence à l'aide de Spanner Monitoring.
  2. Identifiez les problèmes de conflit de verrouillage à l'aide des insights sur les verrouillages.
  3. Identifiez les transactions problématiques à l'aide des insights sur les transactions.

Tarification

Les insights sur les verrouillages et les transactions n'entraînent aucuns frais supplémentaires.

Configurations régionales

Les insights sur les verrous et les transactions sont disponibles dans les configurations régionales et multirégionales.

Conservation des données

La durée de conservation maximale des données affichées dans les tableaux de bord "Lock Insights" et "Insights sur les transactions" est de 30 jours. Pour les graphiques, les données sont extraites de tables SPANNER_SYS.*, qui ont une durée de conservation maximale de 30 jours.

Pour en savoir plus sur ces tables et la conservation des données, consultez les sections Statistiques sur le verrouillage et Statistiques sur les transactions.

Rôles requis

Vous avez besoin de différents rôles et autorisations IAM selon que vous êtes un utilisateur IAM ou un utilisateur de contrôle des accès ultraprécis.

Utilisateur Identity and Access Management (IAM)

Pour obtenir les autorisations nécessaires pour afficher la page "Insights sur les verrouillages et les transactions", demandez à votre administrateur de vous attribuer les rôles IAM suivants sur l'instance:

Vous devez disposer des autorisations suivantes dans le rôle Lecteur de base de données Cloud Spanner (roles/spanner.databaseReader) pour afficher la page "Insights sur les verrouillages et les transactions" :

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

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

Si vous êtes un utilisateur disposant d'un contrôle des accès ultraprécis, veillez à:

  • Le lecteur Cloud Spanner(roles/spanner.viewer)
  • Ils ne disposent que 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 de membre.
  • Sélectionnez le rôle spanner_sys_reader ou le rôle de membre comme rôle système actuel sur la page de présentation de la base de données.

Pour en savoir plus, consultez les sections À propos du contrôle ultraprécis des accès et Rôles précis du système de contrôle des accès.

Vérifier les pics de latence à l'aide de Spanner Monitoring

Vous pouvez utiliser Cloud Monitoring pour définir des alertes pour les métriques qui dépassent les seuils spécifiés pour toutes les requêtes.

Si vous recevez une alerte indiquant un pic de latence pour une instance, vous pouvez le confirmer dans le tableau de bord Monitoring de Spanner, qui affiche des graphiques pour diverses métriques importantes. Le graphique Latence vous aide à afficher les latences élevées aux 50e et 99e centiles.

Pour confirmer un pic de latence d'écriture au 99e centile, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Instances de Spanner.

    Accéder à la page Instances Spanner

  2. Cliquez sur le nom de l'instance.

    La console Google Cloud affiche un aperçu de l'instance.

  3. Cliquez sur Surveillance dans le menu de navigation.

    La console Google Cloud affiche des graphiques de données pour l'instance.

  4. Sur le graphique Latence, définissez Fonction sur Write et centile sur 99th.

  5. Examinez le graphique actualisé pour vérifier s'il présente des pics.

Graphique montrant les latences d'écriture au 99e centile

Si vous constatez que l'utilisation du processeur n'augmente pas et que le nombre d'erreurs augmente (nombre d'opérations par seconde), il est probable que ces pics de latence soient dus aux conflits de verrouillage.

Recherchez les problèmes de conflit de verrouillage à l'aide des insights sur les verrouillages

Le tableau de bord des insights de verrouillage vous aide à afficher le temps d'attente de verrouillage dans une instance ou une base de données sélectionnée. Il peut vous aider à vérifier si des latences élevées sont dues à des conflits de verrouillage.

Vérifier le temps d'attente pour le verrouillage

Pour vérifier si le délai de verrouillage est élevé, procédez comme suit:

  1. Cliquez sur Verrouiller les insights dans le menu de navigation.

    La console Google Cloud affiche le graphique Attente totale de verrouillage, qui indique le temps d'attente de verrouillage pour chaque base de données de l'instance.

    Par défaut, les données affichées concernent 1 hour, comme l'indique le sélecteur de temps en haut à droite du tableau de bord des insights sur les verrouillages. Pour afficher les données d'une plage plus large, sélectionnez une autre option, par exemple 1 day.

    Pour en savoir plus, consultez Utiliser des graphiques.

  2. Dans le sélecteur Databases (Bases de données) situé en haut, sélectionnez la base de données qui indique le temps d'attente le plus élevé pour le verrouillage.

    Le graphique Nombre total d'attentes de verrouillage est actualisé pour n'afficher que les données de la base de données sélectionnée.

    De plus, un autre graphique, Heure de verrouillage par plage de lignes, affiche les graphiques du temps d'attente de verrouillage par plage de lignes.

  3. Cliquez sur le graphique et faites-le glisser horizontalement pour développer l'heure à laquelle un pic de latence est visible.

Tableau de bord des insights sur les verrouillages

Analyser les données d'attente de verrouillage

La table Lock Insights affiche les colonnes suivantes des tables système SPANNER_SYS.LOCK_STATS:

  • Clé de début de plage de lignes: clé de ligne concernée par le conflit de verrouillage. Lorsque le conflit concerne une plage de lignes, la valeur représente la clé de début de la plage. Le signe plus (+) représente une plage.
  • Délai de verrouillage: temps d'attente total lié au verrouillage représenté visuellement sur une barre horizontale. Par défaut, la table utilise cette colonne pour les tris et affiche en haut la clé de début de la plage de lignes avec le temps d'attente de verrouillage le plus élevé.
  • Attente verrouillage (secondes): temps d'attente de verrouillage cumulé des conflits de verrouillage enregistrés pour toutes les colonnes de la plage de clés de ligne, en secondes.
  • Délai de verrouillage (%): temps d'attente des conflits de verrouillage enregistrés pour toutes les colonnes de la plage de clés de ligne, sous la forme d'un pourcentage du temps d'attente total de verrouillage pour toutes les plages de clés de ligne de la base de données.

Pour corréler les données du graphique Temps d'attente de verrouillage par plage de lignes avec les données de la table, sélectionnez une ligne. La ligne associée s'affiche en surbrillance. À l'inverse, cochez la case correspondant à une ligne du tableau pour afficher la ligne associée sur le graphique.

Tableau des insights sur les verrouillages

Pour filtrer les données du tableau, procédez comme suit:

  1. Cliquez dans la zone de texte à côté de Filtrer.

  2. Sélectionnez une propriété, choisissez un opérateur et spécifiez une valeur.

Le tableau affiche les données correspondant au filtre.

Afficher des exemples de requêtes de verrouillage

Le panneau Exemples de requêtes de verrouillage affiche des détails sur des exemples de requêtes de verrouillage provenant de transactions concurrentes.

Pour afficher des exemples d'informations de requête de verrouillage pour une clé de début de plage de lignes, cliquez sur le lien associé dans le tableau.

Le tableau contient les colonnes d'informations suivantes:

  • Exemple de nom de colonne: colonne ayant rencontré un conflit de verrouillage sur la plage de clés de ligne.
  • Mode verrouillé: mode verrouillé demandé.
  • Afficher les transactions: lien vers la page Insights sur les transactions, qui affiche les transactions susceptibles de concurrencer des verrous.

Page d'informations sur les insights de verrouillage

Identifier les transactions concurrentes à l'aide des insights sur les transactions

Le tableau de bord "Informations sur les transactions" vous aide à visualiser la latence des transactions sur une instance ou une base de données sélectionnée. Il peut vous aider à identifier les transactions susceptibles de générer des latences élevées en raison de conflits de verrouillage.

Afficher la latence des transactions

Pour afficher la latence des transactions, procédez comme suit:

  1. Cliquez sur Insights sur les transactions dans le panneau de navigation de gauche.

  2. Dans le sélecteur Databases (Bases de données) situé en haut, sélectionnez la base de données qui indique le temps d'attente le plus élevé pour le verrouillage.

    Dans le tableau de bord des insights sur le verrouillage, vous pouvez également cliquer sur Afficher les transactions pour filtrer les transactions qui lisent ou écrivent des données dans une colonne d'exemple spécifique.

    Par défaut, les données affichées concernent 1 hour, comme l'indique le sélecteur de temps en haut à droite du tableau de bord "Insights sur les transactions".

Le tableau de bord affiche les graphiques suivants:

  • Le graphique Latence moyenne (toutes les transactions) affiche la latence de toutes les transactions de l'instance.

  • Le graphique Latence moyenne (par transaction) affiche la latence de chaque transaction pour la base de données sélectionnée.

Le tableau de bord "Insights sur les transactions"

Analyser les données des transactions

Vous pouvez afficher et analyser les données de chaque transaction dans le tableau situé sous les graphiques. Le tableau affiche les données de métriques des tables système SPANNER_SYS.TXN_STATS dans les colonnes suivantes:

  • Empreinte numérique: hachage de la balise de transaction, le cas échéant. Sinon, le hachage est calculé en fonction des opérations impliquées dans la transaction. La valeur est un lien qui mène à la page Détails de la transaction.
  • Tag de transaction: tag de transaction facultatif pour la transaction. Les données statistiques de plusieurs transactions ayant la même chaîne de balise sont regroupées sur une seule ligne avec le libellé TRANSACTION_TAG correspondant à la chaîne de tag.
  • Tables concernées: tables affectées par la transaction.
  • Table.column Read: colonnes depuis lesquelles la transaction est lue.
  • Table.column Write: colonnes dans lesquelles la transaction a écrit.
  • Latence moyenne (en secondes): nombre moyen de secondes nécessaires pour effectuer la transaction. Par défaut, le tableau est trié en fonction de cette colonne dans l'ordre décroissant.

Pour corréler les données du graphique Latence moyenne (par transaction) avec les données du tableau, sélectionnez une ligne sur le graphique. La ligne correspondante dans le tableau apparaît en surbrillance.

Pour filtrer les données du tableau, procédez comme suit:

  1. Cliquez à côté de Filtre.

  2. Sélectionnez une propriété, choisissez un opérateur et spécifiez une valeur.

Le tableau affiche les données correspondant au filtre.

Tableau "Insights sur les transactions"

Afficher des informations détaillées sur une transaction

Pour afficher des informations détaillées sur une transaction, telles que celle indiquant la latence la plus élevée, cliquez sur le lien Empreinte digitale sur la ligne correspondante dans le tableau.

La page Détails de la transaction s'affiche. En plus de la table des détails en haut, elle affiche les informations suivantes:

  • Une barre affichant des valeurs numériques pour chacune de ces métriques:

    • Nombre moyen d'octets: nombre moyen d'octets écrits par la transaction.
    • Latence moyenne: nombre moyen de secondes issues de la première opération de la transaction à valider ou à annuler.
    • Latence moyenne de commit: durée moyenne de secondes nécessaires pour effectuer l'opération de commit.
    • Nombre total de tentatives: nombre total de tentatives de transaction.
    • Nombre total d'abandons: nombre total de tentatives de transaction qui ont été annulées, y compris celles qui ont été annulées avant d'appeler la méthode de commit de la transaction.
  • Graphiques illustrant ces valeurs

    De plus, le graphique Nombre moyen de participants indique le nombre moyen de participants à chaque tentative de validation.

Page d'informations des insights sur les transactions

Déterminez si la forme de la transaction peut être optimisée pour réduire les latences. Envisagez d'appliquer les pratiques recommandées pour réduire les conflits de verrouillage.

Étape suivante