Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour résoudre les problèmes de performances causés par les verrous, vous pouvez analyser les arborescences de verrous des bases de données Amazon Aurora PostgreSQL CloudWatch avec Database Insights en utilisant les méthodes suivantes.
Découpé par menu déroulant : choisissez les dimensions Blocage de l'objet, Blocage de session ou Blocage du SQL dans le graphique de charge de la base de données pour voir comment les principaux bloqueurs contribuent au chargement de la base de données au fil du temps. Avec le graphique de charge de la base de données, vous pouvez analyser si les principaux bloqueurs sont constants ou changent souvent. Ensuite, vous pouvez résoudre les problèmes liés aux bloqueurs.
Onglet Verrouillage : choisissez DB Load Analysis, puis cliquez sur l'onglet Verrouillage pour afficher les informations relatives aux conflits de verrouillage dans votre base de données.
Note
CloudWatch Database Insights prend en charge l'analyse des verrous pour toutes les versions d'Aurora PostgreSQL.
L'onglet Analyse des blocages fournit des informations sur les conflits de verrouillage pour votre base de données. La visualisation de l'arbre de verrouillage montre les relations et les dépendances entre les demandes de verrouillage provenant de différentes sessions.
Database Insights capture des instantanés toutes les 15 secondes. Les instantanés montrent les données de verrouillage de votre base de données à un moment donné.
Note
En cas de CloudWatch détection d'un verrouillage élevé, CloudWatch affiche la bannière Verrouillage élevé détecté pour l'onglet Verrouillage. CloudWatch détecte un verrouillage élevé s' CloudWatch il prend un instantané du verrouillage pour chaque intervalle de 15 secondes pendant 15 minutes consécutives.
Chaque nœud de l'arborescence représente une session spécifique. Le nœud parent est une session qui bloque ses nœuds enfants.
Pour analyser les arbres de verrouillage, procédez comme suit.
Pour analyser les arbres des écluses
Connectez-vous à la CloudWatch console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudwatch/
. Choisissez Insights.
Choisissez Database Insights.
Choisissez la vue Instance de base de données.
Choisissez une instance de base de données.
Choisissez l'onglet Analyse de charge de la base de données.
Choisissez l'onglet Verrouillage.
Pour afficher les données de verrouillage d'une instance de base de données, choisissez une période inférieure ou égale à 1 jour.
Choisissez une fenêtre de capture d'écran. Par défaut, Database Insights choisit la fenêtre de capture avec le plus grand nombre de sessions bloquées.
Pour afficher les données de verrouillage d'un instantané, choisissez l'heure à laquelle Database Insights a pris l'instantané.
Pour développer une arborescence de verrous, cliquez sur la flèche située à côté de l'ID de session.
Verrouiller les données de capture
Database Insights fournit les informations suivantes pour chaque demande de verrouillage. Pour afficher les colonnes qui ne sont pas activées par défaut, cliquez sur l'icône Paramètres du tableau Verrouiller les arbres et activez les autres colonnes.
Nom de la colonne | Définition | Colonne par défaut | Remarques |
---|---|---|---|
|
Identifiant de session unique. |
Oui |
Le |
|
Le PID de ce backend. |
Oui |
|
|
Le nombre de sessions bloquées par ce verrou. |
Oui |
Le |
|
Dernière requête exécutée par cette session. Pour les bloqueurs, ce n'est peut-être pas la requête qui contient le verrou de blocage. |
Oui |
|
|
Le nom de l'événement d'attente si le backend est actuellement en attente, sinon la valeur est NULL. |
Oui |
|
|
Durée (en secondes) écoulée depuis le début de ce verrouillage. |
Oui |
Le |
|
Mode de verrouillage maintenu par la session de blocage. |
Non |
|
|
Le mode de verrouillage demandé par la session d'attente. |
Non |
|
|
Nom de l'application connectée à ce backend. |
Non |
|
|
Heure de début de la transaction bloquante ou nulle si aucune transaction n'est active. |
Non |
|
|
Heure à laquelle une session utilisateur en attente a commencé à attendre ce verrou, ou nulle si le verrou est maintenu. |
Non |
|
|
Heure à laquelle une session utilisateur a été démarrée. |
Non |
|
|
État d'un backend. |
Non |
|
|
Type d'événement d'attente pour lequel cette session est en attente. |
Non |
|
|
Heure à laquelle la dernière requête a été lancée. |
Non |
|
|
Le nom de l'utilisateur connecté à ce backend. |
Non |
|
|
Le nom d'hôte du client connecté, tel qu'indiqué par une recherche DNS inversée de |
Non |
|
|
Le numéro de port TCP que le client utilise pour communiquer avec ce backend, ou |
Non |
|
|
Adresse IP du client connecté à ce backend. Si ce champ est nul, cela indique soit que le client est connecté via un socket Unix sur la machine serveur, soit qu'il s'agit d'un processus interne tel qu'autovacuum. |
Non |
|
|
La valeur est vraie si le verrouillage est maintenu et fausse si le verrouillage est attendu. |
Non |
|
|
Le numéro de tuple ciblé par le verrou dans la page, ou nul si la cible n'est pas un tuple. |
Non |
|
|
Le numéro de page ciblé par le verrou au sein de la relation, ou nul si la cible n'est pas une page de relation ou un tuple. |
Non |
|
|
L'ID de la transaction ciblée par le verrou, ou nul si la cible n'est pas un identifiant de transaction. |
Non |
|
|
L'OID de la relation ciblée par le verrou, ou nul si la cible n'est pas une relation ou une partie d'une relation. |
Non |
|
|
L'OID de la cible verrouillée dans son catalogue système, ou nul si la cible n'est pas un objet de base de données général. |
Non |
|
|
L'OID de la base de données dans laquelle se trouve la cible du verrou, ou zéro si la cible est un objet partagé, ou nul si la cible est un identifiant de transaction. |
Non |
|
|
Nom de la base de données dans laquelle se trouve la cible du verrou. |
Non |
|
|
Type de l'objet verrouillable : relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory ou applytransaction. |
Non |
|
|
La valeur est vraie si le verrou a été pris avec le chemin rapide et fausse s'il est extrait de la table de verrouillage principale. |
Non |
|
Pour plus d'informations sur les valeurs des pg_locks
vues pg_stat_activity
et, consultez les rubriques suivantes de la documentation PostgreSQL.