View a markdown version of this page

Événements d’attente Limitless Database - Amazon Aurora
IO:TwophaseFilePoolWrite événement d'attenteIO:TwophaseFilePoolRead événement d'attenteAuroraLimitless:Connect événement d'attenteAuroraLimitless:AsyncConnect événement d'attenteAuroraLimitless:RemoteStatementSetup événement d'attenteAuroraLimitless:RemoteDDLExecution événement d'attenteAuroraLimitless:RemoteStatementExecution événement d'attenteAuroraLimitless:FetchRemoteResults événement d'attenteAuroraLimitless:AsyncGetInitialResponse événement d'attenteAuroraLimitless:AsyncGetNextResponse événement d'attenteAuroraLimitless:AbortedCommandCleanup événement d'attenteAuroraLimitless:DistributedCommitPrepare événement d'attenteAuroraLimitless:DistributedCommit événement d'attenteAuroraLimitless:DistributedCommitPrepareThrottle événement d'attenteAuroraLimitless:PreparedTransactionResolution événement d'attenteAuroraLimitless:SendPreparedTransactionOutcome événement d'attenteAuroraLimitless:CommitClockBarrier événement d'attenteAuroraLimitless:SnapshotClockBarrier événement d'attenteAuroraLimitless:ReaderSnapshotClockBarrier événement d'attenteAuroraLimitless:GatherDistributedDeadlockGraph événement d'attenteAuroraLimitless:DistributedDeadlockDetection événement d'attenteAuroraLimitless:DistributedDeadlockAbort événement d'attenteAuroraLimitless:GatherRemoteStats événement d'attenteAuroraLimitless:GlobalSequenceRefresh événement d'attenteAuroraLimitless:GlobalVacuumTimeExchange événement d'attenteAuroraLimitless:DistributedTransactionMonitorGather événement d'attenteAuroraLimitlessActivity:AdminTaskSchedulerMain événement d'attenteAuroraLimitlessActivity:AdminTaskExecutorMain événement d'attenteAuroraLimitlessActivity:AdminTaskMonitorMain événement d'attenteAuroraLimitlessActivity:DatabaseCleanupMonitorMain événement d'attenteAuroraLimitlessActivity:TopologyCleanupMonitorMain événement d'attenteAuroraLimitlessActivity:ToplogyChangeMonitorMain événement d'attenteAuroraLimitlessActivity:DistributedTransactionMonitorMain événement d'attenteAuroraLimitlessActivity:GlobalVacuumMonitorMain événement 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 Limitless Database

Les événements d’attente suivants sont propres à Aurora PostgreSQL Limitless Database. Vous pouvez surveiller ces événements d’attente pour identifier les goulots d’étranglement dans le traitement au sein d’Aurora PostgreSQL Limitless Database.

Rubriques

IO:TwophaseFilePoolWrite événement d'attente

En attente de l’écriture d’un fichier d’état à deux phases dans le groupe de fichiers d’état à deux phases. Il s’agit d’un événement spécifique à Aurora.

Causes

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

Action

Il s'agit d'une I/O opération 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:TwophaseFilePoolRead événement d'attente

En attente de la lecture d’un fichier d’état à deux phases dans le groupe de fichiers d’état à deux phases.

Causes

Les processus qui exécutent une commande COMMIT PREPARED sur une transaction déjà préparée, y compris les participants d’une transaction distribuée Limitless Database, peuvent être amenés à lire l’état de transaction précédemment enregistré dans un fichier d’état à deux phases. Aurora utilise un groupe de fichiers pour améliorer les performances de cette opération.

Action

Il s'agit d'une I/O opération de lecture. Par conséquent, une latence importante sur cet événement résulte des mêmes causes que pour IO:DataFileRead et se traite de façon identique. Si vous utilisez Limitless Database, vous devrez peut-être réduire le nombre de transactions distribuées exécutées.

AuroraLimitless:Connect événement d'attente

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

Causes

Des connexions sont établies entre les processus et les nœuds distants pour exécuter des requêtes, des transactions distribuées et des DDL.

Action

Réduisez le nombre de connexions simultanées au cluster ou optimisez l’utilisation des requêtes inter-partitions.

AuroraLimitless:AsyncConnect événement d'attente

Cet événement, semblable à Connect, représente l’attente d’un processus pendant l’établissement de connexions parallèles avec plusieurs nœuds.

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 regroupez-en plusieurs au sein d’une même session afin d’améliorer la réutilisation des connexions.

AuroraLimitless:RemoteStatementSetup événement d'attente

Le processus est en attente de la configuration de l’exécution d’une requête distante, telle que l’ouverture ou la fermeture d’un curseur, ou la création d’une instruction préparée.

Causes

Cet événement d’attente augmente avec le nombre d’analyses effectuées sur des tables partitionnées lorsque l’instruction ne peut pas être optimisée pour une seule partition.

Action

Optimisez les requêtes pour réduire le nombre d’opérations d’analyse ou augmenter l’éligibilité à l’optimisation à partition unique.

AuroraLimitless:RemoteDDLExecution événement d'attente

Le processus attend la fin d’une commande DDL à distance.

Causes

Lorsque vous exécutez une commande DDL sur un groupe de partitions de base de données, celle-ci doit être distribuée aux autres routeurs et nœuds de partition avant la validation de 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:RemoteStatementExecution événement 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 dans le cadre des communications internes, telles que auto_analyze et les vérifications de pulsations.

Action

Identifiez les commandes de longue durée à l’aide de la vue limitless_stat_statements. Dans de nombreux cas, cet événement est attendu, en particulier pour les processus en arrière-plan ou internes, et aucune action n’est requise.

AuroraLimitless:FetchRemoteResults événement d'attente

Un processus attend de récupérer les lignes d’un nœud distant.

Causes

Cet événement d’attente tend à se produire davantage lorsqu’un grand volume de lignes est extrait d’une table distante, comme une table partitionnée ou une table de référence.

Action

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

AuroraLimitless:AsyncGetInitialResponse événement d'attente

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

Causes

Cet événement est généralement observé lors de l’exécution d’une requête entre le routeur et la partition lorsque les données sont situées sur une seule partition ; il s’agit d’un fonctionnement attendu.

Action

Aucune action supplémentaire n’est requise.

AuroraLimitless:AsyncGetNextResponse événement d'attente

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

Causes

Cet événement est généralement observé lors de l’exécution d’une requête entre le routeur et la partition lorsque les données sont situées sur une seule partition ; il s’agit d’un fonctionnement attendu.

Action

Aucune action supplémentaire n’est requise.

AuroraLimitless:AbortedCommandCleanup événement 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 afin de les ramener à un état approprié lorsque qu’une transaction distribuée se termine.

Causes

Le nettoyage d’une transaction est effectué lorsqu’une transaction est annulé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:DistributedCommitPrepare événement d'attente

Le processus valide une transaction distribuée et attend que chaque participant confirme la commande de préparation.

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer une validation distribuée. Une durée d’attente prolongée pour DistributedCommitPrepare peut résulter d’attentes importantes sur l’événement IO:TwophaseFilePoolWrite des nœuds participants.

Action

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

AuroraLimitless:DistributedCommit événement d'attente

Le processus valide une transaction distribuée et attend que le participant principal confirme la commande de préparation.

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer une validation distribuée. Une durée d’attente prolongée pour DistributedCommit peut résulter d’attentes importantes sur l’événement IO:XactSync le participant principal.

Action

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

AuroraLimitless:DistributedCommitPrepareThrottle événement d'attente

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

Causes

Les transactions qui modifient plusieurs nœuds doivent effectuer une validation distribuée. 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 ; si cette limite est dépassée, le processus attendra lors de l’événement DistributedCommitPrepareThrottle.

Action

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

AuroraLimitless:PreparedTransactionResolution événement 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 une validation distribuée comprenant une phase de préparation. Un nombre élevé de transactions distribuées ou une latence accrue lors des validations distribuées peuvent provoquer la survenue de l’événement d’attente PreparedTransactionResolution dans d’autres processus.

Action

Réduisez le nombre de transactions qui modifient les données sur plusieurs nœuds. Examinez les événements liés aux validations distribuées, car un allongement de leur durée peut augmenter la latence du processus de validation des transactions distribuées. Il peut aussi être utile d’analyser les charges du réseau et du CPU.

AuroraLimitless:SendPreparedTransactionOutcome événement 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 d’attente PreparedTransactionResolution 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. Examinez les événements liés aux validations distribuées, ainsi que les événements IO:TwophaseFilePoolWrite et IO:TwophaseFilePoolRead, car ils peuvent augmenter la latence du processus de validation des transactions distribuées. Il peut aussi être utile d’analyser les charges du réseau et du CPU.

AuroraLimitless:CommitClockBarrier événement d'attente

Le processus procède à la validation d’une transaction et doit attendre que le temps de validation attribué soit assurément passé pour tous les nœuds du cluster.

Causes

Une saturation du CPU ou du réseau peut accentuer la dérive de l’horloge, entraînant ainsi une perte de temps au cours de cet événement d’attente.

Action

Examinez la saturation de l’UC ou du réseau dans votre cluster.

AuroraLimitless:SnapshotClockBarrier événement d'attente

Le processus a reçu d’un autre nœud une heure d’instantané dont l’horloge est en avance, et il attend que sa propre horloge atteigne cette heure.

Causes

Cela se produit généralement lorsque le processus a reçu les résultats d’une fonction ayant été déléguée à une partition, et qu’il existe une dérive d’horloge entre les nœuds. Une saturation du CPU ou du réseau peut accentuer la dérive de l’horloge, entraînant ainsi une perte de temps au cours de cet événement d’attente.

Action

Examinez la saturation de l’UC ou du réseau dans votre cluster.

AuroraLimitless:ReaderSnapshotClockBarrier événement 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 d’instantané du processus aient été appliquées.

Causes

Une augmentation du retard de réplica Aurora peut entraîner une hausse du temps d’attente pour cet événement.

Action

Examinez le retard de réplica Aurora.

AuroraLimitless:GatherDistributedDeadlockGraph événement d'attente

Le processus communique avec les autres nœuds afin de collecter les graphes de verrous dans le cadre de la détection de blocages distribués.

Causes

Lorsqu’un processus attend un verrou, il effectue une vérification des blocages distribués après une attente supérieure à rds_aurora.limitless_distributed_deadlock_timeout.

Action

Examinez les causes de la contention sur les verrous dans votre application et envisagez d’ajuster le paramètre rds_aurora.limitless_distributed_deadlock_timeout.

AuroraLimitless:DistributedDeadlockDetection événement d'attente

Le processus communique avec les autres nœuds afin de détecter un blocage distribué.

Causes

Lorsqu’un processus attend un verrou, il effectue une vérification des blocages distribués après une attente supérieure à rds_aurora.limitless_distributed_deadlock_timeout.

Action

Examinez les causes de la contention sur les verrous dans votre application et envisagez d’ajuster le paramètre rds_aurora.limitless_distributed_deadlock_timeout.

AuroraLimitless:DistributedDeadlockAbort événement d'attente

Le processus communique avec un autre nœud afin d’interrompre une session choisie comme victime d’un interblocage distribué.

Causes

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

Action

Examinez les modèles d’application entraînant des blocages distribués.

AuroraLimitless:GatherRemoteStats événement 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 les statistiques provenant d’autres nœuds.

Action

Aucune action supplémentaire n’est requise.

AuroraLimitless:GlobalSequenceRefresh événement d'attente

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

Causes

Un taux élevé de génération de valeurs de séquence peut entraîner des blocages lors de cet événement si le paramètre 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, ajustez rds_aurora.limitless_sequence_chunk_size. Consultez la documentation sur les séquences dans Limitless Database.

AuroraLimitless:GlobalVacuumTimeExchange événement d'attente

Le processus échange des données d’instantané afin de prendre en charge l’opération de vacuum.

Causes

Les nœuds de Limitless Database échangent les données relatives à l’heure du plus ancien instantané actif avec d’autres nœuds, afin de calculer le moment de coupure correct pour l’exécution du vacuum.

Action

Aucune action supplémentaire n’est requise.

AuroraLimitless:DistributedTransactionMonitorGather événement d'attente

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

Causes

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

Action

Aucune action supplémentaire n’est requise.

AuroraLimitlessActivity:AdminTaskSchedulerMain événement d'attente

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

AuroraLimitlessActivity:AdminTaskExecutorMain événement d'attente

En attente dans la boucle principale du processus d’exécuteur de tâches.

AuroraLimitlessActivity:AdminTaskMonitorMain événement d'attente

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

AuroraLimitlessActivity:DatabaseCleanupMonitorMain événement d'attente

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

AuroraLimitlessActivity:TopologyCleanupMonitorMain événement d'attente

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

AuroraLimitlessActivity:ToplogyChangeMonitorMain événement d'attente

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

AuroraLimitlessActivity:DistributedTransactionMonitorMain événement d'attente

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

AuroraLimitlessActivity:GlobalVacuumMonitorMain événement d'attente

En attente dans la boucle principale du processus de surveillance du vacuum global.