Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Analyse des arborescences de verrouillage pour Amazon Aurora CloudWatch PostgreSQL avec Database Insights

Mode de mise au point
Analyse des arborescences de verrouillage pour Amazon Aurora CloudWatch PostgreSQL avec Database Insights - Amazon CloudWatch

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.

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
  1. Connectez-vous à la CloudWatch console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Choisissez Insights.

  3. Choisissez Database Insights.

  4. Choisissez la vue Instance de base de données.

  5. Choisissez une instance de base de données.

  6. Choisissez l'onglet Analyse de charge de la base de données.

  7. 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.

  8. 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.

    Verrouiller la table d'analyse
  9. Pour afficher les données de verrouillage d'un instantané, choisissez l'heure à laquelle Database Insights a pris l'instantané.

  10. Pour développer une arborescence de verrous, cliquez sur la flèche située à côté de l'ID de session.

    Arbre de verrouillage agrandi

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

session_id

Identifiant de session unique.

Oui

Le session_id est dérivé deHEX(pg_stat_activity.backend_start).HEX(pg_locks.pid).

pid

Le PID de ce backend.

Oui

pg_locks.pid

blocked_sessions_count

Le nombre de sessions bloquées par ce verrou.

Oui

Le blocked_sessions_count est dérivé du nombre de sessions IDs bloquées par ce verrou.

last_query_executed

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

pg_stat_activity.query

wait_event

Le nom de l'événement d'attente si le backend est actuellement en attente, sinon la valeur est NULL.

Oui

pg_stat_activity.wait_event

blocking_time_(In Seconds)

Durée (en secondes) écoulée depuis le début de ce verrouillage.

Oui

Le blocking_time_(In Seconds) est dérivé de l'heure de début de la transaction en attente (pg_locks.waitstart) pour le premier serveur.

blocking_mode

Mode de verrouillage maintenu par la session de blocage.

Non

pg_locks.mode

waiting_mode

Le mode de verrouillage demandé par la session d'attente.

Non

pg_locks.mode

application

Nom de l'application connectée à ce backend.

Non

pg_stat_activity.application_name

blocking_txn_start_time

Heure de début de la transaction bloquante ou nulle si aucune transaction n'est active.

Non

pg_stat_activity.xact_start

waiting_start_time

Heure à laquelle une session utilisateur en attente a commencé à attendre ce verrou, ou nulle si le verrou est maintenu.

Non

pg_locks.waitstart

session_start_time

Heure à laquelle une session utilisateur a été démarrée.

Non

pg_stat_activity.backend_start

state

État d'un backend.

Non

pg_stat_activity.state

wait_event_type

Type d'événement d'attente pour lequel cette session est en attente.

Non

pg_stat_activity.wait_event_type

last_query_exec_time

Heure à laquelle la dernière requête a été lancée.

Non

pg_stat_activity.query_start

user

Le nom de l'utilisateur connecté à ce backend.

Non

pg_stat_activity.usename

host

Le nom d'hôte du client connecté, tel qu'indiqué par une recherche DNS inversée declient_addr. Ce champ ne sera pas nul uniquement pour les connexions IP, et uniquement lorsque log_hostname est activé.

Non

pg_stat_activity.client_hostname

port

Le numéro de port TCP que le client utilise pour communiquer avec ce backend, ou -1 si un socket Unix est utilisé. Si ce champ est nul, cela indique qu'il s'agit d'un processus interne au serveur.

Non

pg_stat_activity.client_port

client_address

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

pg_stat_activity.client_addr

granted

La valeur est vraie si le verrouillage est maintenu et fausse si le verrouillage est attendu.

Non

pg_locks.granted

waiting_tuple

Le numéro de tuple ciblé par le verrou dans la page, ou nul si la cible n'est pas un tuple.

Non

pg_locks.tuple

waiting_page

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

pg_locks.page

waiting_transaction_id

L'ID de la transaction ciblée par le verrou, ou nul si la cible n'est pas un identifiant de transaction.

Non

pg_locks.transactionid

waiting_relation

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

pg_locks.relation

waiting_object_id

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

pg_locks.objid

waiting_database_id

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

pg_locks.database

waiting_database_name

Nom de la base de données dans laquelle se trouve la cible du verrou.

Non

pg_stat_activity.datname

waiting_locktype

Type de l'objet verrouillable : relation, extend, frozenid, page, tuple, transactionid, virtualxid, spectoken, object, userlock, advisory ou applytransaction.

Non

pg_locks.locktype

is_fastpath

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

pg_locks.fastpath

Pour plus d'informations sur les valeurs des pg_locks vues pg_stat_activity et, consultez les rubriques suivantes de la documentation PostgreSQL.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.