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 AuroraLimitless:RemoteStatementExecution
Événement d’attente AuroraLimitless:DistributedCommitPrepare
Événement d’attente AuroraLimitless:DistributedCommitPrepareThrottle
Événement d’attente AuroraLimitless:PreparedTransactionResolution
Événement d’attente AuroraLimitless:SendPreparedTransactionOutcome
É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: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
É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.