Événements d'attente illimités dans les bases de données - Amazon Aurora
IO : événement TwophaseFilePoolWrite d'attenteIO : événement TwophaseFilePoolRead d'attenteAuroraLimitless:Événement d'attente ConnectAuroraLimitless: événement AsyncConnect d'attenteAuroraLimitless: événement RemoteStatementSetup d'attenteAuroraLimitless:Événement d'DDLExecution attente à distanceAuroraLimitless: événement RemoteStatementExecution d'attenteAuroraLimitless: événement FetchRemoteResults d'attenteAuroraLimitless: événement AsyncGetInitialResponse d'attenteAuroraLimitless: événement AsyncGetNextResponse d'attenteAuroraLimitless: événement AbortedCommandCleanup d'attenteAuroraLimitless: événement DistributedCommitPrepare d'attenteAuroraLimitless: événement DistributedCommit d'attenteAuroraLimitless: événement DistributedCommitPrepareThrottle d'attenteAuroraLimitless: événement PreparedTransactionResolution d'attenteAuroraLimitless: événement SendPreparedTransactionOutcome d'attenteAuroraLimitless: événement CommitClockBarrier d'attenteAuroraLimitless: événement SnapshotClockBarrier d'attenteAuroraLimitless: événement ReaderSnapshotClockBarrier d'attenteAuroraLimitless: événement GatherDistributedDeadlockGraph d'attenteAuroraLimitless: événement DistributedDeadlockDetection d'attenteAuroraLimitless: événement DistributedDeadlockAbort d'attenteAuroraLimitless: événement GatherRemoteStats d'attenteAuroraLimitless: événement GlobalSequenceRefresh d'attenteAuroraLimitless: événement GlobalVacuumTimeExchange d'attenteAuroraLimitless: événement DistributedTransactionMonitorGather d'attenteAuroraLimitlessActivity: événement AdminTaskSchedulerMain d'attenteAuroraLimitlessActivity: événement AdminTaskExecutorMain d'attenteAuroraLimitlessActivity: événement AdminTaskMonitorMain d'attenteAuroraLimitlessActivity: événement DatabaseCleanupMonitorMain d'attenteAuroraLimitlessActivity: événement TopologyCleanupMonitorMain d'attenteAuroraLimitlessActivity: événement ToplogyChangeMonitorMain d'attenteAuroraLimitlessActivity: événement DistributedTransactionMonitorMain d'attenteAuroraLimitlessActivity: événement GlobalVacuumMonitorMain d'attente

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.

Événements d'attente illimités dans les bases de données

Les événements d'attente suivants s'appliquent à la base de données Aurora PostgreSQL Limitless. Vous pouvez surveiller ces événements d'attente pour identifier les goulots d'étranglement dans le traitement des bases de données Aurora PostgreSQL Limitless.

Rubriques

IO : événement TwophaseFilePoolWrite d'attente

En attente de l'écriture d'un fichier d'état biphasé dans le pool de fichiers d'état biphasé. Il s'agit d'un événement spécifique à Aurora.

Causes

Les processus exécutant une PREPARED TRANSACTION commande, y compris les participants à une transaction distribuée avec Limitless Database, doivent conserver l'état de la transaction dans un fichier en deux phases. Aurora utilise un pool de fichiers pour améliorer les performances de cette opération.

Action

Il s'agit d'une opération d'E/S d'écriture synchrone. Par conséquent, une latence élevée lors de cet événement a des causes similaires IO:XactSync et peut être étudiée de la même manière. Si vous utilisez Limitless Database, vous devrez peut-être réduire le nombre de transactions distribuées exécutées.

IO : événement TwophaseFilePoolRead d'attente

En attente de la lecture d'un fichier d'état biphasé dans le pool de fichiers d'état biphasé.

Causes

Les processus exécutant une COMMIT PREPARED commande sur une transaction préalablement préparée, y compris les participants à une transaction distribuée par Limitless Database, peuvent avoir besoin de lire l'état de transaction précédemment persistant dans un fichier en deux phases. Aurora utilise un pool de fichiers pour améliorer les performances de cette opération.

Action

Il s'agit d'une opération d'E/S de lecture. Par conséquent, une latence élevée lors de cet événement a des causes similaires IO:DataFileRead et peut être étudiée de la même manière. Si vous utilisez Limitless Database, vous devrez peut-être réduire le nombre de transactions distribuées exécutées.

AuroraLimitless:Événement d'attente Connect

Le processus attend qu'une connexion à un autre nœud du cluster soit établie.

Causes

Des connexions sont établies entre les processus et les nœuds distants afin d'exécuter des requêtes, de distribuer des transactions et d'effectuer des opérations DDLs.

Action

Réduisez le nombre de connexions simultanées au cluster ou optimisez l'utilisation des requêtes cross-shard.

AuroraLimitless: événement AsyncConnect d'attente

Cet événement est similaire à Connect un processus en attente d'établissement de connexions parallèles à un ensemble de nœuds, mais il représente un processus en attente d'établissement.

Causes

L'établissement de connexions parallèles est le plus souvent effectué lors de l'exécution d'instructions DDL.

Action

Réduisez le nombre d'instructions DDL ou combinez-en plusieurs DDLs au cours d'une même session pour améliorer la réutilisation des connexions.

AuroraLimitless: événement RemoteStatementSetup d'attente

Le processus attend la configuration de l'exécution de requêtes à distance, telle que l'ouverture ou la fermeture du curseur ou la création d'une instruction préparée.

Causes

Cet événement d'attente augmente avec le nombre de scans effectués sur des tables fragmentées pour lesquelles l'instruction n'a pas pu être optimisée pour une seule partition.

Action

Optimisez les requêtes pour réduire le nombre d'opérations de numérisation ou augmenter l'éligibilité à l'optimisation d'une partition unique.

AuroraLimitless:Événement d'DDLExecution attente à distance

Le processus attend la fin d'une commande DDL distante.

Causes

Lorsque vous émettez une commande DDL sur un groupe de partitions de base de données, elle doit être distribuée aux autres routeurs et nœuds de partition avant de confirmer l'opération. Certaines opérations DDL peuvent s'exécuter pendant une longue période, car les données doivent être adaptées aux modifications du schéma.

Action

Identifiez les commandes DDL de longue durée afin de les optimiser.

AuroraLimitless: événement RemoteStatementExecution d'attente

Un processus attend la fin d'une commande à distance.

Causes

Une commande SQL est en cours d'exécution sur un nœud distant. Cet événement apparaîtra fréquemment pour les communications internes, telles que auto_analyze les vérifications du rythme cardiaque.

Action

Identifiez les commandes de longue durée à l'aide de la vue limitless_stat_statements. Dans de nombreux cas, il s'agit d'un événement attendu, en particulier pour les travailleurs d'arrière-plan ou les processus internes, et aucune action n'est nécessaire.

AuroraLimitless: événement FetchRemoteResults d'attente

Un processus attend de récupérer des lignes depuis un nœud distant.

Causes

Cet événement d'attente peut augmenter lors de l'extraction d'un grand nombre de lignes depuis une table distante, telle qu'une table fragmentée ou une table de référence.

Action

Identifiez les SELECT requêtes non optimisées à l'aide de la limitless_stat_statements vue. Optimisez les requêtes pour récupérer uniquement les données nécessaires. Vous pouvez également régler le rds_aurora.limitless_maximum_adaptive_fetch_size paramètre.

AuroraLimitless: événement AsyncGetInitialResponse d'attente

Le processus attend une réponse initiale lorsque le mode pipeline est utilisé pour l'exécution des requêtes.

Causes

Cela se produit généralement lors de l'exécution du routeur à la partition pour les requêtes comportant un placement de données sur une seule partition et fait partie intégrante de l'exécution normale.

Action

Aucune action supplémentaire n'est requise.

AuroraLimitless: événement AsyncGetNextResponse d'attente

Le processus attend des réponses supplémentaires lorsque le mode pipeline est utilisé dans l'exécution des requêtes.

Causes

Cela se produit généralement lors de l'exécution du routeur à la partition pour les requêtes comportant un placement de données sur une seule partition et fait partie intégrante de l'exécution normale.

Action

Aucune action supplémentaire n'est requise.

AuroraLimitless: événement AbortedCommandCleanup d'attente

Le processus attend le résultat d'une requête de nettoyage à distance. Des requêtes de nettoyage sont envoyées aux nœuds de partition pour les remettre dans un état approprié lorsqu'une transaction distribuée est terminée.

Causes

Le nettoyage des transactions est effectué lorsqu'une transaction est abandonnée, soit parce qu'une erreur a été détectée, soit parce qu'un utilisateur a émis une commande ABORT explicite ou annulé la requête en cours d'exécution.

Action

Recherchez la cause de l'annulation de la transaction.

AuroraLimitless: événement DistributedCommitPrepare d'attente

Le processus valide une transaction distribuée et attend que tous les participants accusent réception de la commande de préparation.

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer un commit distribué. Une longue attente DistributedCommitPrepare peut être causée par de longues attentes lors de l'IO:TwophaseFilePoolWriteévénement sur les nœuds participants.

Action

Réduisez le nombre de transactions qui modifient les données sur plusieurs nœuds. Étudiez IO:TwophaseFilePoolWrite les événements survenus dans d'autres nœuds du cluster.

AuroraLimitless: événement DistributedCommit d'attente

Le processus valide une transaction distribuée et attend que le participant principal accuse réception de la commande de validation.

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer un commit distribué. Une longue attente DistributedCommit peut être causée par les longues attentes du participant principal lors de l'IO:XactSyncévénement.

Action

Réduisez le nombre de transactions qui modifient les données sur plusieurs nœuds. Étudiez IO:XactSync les événements survenus dans d'autres nœuds du cluster.

AuroraLimitless: événement DistributedCommitPrepareThrottle d'attente

Le processus tente de préparer une transaction distribuée et est limité en raison des transactions préparées existantes.

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer un commit distribué. Les participants à ces transactions doivent effectuer une opération de préparation dans le cadre du protocole de validation. Aurora limite le nombre de préparations simultanées, et si cette limite est dépassée, le processus attendra l'DistributedCommitPrepareThrottleévénement.

Action

Réduisez le nombre de transactions qui modifient les données sur plusieurs nœuds. Étudiez les IO:TwophaseFilePoolWrite événements, car l'allongement de la durée de ces événements pourrait entraîner une accumulation de transactions préparées existantes, ce qui ralentirait les nouvelles tentatives de préparation.

AuroraLimitless: événement PreparedTransactionResolution d'attente

Le processus a rencontré un tuple modifié par une transaction distribuée qui est à l'état préparé. Le processus doit déterminer si la transaction distribuée sera visible dans son instantané.

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer un commit distribué comprenant une phase de préparation. Un nombre élevé de transactions distribuées ou une latence accrue sur les validations distribuées peuvent entraîner l'événement d'PreparedTransactionResolutionattente pour d'autres processus.

Action

Réduisez le nombre de transactions qui modifient les données sur plusieurs nœuds. Étudiez les événements liés aux validations distribuées, car l'allongement de la durée de ces événements pourrait augmenter le temps de latence dans le chemin de validation des transactions distribuées. Vous souhaiterez peut-être également étudier les charges du réseau et du processeur.

AuroraLimitless: événement SendPreparedTransactionOutcome d'attente

Le processus s'exécute sur un nœud qui coordonne une transaction distribuée et un autre processus s'est renseigné sur l'état de cette transaction, ou le processus a validé une transaction distribuée et envoie le résultat aux participants.

Causes

Les processus confrontés à l'événement PreparedTransactionResolution d'attente interrogeront le coordinateur des transactions. La réponse du coordinateur des transactions sera prise en compte SendPreparedTransactionOutcome.

Action

Réduisez le nombre de transactions qui modifient les données sur plusieurs nœuds. Étudiez les événements et/ou événements liés aux IO:TwophaseFilePoolWrite IO:TwophaseFilePoolRead validations distribuées, car ces événements peuvent augmenter le temps de latence dans le chemin de validation des transactions distribuées. Vous souhaiterez peut-être également étudier les charges du réseau et du processeur.

AuroraLimitless: événement CommitClockBarrier d'attente

Le processus valide une transaction et doit attendre pour s'assurer que le temps de validation attribué est définitivement dépassé pour tous les nœuds du cluster.

Causes

La saturation du processeur ou du réseau peut entraîner une augmentation de la dérive de l'horloge, ce qui peut entraîner une perte de temps pendant cet événement d'attente.

Action

Étudiez la saturation du processeur ou du réseau dans votre cluster.

AuroraLimitless: événement SnapshotClockBarrier d'attente

Le processus a reçu un instantané de l'heure d'un autre nœud avec une horloge dans le futur et attend que sa propre horloge atteigne cette heure.

Causes

Cela se produit généralement une fois que le processus a reçu les résultats d'une fonction qui a été transférée vers une partition et qu'il y a une dérive d'horloge entre les nœuds. La saturation du processeur ou du réseau peut entraîner une augmentation de la dérive de l'horloge, ce qui peut entraîner une perte de temps pendant cet événement d'attente.

Action

Examinez la saturation du processeur ou du réseau dans votre cluster.

AuroraLimitless: événement ReaderSnapshotClockBarrier d'attente

Cet événement se produit sur les nœuds de lecture. Le processus attend que le nœud de lecture rejoue le flux d'écriture afin que toutes les écritures effectuées avant l'heure de capture du processus soient appliquées.

Causes

Une augmentation du délai de réplication d'Aurora peut entraîner une augmentation du temps d'attente dans ce cas.

Action

Étudiez le décalage entre les répliques d'Aurora.

AuroraLimitless: événement GatherDistributedDeadlockGraph d'attente

Le processus communique avec d'autres nœuds pour collecter des graphes de verrouillage dans le cadre de la détection distribuée des blocages.

Causes

Lorsqu'un processus attend un verrou, il effectue une vérification de blocage distribuée après une attente de plus derds_aurora.limitless_distributed_deadlock_timeout.

Action

Étudiez les causes des problèmes de verrouillage dans votre application et envisagez de les réglerrds_aurora.limitless_distributed_deadlock_timeout.

AuroraLimitless: événement DistributedDeadlockDetection d'attente

Le processus communique avec d'autres nœuds pour détecter un blocage distribué.

Causes

Lorsqu'un processus attend un verrou, il effectue une vérification de blocage distribuée après une attente de plus derds_aurora.limitless_distributed_deadlock_timeout.

Action

Étudiez les causes des problèmes de verrouillage dans votre application et envisagez de les réglerrds_aurora.limitless_distributed_deadlock_timeout.

AuroraLimitless: événement DistributedDeadlockAbort d'attente

Le processus communique avec un autre nœud pour abandonner une session choisie comme victime dans un blocage distribué.

Causes

Les modèles d'application entraînent des blocages distribués.

Action

Étudiez les modèles d'applications qui entraînent des blocages distribués.

AuroraLimitless: événement GatherRemoteStats d'attente

Le processus collecte des statistiques à partir des autres nœuds du cluster.

Causes

Les requêtes et les vues de surveillance ou d'activité, par exemplelimitless_stat_activity, permettront de récupérer des statistiques provenant d'autres nœuds.

Action

Aucune action supplémentaire n'est requise.

AuroraLimitless: événement GlobalSequenceRefresh d'attente

Le processus génère une nouvelle valeur de séquence et doit demander un nouveau segment à partir de la séquence globale.

Causes

Un taux élevé de génération de valeurs de séquence peut entraîner des blocages dans ce cas s'il rds_aurora.limitless_sequence_chunk_size est insuffisant.

Action

Il s'agit d'un phénomène normal. Si vous constatez que cet événement dure trop longtemps, pensez à effectuer un réglagerds_aurora.limitless_sequence_chunk_size. Consultez la documentation sur les séquences dans Limitless Database.

AuroraLimitless: événement GlobalVacuumTimeExchange d'attente

Le processus consiste à échanger des données instantanées pour favoriser le vide.

Causes

Les nœuds de Limitless Database échangent les données temporelles de capture actives les plus anciennes avec d'autres nœuds afin de calculer l'heure limite correcte pour l'exécution sous vide.

Action

Aucune action supplémentaire n'est requise.

AuroraLimitless: événement DistributedTransactionMonitorGather d'attente

Le processus collecte les métadonnées des transactions à partir d'autres nœuds pour faciliter le nettoyage distribué des transactions.

Causes

Les nœuds de Limitless Database échangent des métadonnées de transaction avec d'autres nœuds afin de déterminer quand l'état des transactions distribuées peut être purgé.

Action

Aucune action supplémentaire n'est requise.

AuroraLimitlessActivity: événement AdminTaskSchedulerMain d'attente

En attente dans la boucle principale du processus du planificateur de tâches.

AuroraLimitlessActivity: événement AdminTaskExecutorMain d'attente

En attente dans la boucle principale du processus d'exécution de la tâche.

AuroraLimitlessActivity: événement AdminTaskMonitorMain d'attente

En attente dans la boucle principale du processus de surveillance des tâches.

AuroraLimitlessActivity: événement DatabaseCleanupMonitorMain d'attente

En attente dans la boucle principale du processus de surveillance du nettoyage de la base de données.

AuroraLimitlessActivity: événement TopologyCleanupMonitorMain d'attente

En attente dans la boucle principale du processus de surveillance du nettoyage de la topologie.

AuroraLimitlessActivity: événement ToplogyChangeMonitorMain d'attente

En attente dans la boucle principale du processus de surveillance des modifications de topologie.

AuroraLimitlessActivity: événement DistributedTransactionMonitorMain d'attente

En attente dans la boucle principale du processus de surveillance des transactions distribué.

AuroraLimitlessActivity: événement GlobalVacuumMonitorMain d'attente

En attente dans la boucle principale du processus mondial de surveillance du vide.