Événements d’attente Limitless Database - Amazon Aurora
Événement d’attente IO:TwophaseFilePoolWriteÉvénement d’attente IO:TwophaseFilePoolReadÉvénement d’attente AuroraLimitless:ConnectÉvénement d’attente AuroraLimitless:AsyncConnectÉvénement d’attente AuroraLimitless:RemoteStatementSetupÉvénement d’attente AuroraLimitless:RemoteDDLExecutionÉvénement d’attente AuroraLimitless:RemoteStatementExecutionÉvénement d’attente AuroraLimitless:FetchRemoteResultsÉvénement d’attente AuroraLimitless:AsyncGetInitialResponseÉvénement d’attente AuroraLimitless:AsyncGetNextResponseÉvénement d’attente AuroraLimitless:AbortedCommandCleanupÉvénement d’attente AuroraLimitless:DistributedCommitPrepareÉvénement d’attente AuroraLimitless:DistributedCommitÉvénement d’attente AuroraLimitless:DistributedCommitPrepareThrottleÉvénement d’attente AuroraLimitless:PreparedTransactionResolutionÉvénement d’attente AuroraLimitless:SendPreparedTransactionOutcomeÉvénement d’attente AuroraLimitless:CommitClockBarrierÉvénement d’attente AuroraLimitless:SnapshotClockBarrierÉvénement d’attente AuroraLimitless:ReaderSnapshotClockBarrierÉvénement d’attente AuroraLimitless:GatherDistributedDeadlockGraphÉvénement d’attente AuroraLimitless:DistributedDeadlockDetectionÉvénement d’attente AuroraLimitless:DistributedDeadlockAbortÉvénement d’attente AuroraLimitless:GatherRemoteStatsÉvénement d’attente AuroraLimitless:GlobalSequenceRefreshÉvénement d’attente AuroraLimitless:GlobalVacuumTimeExchangeÉvénement d’attente AuroraLimitless:DistributedTransactionMonitorGather Événement d’attente AuroraLimitlessActivity:AdminTaskSchedulerMainÉvénement d’attente AuroraLimitlessActivity:AdminTaskExecutorMainÉvénement d’attente AuroraLimitlessActivity:AdminTaskMonitorMainÉvénement d’attente AuroraLimitlessActivity:DatabaseCleanupMonitorMainÉvénement d’attente AuroraLimitlessActivity:TopologyCleanupMonitorMainÉvénement d’attente AuroraLimitlessActivity:ToplogyChangeMonitorMainÉvénement d’attente AuroraLimitlessActivity:DistributedTransactionMonitorMainÉvénement d’attente AuroraLimitlessActivity:GlobalVacuumMonitorMain

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

Événement d’attente IO:TwophaseFilePoolWrite

En attente de l’écriture d’un fichier d’état à deux phases dans le pool 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 pool de fichiers pour améliorer les performances de cette opération.

Action

Cette opération correspond à une écriture d’E/S synchrone ; ainsi, une latence importante sur cet événement résulte des mêmes causes que pour IO:XactSync 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.

Événement d’attente IO:TwophaseFilePoolRead

En attente de la lecture d’un fichier d’état à deux phases dans le pool 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 pool de fichiers pour améliorer les performances de cette opération.

Action

Il s’agit d’une opération d’E/S. 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.

Événement d’attente AuroraLimitless:Connect

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.

Événement d’attente AuroraLimitless:AsyncConnect

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.

Événement d’attente AuroraLimitless:RemoteStatementSetup

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.

Événement d’attente AuroraLimitless:RemoteDDLExecution

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.

Événement d’attente AuroraLimitless:RemoteStatementExecution

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.

Événement d’attente AuroraLimitless:FetchRemoteResults

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.

Événement d’attente AuroraLimitless:AsyncGetInitialResponse

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.

Événement d’attente AuroraLimitless:AsyncGetNextResponse

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.

Événement d’attente AuroraLimitless:AbortedCommandCleanup

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.

Événement d’attente AuroraLimitless:DistributedCommitPrepare

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.

Événement d’attente AuroraLimitless:DistributedCommit

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.

Événement d’attente AuroraLimitless:DistributedCommitPrepareThrottle

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.

Événement d’attente AuroraLimitless:PreparedTransactionResolution

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.

Événement d’attente AuroraLimitless:SendPreparedTransactionOutcome

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 sur le coordinateur de transactions rencontrera l’événement 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.

Événement d’attente AuroraLimitless:CommitClockBarrier

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.

Événement d’attente AuroraLimitless:SnapshotClockBarrier

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.

Événement d’attente AuroraLimitless:ReaderSnapshotClockBarrier

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.

Événement d’attente AuroraLimitless:GatherDistributedDeadlockGraph

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.

Événement d’attente AuroraLimitless:DistributedDeadlockDetection

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.

Événement d’attente AuroraLimitless:DistributedDeadlockAbort

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.

Événement d’attente AuroraLimitless:GatherRemoteStats

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.

Événement d’attente AuroraLimitless:GlobalSequenceRefresh

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.

Événement d’attente AuroraLimitless:GlobalVacuumTimeExchange

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.

Événement d’attente AuroraLimitless:DistributedTransactionMonitorGather

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.

Événement d’attente AuroraLimitlessActivity:AdminTaskSchedulerMain

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

Événement d’attente AuroraLimitlessActivity:AdminTaskExecutorMain

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

Événement d’attente AuroraLimitlessActivity:AdminTaskMonitorMain

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

Événement d’attente AuroraLimitlessActivity:DatabaseCleanupMonitorMain

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

Événement d’attente AuroraLimitlessActivity:TopologyCleanupMonitorMain

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

Événement d’attente AuroraLimitlessActivity:ToplogyChangeMonitorMain

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

Événement d’attente AuroraLimitlessActivity:DistributedTransactionMonitorMain

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

Événement d’attente AuroraLimitlessActivity:GlobalVacuumMonitorMain

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