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
AuroraLimitless: événement RemoteStatementExecution d'attente
AuroraLimitless: événement AsyncGetInitialResponse d'attente
AuroraLimitless: événement DistributedCommitPrepare d'attente
AuroraLimitless: événement DistributedCommitPrepareThrottle d'attente
AuroraLimitless: événement PreparedTransactionResolution d'attente
AuroraLimitless: événement SendPreparedTransactionOutcome d'attente
AuroraLimitless: événement ReaderSnapshotClockBarrier d'attente
AuroraLimitless: événement GatherDistributedDeadlockGraph d'attente
AuroraLimitless: événement DistributedDeadlockDetection d'attente
AuroraLimitless: événement DistributedDeadlockAbort d'attente
AuroraLimitless: événement GlobalVacuumTimeExchange d'attente
AuroraLimitless: événement DistributedTransactionMonitorGather d'attente
AuroraLimitlessActivity: événement AdminTaskSchedulerMain d'attente
AuroraLimitlessActivity: événement AdminTaskExecutorMain d'attente
AuroraLimitlessActivity: événement AdminTaskMonitorMain d'attente
AuroraLimitlessActivity: événement DatabaseCleanupMonitorMain d'attente
AuroraLimitlessActivity: événement TopologyCleanupMonitorMain d'attente
AuroraLimitlessActivity: événement ToplogyChangeMonitorMain d'attente
AuroraLimitlessActivity: événement DistributedTransactionMonitorMain d'attente
AuroraLimitlessActivity: événement GlobalVacuumMonitorMain d'attente
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'PreparedTransactionResolution
attente 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.