Identifier les transactions susceptibles de provoquer 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 génèrent des les latences.

Présentation

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

Les opérations Spanner acquièrent des verrous lorsqu'elles font partie read-write. Les transactions en lecture seule n'acquièrent pas de verrous.

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

  1. Recherchez un pic de latence à l'aide de Spanner Monitoring.
  2. Recherchez des problèmes de conflit de verrouillage à l'aide des insights sur les verrous.
  3. Identifiez les transactions problématiques à l'aide des insights sur les transactions.

Tarifs

L'utilisation de l'outil Insights sur les serrures ou Insights sur les transactions n'entraîne aucun coût supplémentaire.

Configurations régionales

Les insights sur les verrous et les insights sur les transactions sont disponibles dans à la fois régionaux et multirégionaux.

Conservation des données

La durée de conservation maximale des données affichées dans les tableaux de bord "Insights sur les serrures" et "Insights sur les transactions" est de 30 jours. Pour les graphiques, les données sont extraites de SPANNER_SYS.* tables, 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 pages Statistiques de verrouillage et Statistiques de transaction.

Rôles requis

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

Utilisateur Identity and Access Management (IAM)

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

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

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

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

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

  • Vous disposez du lecteur Cloud Spanner(roles/spanner.viewer).
  • Ils ne disposent que des droits de contrôle des accès ultraprécis et disposent du spanner_sys_reader. rôle système ou de l'un de ses rôles de membre.
  • Sélectionnez le rôle spanner_sys_reader ou un 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 pages À propos du contrôle ultraprécis des accès et Rôles système de contrôle des accès ultraprécis

Rechercher un pic de latence à l'aide de la surveillance Spanner

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 vous pouvez le confirmer à l'aide de la clé Spanner Tableau de bord Monitoring, qui affiche des graphiques pour différentes 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 percentile, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Instances 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 Compute Engine.

  4. Dans le graphique Latence, définissez Fonction sur Write et Centile sur 99th.

  5. Consultez le graphique actualisé pour voir s'il présente des pics.

Graphique illustrant 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 d'opérations par seconde, il est probable que les pics de latence soient dus au verrouillage les conflits.

Rechercher des problèmes de conflit de verrouillage à l'aide des informations de verrouillage

Le tableau de bord "Insights sur les verrous" vous permet d'afficher le temps d'attente de verrouillage dans une instance ou une base de données sélectionnée. Cela peut vous aider à vérifier si des latences élevées sont en raison de conflits de verrouillage.

Vérifier un temps d'attente de verrouillage élevé

Pour vérifier si le temps d'attente 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 délai d'attente total pour le verrouillage (Total Lock Wait). qui affiche le temps d'attente lié au verrouillage pour chaque base de données de l'instance.

    Les données affichées concernent 1 hour par défaut, comme le montre le sélecteur de temps en haut à droite du tableau de bord "Insights sur les verrouillages". Pour afficher les données sur une période plus longue, sélectionnez une autre option, comme 1 day.

    Pour en savoir plus, consultez la page Travailler avec des graphiques.

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

    Le graphique Délai total de verrouillage s'actualise et n'affiche que les données de la base de données sélectionnée.

    De plus, un autre graphique, Délai de verrouillage par plage de lignes, affiche des graphiques pour le 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.

Le tableau de bord des insights sur les verrouillages

Analyser les données d'attente de verrouillage

Le tableau Lock Insights (Insights sur les verrouillages) affiche les colonnes suivantes des SPANNER_SYS.LOCK_STATS tables système:

  • Clé de début de plage de lignes : clé de ligne où le conflit de verrouillage s'est produit. Lorsque le conflit implique une plage de lignes, la valeur représente la clé de début de la plage. Le signe plus (+) correspond à une plage.
  • Temps d'attente du verrouillage : temps d'attente total du verrouillage représenté visuellement sur une barre horizontale. Par défaut, le tableau utilise cette colonne pour les tris et affiche la clé de début de plage de lignes avec le temps d'attente de verrouillage le plus élevé en haut.
  • Attente de 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.
  • Attente de verrouillage (%) : temps d'attente des conflits de verrouillage enregistrés pour toutes les colonnes de la plage de clés de ligne, exprimé en pourcentage du temps d'attente de verrouillage total pour toutes les plages de clés de ligne de la base de données.

Pour mettre en corrélation les données du graphique Attente de verrouillage par plage de lignes avec celles du tableau, sélectionnez une ligne. La ligne associée s'affiche en surbrillance. Inversement, sélectionnez la case à cocher d’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 Filtre.

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

Le tableau affiche les données correspondant au filtre.

Afficher des exemples de demandes de verrouillage

Le panneau Exemples de demandes de verrouillage affiche des détails sur l'exemple de verrouillage de transactions concurrentes.

Pour afficher un exemple d'informations de demande de verrouillage pour une clé de début de plage de lignes, cliquez sur le lien associé dans le tableau.

Le tableau comporte les colonnes d'informations suivantes :

  • Sample column name (Exemple de nom de colonne) : colonne qui a rencontré le verrou un conflit 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 se disputer des verrous.

Page d'informations sur les insights sur les verrouillages

Identifier les transactions en conflit à l'aide des insights sur les transactions

Le tableau de bord "Informations sur les transactions" vous permet de 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) en haut de la page, sélectionnez la base de données qui affiche le temps d'attente de verrouillage le plus élevé.

    Vous pouvez également cliquer sur Afficher les transactions dans le tableau de bord "Insights sur les serrures" pour filtrer les transactions de lecture ou d'écriture dans une colonne d'exemple spécifique.

    Par défaut, les données affichées concernent 1 hour, le sélecteur de temps au niveau figurant dans l'angle supérieur droit du tableau de bord "Informations sur les transactions".

Le tableau de bord affiche les graphiques suivants:

  • Le graphique Latence moyenne (toutes les transactions) affiche la latence pour toutes les données des transactions dans l'instance.

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

Tableau de bord "Informations sur les transactions"

Analyser les données de transaction

Vous pouvez afficher et analyser les données de chaque transaction dans le tableau 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 : hachage de la balise de transaction, le cas échéant. Dans le cas contraire, le hachage est calculé en fonction des opérations associées à la transaction. La valeur est un lien qui mène à la page Transaction Details (Détails de la transaction).
  • Balise de transaction: balise de transaction facultative pour la transaction. Données statistiques pour plusieurs transactions portant la même balise est regroupée sur une ligne unique dont le libellé TRANSACTION_TAG correspond à .
  • Tables concernées: tables affectées par la transaction.
  • Table.column Read : colonnes à partir desquelles la transaction a lu.
  • Table.column Écrire: colonnes dans lesquelles la transaction a écrit.
  • Latence moyenne (secondes): nombre moyen de secondes nécessaires pour effectuer la transaction. Par défaut, le tableau est trié par ordre décroissant dans cette colonne.

Pour mettre en corrélation les données du graphique Latence moyenne (par transaction) avec celles du tableau, sélectionnez une ligne sur le graphique. La ligne correspondante du tableau s'affiche en surbrillance.

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

  1. Cliquez à côté de Filtrer.

  2. Sélectionnez une propriété, un opérateur et 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, comme celle qui affiche la latence la plus élevée, cliquez sur le lien Empreinte digitale sur la ligne correspondante du tableau.

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

  • 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 écoulées entre la première opération de la transaction et le commit ou l'abandon.
    • Latence moyenne du commit : nombre moyen de secondes nécessaires pour effectuer l'opération de commit.
    • Nombre total de tentatives: nombre total de tentatives de transaction.
    • Nombre total d'interruptions : nombre total de tentatives de transaction interrompues, y compris celles qui sont interrompues 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 dans chaque tentative de commit.

Page d'informations sur les insights sur les transactions

Vérifiez si la forme de la transaction peut être optimisée pour réduire les latences. Pensez à appliquer les pratiques recommandées pour réduire les conflits de verrouillage.

Étape suivante