Analyse des arborescences de verrous pour Amazon Aurora PostgreSQL avec CloudWatch Database Insights
Pour résoudre les problèmes de performances causés par les verrous, vous pouvez analyser les arborescences de verrous pour les bases de données Amazon Aurora PostgreSQL avec CloudWatch Database Insights en utilisant les éléments suivants.
Menu déroulant Tranché par : sélectionnez les dimensions Objet bloquant, Session bloquante ou SQL bloquant dans le graphique Charge de base de données pour voir comment les principaux bloqueurs distincts contribuent à la charge de base de données au fil du temps. Grâce au graphique de charge de base de données, vous pouvez analyser si les principaux bloqueurs sont constants ou changent souvent. Vous pouvez ensuite résoudre les problèmes liés aux bloqueurs.
Onglet Analyse des verrous : sélectionnez Analyse de la charge de base de données, puis l’onglet Analyse des verrous pour afficher les informations relatives aux conflits de verrous dans votre base de données.
Note
CloudWatch Database Insights prend en charge l’analyse des verrous pour toutes les versions d’Aurora PostgreSQL. Pour analyser les arbres de verrous, vous devez activer le mode avancé de Database Insights. Pour plus d’informations sur l’activation du mode avancé, consultez Activation du mode avancé de Database Insights pour Amazon Aurora et Activation du mode avancé de Database Insights pour Amazon Relational Database Service
L’onglet Analyse des verrous fournit des informations sur les conflits de verrous dans votre base de données. La visualisation de l’arborescence des verrous montre les relations et les dépendances entre les demandes de verrous provenant de différentes sessions.
Database Insights capture des instantanés toutes les 15 secondes. Les instantanés affichent les données de verrouillage de votre base de données à un moment donné.
Note
Lorsque CloudWatch détecte un verrouillage élevé, il affiche la bannière Verrouillage élevé détecté dans l’onglet Analyse des verrous. CloudWatch détecte un verrouillage élevé s’il prend un instantané de verrouillage toutes les 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 arborescences de verrouillage, procédez comme suit.
Pour analyser les arborescences de verrouillage
Connectez-vous à AWS Management Console et ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/
. Choisissez Informations.
Choisissez Database Insights.
Sélectionnez la vue Instance de base de données.
Choisissez une instance de base de données.
Sélectionnez l’onglet Analyse de la charge de base de données.
Sélectionnez l’onglet Analyse des verrous.
Pour afficher les données de verrouillage d’une instance de base de données, sélectionnez une période d’un jour ou moins.
Sélectionnez une fenêtre d’instantané. Par défaut, Database Insights sélectionne la fenêtre d’instantané comportant le plus grand nombre de sessions bloquées.
Pour afficher les données de verrouillage d’un instantané, sélectionnez l’heure à laquelle Database Insights a pris l’instantané.
Pour développer un arbre de verrouillage, sélectionnez la flèche à côté de l’ID de session.
Données d’instantané de verrouillage
Database Insights fournit les informations suivantes pour chaque demande de verrouillage. Pour afficher les colonnes qui ne sont pas activées par défaut, sélectionnez l’icône Paramètres du tableau Arbres de verrouillage et activez les autres colonnes.
| Nom de la colonne | Définition | Colonne par défaut | Remarques |
|---|---|---|---|
|
|
Identifiant de session unique. |
Oui |
Le |
|
|
PID de ce dorsal. |
Oui |
|
|
|
Le nombre de sessions bloquées par ce verrou. |
Oui |
Le |
|
|
La dernière requête exécutée par cette session. Pour les bloqueurs, il peut ne pas s’agir de la requête qui détient le verrou de blocage. |
Oui |
|
|
|
Le nom de l’événement d’attente si le dorsal est actuellement en attente, sinon la valeur est NULL. |
Oui |
|
|
|
Le temps (en secondes) écoulé depuis le début de ce verrou. |
Oui |
Le |
|
|
Le mode de verrouillage détenu par la session de blocage. |
Non |
|
|
|
Le mode de verrouillage demandé par la session en attente. |
Non |
|
|
|
Le nom de l’application connectée à ce dorsal. |
Non |
|
|
|
L’heure de début de la transaction de blocage ou null si aucune transaction n’est active. |
Non |
|
|
|
L’heure à laquelle une session utilisateur en attente a commencé à attendre ce verrou, ou null si le verrou est détenu. |
Non |
|
|
|
L’heure à laquelle une session utilisateur a été démarrée. |
Non |
|
|
|
L’état d’un dorsal. |
Non |
|
|
|
Le type d’événement d’attente pour lequel cette session est en attente. |
Non |
|
|
|
L’heure à laquelle la dernière requête a été démarrée. |
Non |
|
|
|
Le nom de l’utilisateur connecté à ce dorsal. |
Non |
|
|
|
Le nom d’hôte du client connecté, tel que rapporté par une recherche DNS inverse de |
Non |
|
|
|
Le numéro de port TCP utilisé par le client pour communiquer avec ce dorsal, ou |
Non |
|
|
|
L’adresse IP du client connecté à ce dorsal. Si ce champ est nul, cela indique soit que le client est connecté via une socket Unix sur l’ordinateur serveur, soit qu’il s’agit d’un processus interne tel que autovacuum. |
Non |
|
|
|
La valeur est vraie si le verrou est maintenu et fausse si le verrou est en attente. |
Non |
|
|
|
Le numéro de tuple ciblé par le verrou dans la page, ou null si la cible n’est pas un tuple. |
Non |
|
|
|
Le numéro de page ciblé par le verrou dans la relation, ou null 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 null si la cible n’est pas un ID de transaction. |
Non |
|
|
|
L’OID de la relation ciblée par le verrou, ou null si la cible n’est pas une relation ou une partie d’une relation. |
Non |
|
|
|
L’OID de la cible du verrou dans son catalogue système, ou null 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 la cible du verrou existe, ou zéro si la cible est un objet partagé, ou null si la cible est un ID de transaction. |
Non |
|
|
|
Le nom de la base de données dans laquelle la cible du verrou existe. |
Non |
|
|
|
Le type de l’objet verrouillable : relation, extension, 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 a été pris à partir de la table de verrouillage principale. |
Non |
|
Pour plus d’informations sur les valeurs des vues pg_stat_activity et pg_locks, consultez les rubriques suivantes dans la documentation PostgreSQL.