diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index f4653b190c5..9d8fa0bec3f 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -10238,9 +10238,11 @@ SCRAM-SHA-256$<iteration count>:&l tuple, transactionid, virtualxid, + speculative token, object, userlock, or - advisory + advisory. + (See also .) diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 4c6b40778bb..87502a49b6b 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -775,79 +775,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser The type of event for which the backend is waiting, if any; - otherwise NULL. Possible values are: - - - - LWLock: The backend is waiting for a lightweight lock. - Each such lock protects a particular data structure in shared memory. - wait_event will contain a name identifying the purpose - of the lightweight lock. (Some locks have specific names; others - are part of a group of locks each with a similar purpose.) - - - - - Lock: The backend is waiting for a heavyweight lock. - Heavyweight locks, also known as lock manager locks or simply locks, - primarily protect SQL-visible objects such as tables. However, - they are also used to ensure mutual exclusion for certain internal - operations such as relation extension. wait_event will - identify the type of lock awaited. - - - - - BufferPin: The server process is waiting to access to - a data buffer during a period when no other process can be - examining that buffer. Buffer pin waits can be protracted if - another process holds an open cursor which last read data from the - buffer in question. - - - - - Activity: The server process is idle. This is used by - system processes waiting for activity in their main processing loop. - wait_event will identify the specific wait point. - - - - - Extension: The server process is waiting for activity - in an extension module. This category is useful for modules to - track custom waiting points. - - - - - Client: The server process is waiting for some activity - on a socket from user applications, and that the server expects - something to happen that is independent from its internal processes. - wait_event will identify the specific wait point. - - - - - IPC: The server process is waiting for some activity - from another process in the server. wait_event will - identify the specific wait point. - - - - - Timeout: The server process is waiting for a timeout - to expire. wait_event will identify the specific wait - point. - - - - - IO: The server process is waiting for a IO to complete. - wait_event will identify the specific wait point. - - - + otherwise NULL. See . @@ -857,7 +785,8 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser Wait event name if backend is currently waiting, otherwise NULL. - See for details. + See through + . @@ -978,927 +907,1182 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser - <structname>wait_event</structname> Description + Wait Event Types + + + + Wait Event Type + Description + + - - - - Wait Event Type - Wait Event Name - Description - - + + + Activity + The server process is idle. This is used by + system processes waiting for activity in their main processing loop. + wait_event will identify the specific wait point. + See . + + + + BufferPin + The server process is waiting to access to + a data buffer during a period when no other process can be + examining that buffer. Buffer pin waits can be protracted if + another process holds an open cursor which last read data from the + buffer in question. See . + + + + Client + The server process is waiting for some activity + on a socket from user applications, and that the server expects + something to happen that is independent from its internal processes. + wait_event will identify the specific wait point. + See . + + + + Extension + The server process is waiting for activity + in an extension module. This category is useful for modules to + track custom waiting points. + See . + + + + IO + The server process is waiting for a IO to complete. + wait_event will identify the specific wait point. + See . + + + + IPC + The server process is waiting for some activity + from another process in the server. wait_event will + identify the specific wait point. + See . + + + + Lock + The backend is waiting for a heavyweight lock. + Heavyweight locks, also known as lock manager locks or simply locks, + primarily protect SQL-visible objects such as tables. However, + they are also used to ensure mutual exclusion for certain internal + operations such as relation extension. wait_event + will identify the type of lock awaited. + See . + + + + LWLock + The backend is waiting for a lightweight lock. + Each such lock protects a particular data structure in shared memory. + wait_event will contain a name identifying the purpose + of the lightweight lock. (Some locks have specific names; others + are part of a group of locks each with a similar purpose.) + See . + + + + Timeout + The server process is waiting for a timeout + to expire. wait_event will identify the specific wait + point. See . + + + + +
- - - LWLock - ShmemIndexLock - Waiting to find or allocate space in shared memory. - - - OidGenLock - Waiting to allocate or assign an OID. - - - XidGenLock - Waiting to allocate or assign a transaction id. - - - ProcArrayLock - Waiting to get a snapshot or clearing a transaction id at - transaction end. - - - SInvalReadLock - Waiting to retrieve or remove messages from shared invalidation - queue. - - - SInvalWriteLock - Waiting to add a message in shared invalidation queue. - - - WALBufMappingLock - Waiting to replace a page in WAL buffers. - - - WALWriteLock - Waiting for WAL buffers to be written to disk. - - - ControlFileLock - Waiting to read or update the control file or creation of a - new WAL file. - - - CheckpointLock - Waiting to perform checkpoint. - - - CLogControlLock - Waiting to read or update transaction status. - - - SubtransControlLock - Waiting to read or update sub-transaction information. - - - MultiXactGenLock - Waiting to read or update shared multixact state. - - - MultiXactOffsetControlLock - Waiting to read or update multixact offset mappings. - - - MultiXactMemberControlLock - Waiting to read or update multixact member mappings. - - - RelCacheInitLock - Waiting to read or write relation cache initialization - file. - - - CheckpointerCommLock - Waiting to manage fsync requests. - - - TwoPhaseStateLock - Waiting to read or update the state of prepared transactions. - - - TablespaceCreateLock - Waiting to create or drop the tablespace. - - - BtreeVacuumLock - Waiting to read or update vacuum-related information for a - B-tree index. - - - AddinShmemInitLock - Waiting to manage space allocation in shared memory. - - - AutovacuumLock - Autovacuum worker or launcher waiting to update or - read the current state of autovacuum workers. - - - AutovacuumScheduleLock - Waiting to ensure that the table it has selected for a vacuum - still needs vacuuming. - - - - SyncScanLock - Waiting to get the start location of a scan on a table for - synchronized scans. - - - RelationMappingLock - Waiting to update the relation map file used to store catalog - to filenode mapping. - - - - AsyncCtlLock - Waiting to read or update shared notification state. - - - AsyncQueueLock - Waiting to read or update notification messages. - - - SerializableXactHashLock - Waiting to retrieve or store information about serializable - transactions. - - - SerializableFinishedListLock - Waiting to access the list of finished serializable - transactions. - - - SerializablePredicateLockListLock - Waiting to perform an operation on a list of locks held by - serializable transactions. - - - OldSerXidLock - Waiting to read or record conflicting serializable - transactions. - - - SyncRepLock - Waiting to read or update information about synchronous - replicas. - - - BackgroundWorkerLock - Waiting to read or update background worker state. - - - DynamicSharedMemoryControlLock - Waiting to read or update dynamic shared memory state. - - - AutoFileLock - Waiting to update the postgresql.auto.conf file. - - - ReplicationSlotAllocationLock - Waiting to allocate or free a replication slot. - - - ReplicationSlotControlLock - Waiting to read or update replication slot state. - - - CommitTsControlLock - Waiting to read or update transaction commit timestamps. - - - CommitTsLock - Waiting to read or update the last value set for the - transaction timestamp. - - - ReplicationOriginLock - Waiting to setup, drop or use replication origin. - - - MultiXactTruncationLock - Waiting to read or truncate multixact information. - - - OldSnapshotTimeMapLock - Waiting to read or update old snapshot control information. - - - LogicalRepWorkerLock - Waiting for action on logical replication worker to finish. - - - CLogTruncationLock - Waiting to execute pg_xact_status or update - the oldest transaction id available to it. - - - clog - Waiting for I/O on a clog (transaction status) buffer. - - - commit_timestamp - Waiting for I/O on commit timestamp buffer. - - - subtrans - Waiting for I/O a subtransaction buffer. - - - multixact_offset - Waiting for I/O on a multixact offset buffer. - - - multixact_member - Waiting for I/O on a multixact_member buffer. - - - async - Waiting for I/O on an async (notify) buffer. - - - oldserxid - Waiting for I/O on an oldserxid buffer. - - - wal_insert - Waiting to insert WAL into a memory buffer. - - - buffer_content - Waiting to read or write a data page in memory. - - - buffer_io - Waiting for I/O on a data page. - - - replication_origin - Waiting to read or update the replication progress. - - - replication_slot_io - Waiting for I/O on a replication slot. - - - proc - Waiting to read or update the fast-path lock information. - - - buffer_mapping - Waiting to associate a data block with a buffer in the buffer - pool. - - - lock_manager - Waiting to add or examine locks for backends, or waiting to - join or exit a locking group (used by parallel query). - - - predicate_lock_manager - Waiting to add or examine predicate lock information. - - - serializable_xact - Waiting to perform an operation on a serializable transaction - in a parallel query. - - - parallel_query_dsa - Waiting for parallel query dynamic shared memory allocation lock. - - - tbm - Waiting for TBM shared iterator lock. - - - parallel_append - Waiting to choose the next subplan during Parallel Append plan - execution. - - - parallel_hash_join - Waiting to allocate or exchange a chunk of memory or update - counters during Parallel Hash plan execution. - - - Lock - relation - Waiting to acquire a lock on a relation. - - - extend - Waiting to extend a relation. - - - page - Waiting to acquire a lock on page of a relation. - - - tuple - Waiting to acquire a lock on a tuple. - - - transactionid - Waiting for a transaction to finish. - - - virtualxid - Waiting to acquire a virtual xid lock. - - - speculative token - Waiting to acquire a speculative insertion lock. - - - object - Waiting to acquire a lock on a non-relation database object. - - - userlock - Waiting to acquire a user lock. - - - advisory - Waiting to acquire an advisory user lock. - - - BufferPin - BufferPin - Waiting to acquire a pin on a buffer. - - - Activity - ArchiverMain - Waiting in main loop of the archiver process. - - - AutoVacuumMain - Waiting in main loop of autovacuum launcher process. - - - BgWriterHibernate - Waiting in background writer process, hibernating. - - - BgWriterMain - Waiting in main loop of background writer process background worker. - - - CheckpointerMain - Waiting in main loop of checkpointer process. - - - LogicalApplyMain - Waiting in main loop of logical apply process. - - - LogicalLauncherMain - Waiting in main loop of logical launcher process. - - - PgStatMain - Waiting in main loop of the statistics collector process. - - - RecoveryWalStream - Waiting for WAL from a stream at recovery. - - - SysLoggerMain - Waiting in main loop of syslogger process. - - - WalReceiverMain - Waiting in main loop of WAL receiver process. - - - WalSenderMain - Waiting in main loop of WAL sender process. - - - WalWriterMain - Waiting in main loop of WAL writer process. - - - Client - ClientRead - Waiting to read data from the client. - - - ClientWrite - Waiting to write data to the client. - - - GSSOpenServer - Waiting to read data from the client while establishing the GSSAPI session. - - - LibPQWalReceiverConnect - Waiting in WAL receiver to establish connection to remote server. - - - LibPQWalReceiverReceive - Waiting in WAL receiver to receive data from remote server. - - - SSLOpenServer - Waiting for SSL while attempting connection. - - - WalReceiverWaitStart - Waiting for startup process to send initial data for streaming replication. - - - WalSenderWaitForWAL - Waiting for WAL to be flushed in WAL sender process. - - - WalSenderWriteData - Waiting for any activity when processing replies from WAL receiver in WAL sender process. - - - Extension - Extension - Waiting in an extension. - - - IPC - BackupWaitWalArchive - Waiting for WAL files required for the backup to be successfully archived. - - - BgWorkerShutdown - Waiting for background worker to shut down. - - - BgWorkerStartup - Waiting for background worker to start up. - - - BtreePage - Waiting for the page number needed to continue a parallel B-tree scan to become available. - - - CheckpointDone - Waiting for a checkpoint to complete. - - - CheckpointStart - Waiting for a checkpoint to start. - - - ClogGroupUpdate - Waiting for group leader to update transaction status at transaction end. - - - ExecuteGather - Waiting for activity from child process when executing Gather node. - - - Hash/Batch/Allocating - Waiting for an elected Parallel Hash participant to allocate a hash table. - - - Hash/Batch/Electing - Electing a Parallel Hash participant to allocate a hash table. - - - Hash/Batch/Loading - Waiting for other Parallel Hash participants to finish loading a hash table. - - - Hash/Build/Allocating - Waiting for an elected Parallel Hash participant to allocate the initial hash table. - - - Hash/Build/Electing - Electing a Parallel Hash participant to allocate the initial hash table. - - - Hash/Build/HashingInner - Waiting for other Parallel Hash participants to finish hashing the inner relation. - - - Hash/Build/HashingOuter - Waiting for other Parallel Hash participants to finish partitioning the outer relation. - - - Hash/GrowBatches/Allocating - Waiting for an elected Parallel Hash participant to allocate more batches. - - - Hash/GrowBatches/Deciding - Electing a Parallel Hash participant to decide on future batch growth. - - - Hash/GrowBatches/Electing - Electing a Parallel Hash participant to allocate more batches. - - - Hash/GrowBatches/Finishing - Waiting for an elected Parallel Hash participant to decide on future batch growth. - - - Hash/GrowBatches/Repartitioning - Waiting for other Parallel Hash participants to finishing repartitioning. - - - Hash/GrowBuckets/Allocating - Waiting for an elected Parallel Hash participant to finish allocating more buckets. - - - Hash/GrowBuckets/Electing - Electing a Parallel Hash participant to allocate more buckets. - - - Hash/GrowBuckets/Reinserting - Waiting for other Parallel Hash participants to finish inserting tuples into new buckets. - - - LogicalSyncData - Waiting for logical replication remote server to send data for initial table synchronization. - - - LogicalSyncStateChange - Waiting for logical replication remote server to change state. - - - MessageQueueInternal - Waiting for other process to be attached in shared message queue. - - - MessageQueuePutMessage - Waiting to write a protocol message to a shared message queue. - - - MessageQueueReceive - Waiting to receive bytes from a shared message queue. - - - MessageQueueSend - Waiting to send bytes to a shared message queue. - - - ParallelBitmapScan - Waiting for parallel bitmap scan to become initialized. - - - ParallelCreateIndexScan - Waiting for parallel CREATE INDEX workers to finish heap scan. - - - ParallelFinish - Waiting for parallel workers to finish computing. - - - ProcArrayGroupUpdate - Waiting for group leader to clear transaction id at transaction end. - - - Promote - Waiting for standby promotion. - - - RecoveryConflictSnapshot - Waiting for recovery conflict resolution on a vacuum cleanup. - - - RecoveryConflictTablespace - Waiting for recovery conflict resolution on dropping tablespace. - - - RecoveryPause - Waiting for recovery to be resumed. - - - ReplicationOriginDrop - Waiting for a replication origin to become inactive to be dropped. - - - ReplicationSlotDrop - Waiting for a replication slot to become inactive to be dropped. - - - SafeSnapshot - Waiting for a snapshot for a READ ONLY DEFERRABLE transaction. - - - SyncRep - Waiting for confirmation from remote server during synchronous replication. - - - Timeout - BaseBackupThrottle - Waiting during base backup when throttling activity. - - - PgSleep - Waiting in process that called pg_sleep. - - - RecoveryApplyDelay - Waiting to apply WAL at recovery because it is delayed. - - - RecoveryRetrieveRetryInterval - - Waiting when WAL data is not available from any kind of sources - (pg_wal, archive or stream) before trying - again to retrieve WAL data, at recovery. - - - - VacuumDelay - Waiting in a cost-based vacuum delay point. - - - IO - BufFileRead - Waiting for a read from a buffered file. - - - BufFileWrite - Waiting for a write to a buffered file. - - - ControlFileRead - Waiting for a read from the control file. - - - ControlFileSync - Waiting for the control file to reach stable storage. - - - ControlFileSyncUpdate - Waiting for an update to the control file to reach stable storage. - - - ControlFileWrite - Waiting for a write to the control file. - - - ControlFileWriteUpdate - Waiting for a write to update the control file. - - - CopyFileRead - Waiting for a read during a file copy operation. - - - CopyFileWrite - Waiting for a write during a file copy operation. - - - DataFileExtend - Waiting for a relation data file to be extended. - - - DataFileFlush - Waiting for a relation data file to reach stable storage. - - - DataFileImmediateSync - Waiting for an immediate synchronization of a relation data file to stable storage. - - - DataFilePrefetch - Waiting for an asynchronous prefetch from a relation data file. - - - DataFileRead - Waiting for a read from a relation data file. - - - DataFileSync - Waiting for changes to a relation data file to reach stable storage. - - - DataFileTruncate - Waiting for a relation data file to be truncated. - - - DataFileWrite - Waiting for a write to a relation data file. - - - DSMFillZeroWrite - Waiting to write zero bytes to a dynamic shared memory backing file. - - - LockFileAddToDataDirRead - Waiting for a read while adding a line to the data directory lock file. - - - LockFileAddToDataDirSync - Waiting for data to reach stable storage while adding a line to the data directory lock file. - - - LockFileAddToDataDirWrite - Waiting for a write while adding a line to the data directory lock file. - - - LockFileCreateRead - Waiting to read while creating the data directory lock file. - - - LockFileCreateSync - Waiting for data to reach stable storage while creating the data directory lock file. - - - LockFileCreateWrite - Waiting for a write while creating the data directory lock file. - - - LockFileReCheckDataDirRead - Waiting for a read during recheck of the data directory lock file. - - - LogicalRewriteCheckpointSync - Waiting for logical rewrite mappings to reach stable storage during a checkpoint. - - - LogicalRewriteMappingSync - Waiting for mapping data to reach stable storage during a logical rewrite. - - - LogicalRewriteMappingWrite - Waiting for a write of mapping data during a logical rewrite. - - - LogicalRewriteSync - Waiting for logical rewrite mappings to reach stable storage. - - - LogicalRewriteTruncate - Waiting for truncate of mapping data during a logical rewrite. - - - LogicalRewriteWrite - Waiting for a write of logical rewrite mappings. - - - ProcSignalBarrier - Waiting for a barrier event to be processed by all backends. - - - RelationMapRead - Waiting for a read of the relation map file. - - - RelationMapSync - Waiting for the relation map file to reach stable storage. - - - RelationMapWrite - Waiting for a write to the relation map file. - - - ReorderBufferRead - Waiting for a read during reorder buffer management. - - - ReorderBufferWrite - Waiting for a write during reorder buffer management. - - - ReorderLogicalMappingRead - Waiting for a read of a logical mapping during reorder buffer management. - - - ReplicationSlotRead - Waiting for a read from a replication slot control file. - - - ReplicationSlotRestoreSync - Waiting for a replication slot control file to reach stable storage while restoring it to memory. - - - ReplicationSlotSync - Waiting for a replication slot control file to reach stable storage. - - - ReplicationSlotWrite - Waiting for a write to a replication slot control file. - - - SLRUFlushSync - Waiting for SLRU data to reach stable storage during a checkpoint or database shutdown. - - - SLRURead - Waiting for a read of an SLRU page. - - - SLRUSync - Waiting for SLRU data to reach stable storage following a page write. - - - SLRUWrite - Waiting for a write of an SLRU page. - - - SnapbuildRead - Waiting for a read of a serialized historical catalog snapshot. - - - SnapbuildSync - Waiting for a serialized historical catalog snapshot to reach stable storage. - - - SnapbuildWrite - Waiting for a write of a serialized historical catalog snapshot. - - - TimelineHistoryFileSync - Waiting for a timeline history file received via streaming replication to reach stable storage. - - - TimelineHistoryFileWrite - Waiting for a write of a timeline history file received via streaming replication. - - - TimelineHistoryRead - Waiting for a read of a timeline history file. - - - TimelineHistorySync - Waiting for a newly created timeline history file to reach stable storage. - - - TimelineHistoryWrite - Waiting for a write of a newly created timeline history file. - - - TwophaseFileRead - Waiting for a read of a two phase state file. - - - TwophaseFileSync - Waiting for a two phase state file to reach stable storage. - - - TwophaseFileWrite - Waiting for a write of a two phase state file. - - - WALBootstrapSync - Waiting for WAL to reach stable storage during bootstrapping. - - - WALBootstrapWrite - Waiting for a write of a WAL page during bootstrapping. - - - WALCopyRead - Waiting for a read when creating a new WAL segment by copying an existing one. - - - WALCopySync - Waiting a new WAL segment created by copying an existing one to reach stable storage. - - - WALCopyWrite - Waiting for a write when creating a new WAL segment by copying an existing one. - - - WALInitSync - Waiting for a newly initialized WAL file to reach stable storage. - - - WALInitWrite - Waiting for a write while initializing a new WAL file. - - - WALRead - Waiting for a read from a WAL file. - - - WALSenderTimelineHistoryRead - Waiting for a read from a timeline history file during walsender timeline command. - - - WALSync - Waiting for a WAL file to reach stable storage. - - - WALSyncMethodAssign - Waiting for data to reach stable storage while assigning WAL sync method. - - - WALWrite - Waiting for a write to a WAL file. - - - - + + Wait Events of Type <literal>Activity</literal> + + + + Activity Wait Event + Description + + + + + + ArchiverMain + Waiting in main loop of the archiver process. + + + AutoVacuumMain + Waiting in main loop of autovacuum launcher process. + + + BgWriterHibernate + Waiting in background writer process, hibernating. + + + BgWriterMain + Waiting in main loop of background writer process background + worker. + + + CheckpointerMain + Waiting in main loop of checkpointer process. + + + LogicalApplyMain + Waiting in main loop of logical apply process. + + + LogicalLauncherMain + Waiting in main loop of logical launcher process. + + + PgStatMain + Waiting in main loop of the statistics collector process. + + + RecoveryWalStream + Waiting for WAL from a stream at recovery. + + + SysLoggerMain + Waiting in main loop of syslogger process. + + + WalReceiverMain + Waiting in main loop of WAL receiver process. + + + WalSenderMain + Waiting in main loop of WAL sender process. + + + WalWriterMain + Waiting in main loop of WAL writer process. + + + +
+ + + Wait Events of Type <literal>BufferPin</literal> + + + + BufferPin Wait Event + Description + + + + + + BufferPin + Waiting to acquire a pin on a buffer. + + + +
+ + + Wait Events of Type <literal>Client</literal> + + + + Client Wait Event + Description + + + + + + ClientRead + Waiting to read data from the client. + + + ClientWrite + Waiting to write data to the client. + + + GSSOpenServer + Waiting to read data from the client while establishing the GSSAPI + session. + + + LibPQWalReceiverConnect + Waiting in WAL receiver to establish connection to remote + server. + + + LibPQWalReceiverReceive + Waiting in WAL receiver to receive data from remote server. + + + SSLOpenServer + Waiting for SSL while attempting connection. + + + WalReceiverWaitStart + Waiting for startup process to send initial data for streaming + replication. + + + WalSenderWaitForWAL + Waiting for WAL to be flushed in WAL sender process. + + + WalSenderWriteData + Waiting for any activity when processing replies from WAL + receiver in WAL sender process. + + + +
+ + + Wait Events of Type <literal>Extension</literal> + + + + Extension Wait Event + Description + + + + + + Extension + Waiting in an extension. + + + +
+ + + Wait Events of Type <literal>IO</literal> + + + + IO Wait Event + Description + + + + + + BufFileRead + Waiting for a read from a buffered file. + + + BufFileWrite + Waiting for a write to a buffered file. + + + ControlFileRead + Waiting for a read from the control file. + + + ControlFileSync + Waiting for the control file to reach stable storage. + + + ControlFileSyncUpdate + Waiting for an update to the control file to reach stable + storage. + + + ControlFileWrite + Waiting for a write to the control file. + + + ControlFileWriteUpdate + Waiting for a write to update the control file. + + + CopyFileRead + Waiting for a read during a file copy operation. + + + CopyFileWrite + Waiting for a write during a file copy operation. + + + DSMFillZeroWrite + Waiting to write zero bytes to a dynamic shared memory backing + file. + + + DataFileExtend + Waiting for a relation data file to be extended. + + + DataFileFlush + Waiting for a relation data file to reach stable storage. + + + DataFileImmediateSync + Waiting for an immediate synchronization of a relation data file to + stable storage. + + + DataFilePrefetch + Waiting for an asynchronous prefetch from a relation data + file. + + + DataFileRead + Waiting for a read from a relation data file. + + + DataFileSync + Waiting for changes to a relation data file to reach stable storage. + + + DataFileTruncate + Waiting for a relation data file to be truncated. + + + DataFileWrite + Waiting for a write to a relation data file. + + + LockFileAddToDataDirRead + Waiting for a read while adding a line to the data directory lock + file. + + + LockFileAddToDataDirSync + Waiting for data to reach stable storage while adding a line to the + data directory lock file. + + + LockFileAddToDataDirWrite + Waiting for a write while adding a line to the data directory + lock file. + + + LockFileCreateRead + Waiting to read while creating the data directory lock + file. + + + LockFileCreateSync + Waiting for data to reach stable storage while creating the data + directory lock file. + + + LockFileCreateWrite + Waiting for a write while creating the data directory lock + file. + + + LockFileReCheckDataDirRead + Waiting for a read during recheck of the data directory lock + file. + + + LogicalRewriteCheckpointSync + Waiting for logical rewrite mappings to reach stable storage + during a checkpoint. + + + LogicalRewriteMappingSync + Waiting for mapping data to reach stable storage during a logical + rewrite. + + + LogicalRewriteMappingWrite + Waiting for a write of mapping data during a logical + rewrite. + + + LogicalRewriteSync + Waiting for logical rewrite mappings to reach stable + storage. + + + LogicalRewriteTruncate + Waiting for truncate of mapping data during a logical + rewrite. + + + LogicalRewriteWrite + Waiting for a write of logical rewrite mappings. + + + ProcSignalBarrier + Waiting for a barrier event to be processed by all + backends. + + + RelationMapRead + Waiting for a read of the relation map file. + + + RelationMapSync + Waiting for the relation map file to reach stable storage. + + + RelationMapWrite + Waiting for a write to the relation map file. + + + ReorderBufferRead + Waiting for a read during reorder buffer management. + + + ReorderBufferWrite + Waiting for a write during reorder buffer management. + + + ReorderLogicalMappingRead + Waiting for a read of a logical mapping during reorder buffer + management. + + + ReplicationSlotRead + Waiting for a read from a replication slot control file. + + + ReplicationSlotRestoreSync + Waiting for a replication slot control file to reach stable storage + while restoring it to memory. + + + ReplicationSlotSync + Waiting for a replication slot control file to reach stable + storage. + + + ReplicationSlotWrite + Waiting for a write to a replication slot control file. + + + SLRUFlushSync + Waiting for SLRU data to reach stable storage during a checkpoint + or database shutdown. + + + SLRURead + Waiting for a read of an SLRU page. + + + SLRUSync + Waiting for SLRU data to reach stable storage following a page + write. + + + SLRUWrite + Waiting for a write of an SLRU page. + + + SnapbuildRead + Waiting for a read of a serialized historical catalog + snapshot. + + + SnapbuildSync + Waiting for a serialized historical catalog snapshot to reach + stable storage. + + + SnapbuildWrite + Waiting for a write of a serialized historical catalog + snapshot. + + + TimelineHistoryFileSync + Waiting for a timeline history file received via streaming + replication to reach stable storage. + + + TimelineHistoryFileWrite + Waiting for a write of a timeline history file received via + streaming replication. + + + TimelineHistoryRead + Waiting for a read of a timeline history file. + + + TimelineHistorySync + Waiting for a newly created timeline history file to reach stable + storage. + + + TimelineHistoryWrite + Waiting for a write of a newly created timeline history + file. + + + TwophaseFileRead + Waiting for a read of a two phase state file. + + + TwophaseFileSync + Waiting for a two phase state file to reach stable storage. + + + TwophaseFileWrite + Waiting for a write of a two phase state file. + + + WALBootstrapSync + Waiting for WAL to reach stable storage during + bootstrapping. + + + WALBootstrapWrite + Waiting for a write of a WAL page during bootstrapping. + + + WALCopyRead + Waiting for a read when creating a new WAL segment by copying an + existing one. + + + WALCopySync + Waiting for a new WAL segment created by copying an existing one to + reach stable storage. + + + WALCopyWrite + Waiting for a write when creating a new WAL segment by copying an + existing one. + + + WALInitSync + Waiting for a newly initialized WAL file to reach stable + storage. + + + WALInitWrite + Waiting for a write while initializing a new WAL file. + + + WALRead + Waiting for a read from a WAL file. + + + WALSenderTimelineHistoryRead + Waiting for a read from a timeline history file during walsender + timeline command. + + + WALSync + Waiting for a WAL file to reach stable storage. + + + WALSyncMethodAssign + Waiting for data to reach stable storage while assigning WAL sync + method. + + + WALWrite + Waiting for a write to a WAL file. + + + +
+ + + Wait Events of Type <literal>IPC</literal> + + + + IPC Wait Event + Description + + + + + + BackupWaitWalArchive + Waiting for WAL files required for the backup to be successfully + archived. + + + BgWorkerShutdown + Waiting for background worker to shut down. + + + BgWorkerStartup + Waiting for background worker to start up. + + + BtreePage + Waiting for the page number needed to continue a parallel B-tree + scan to become available. + + + CheckpointDone + Waiting for a checkpoint to complete. + + + CheckpointStart + Waiting for a checkpoint to start. + + + ClogGroupUpdate + Waiting for group leader to update transaction status at + transaction end. + + + ExecuteGather + Waiting for activity from child process while + executing Gather node. + + + Hash/Batch/Allocating + Waiting for an elected Parallel Hash participant to allocate a hash + table. + + + Hash/Batch/Electing + Electing a Parallel Hash participant to allocate a hash table. + + + Hash/Batch/Loading + Waiting for other Parallel Hash participants to finish loading a + hash table. + + + Hash/Build/Allocating + Waiting for an elected Parallel Hash participant to allocate the + initial hash table. + + + Hash/Build/Electing + Electing a Parallel Hash participant to allocate the initial hash table. + + + Hash/Build/HashingInner + Waiting for other Parallel Hash participants to finish hashing the + inner relation. + + + Hash/Build/HashingOuter + Waiting for other Parallel Hash participants to finish partitioning + the outer relation. + + + Hash/GrowBatches/Allocating + Waiting for an elected Parallel Hash participant to allocate more + batches. + + + Hash/GrowBatches/Deciding + Electing a Parallel Hash participant to decide on future batch growth. + + + Hash/GrowBatches/Electing + Electing a Parallel Hash participant to allocate more batches. + + + Hash/GrowBatches/Finishing + Waiting for an elected Parallel Hash participant to decide on + future batch growth. + + + Hash/GrowBatches/Repartitioning + Waiting for other Parallel Hash participants to finishing + repartitioning. + + + Hash/GrowBuckets/Allocating + Waiting for an elected Parallel Hash participant to finish + allocating more buckets. + + + Hash/GrowBuckets/Electing + Electing a Parallel Hash participant to allocate more buckets. + + + Hash/GrowBuckets/Reinserting + Waiting for other Parallel Hash participants to finish inserting + tuples into new buckets. + + + LogicalSyncData + Waiting for logical replication remote server to send data for + initial table synchronization. + + + LogicalSyncStateChange + Waiting for logical replication remote server to change state. + + + MessageQueueInternal + Waiting for other process to be attached in shared message queue. + + + MessageQueuePutMessage + Waiting to write a protocol message to a shared message queue. + + + MessageQueueReceive + Waiting to receive bytes from a shared message queue. + + + MessageQueueSend + Waiting to send bytes to a shared message queue. + + + ParallelBitmapScan + Waiting for parallel bitmap scan to become initialized. + + + ParallelCreateIndexScan + Waiting for parallel CREATE INDEX workers to + finish heap scan. + + + ParallelFinish + Waiting for parallel workers to finish computing. + + + ProcArrayGroupUpdate + Waiting for group leader to clear transaction id at transaction end. + + + Promote + Waiting for standby promotion. + + + RecoveryConflictSnapshot + Waiting for recovery conflict resolution on a vacuum cleanup. + + + RecoveryConflictTablespace + Waiting for recovery conflict resolution on dropping tablespace. + + + RecoveryPause + Waiting for recovery to be resumed. + + + ReplicationOriginDrop + Waiting for a replication origin to become inactive to be dropped. + + + ReplicationSlotDrop + Waiting for a replication slot to become inactive to be dropped. + + + SafeSnapshot + Waiting for a snapshot for a READ ONLY DEFERRABLE + transaction. + + + SyncRep + Waiting for confirmation from remote server during synchronous + replication. + + + +
+ + + Wait Events of Type <literal>Lock</literal> + + + + Lock Wait Event + Description + + + + + + advisory + Waiting to acquire an advisory user lock. + + + extend + Waiting to extend a relation. + + + object + Waiting to acquire a lock on a non-relation database object. + + + page + Waiting to acquire a lock on page of a relation. + + + relation + Waiting to acquire a lock on a relation. + + + speculative token + Waiting to acquire a speculative insertion lock. + + + transactionid + Waiting for a transaction to finish. + + + tuple + Waiting to acquire a lock on a tuple. + + + userlock + Waiting to acquire a user lock. + + + virtualxid + Waiting to acquire a virtual xid lock. + + + +
+ + + Wait Events of Type <literal>LWLock</literal> + + + + LWLock Wait Event + Description + + + + + + AddinShmemInitLock + Waiting to manage space allocation in shared memory. + + + AsyncCtlLock + Waiting to read or update shared notification state. + + + AsyncQueueLock + Waiting to read or update notification messages. + + + AutoFileLock + Waiting to update the postgresql.auto.conf file. + + + AutovacuumLock + Autovacuum worker or launcher waiting to update or + read the current state of autovacuum workers. + + + AutovacuumScheduleLock + Waiting to ensure that the table selected for a vacuum + still needs vacuuming. + + + BackgroundWorkerLock + Waiting to read or update background worker state. + + + BtreeVacuumLock + Waiting to read or update vacuum-related information for a + B-tree index. + + + CLogControlLock + Waiting to read or update transaction status. + + + CLogTruncationLock + Waiting to execute pg_xact_status or update + the oldest transaction id available to it. + + + CheckpointLock + Waiting to perform checkpoint. + + + CheckpointerCommLock + Waiting to manage fsync requests. + + + CommitTsControlLock + Waiting to read or update transaction commit timestamps. + + + CommitTsLock + Waiting to read or update the last value set for the + transaction timestamp. + + + ControlFileLock + Waiting to read or update the control file or creation of a + new WAL file. + + + DynamicSharedMemoryControlLock + Waiting to read or update dynamic shared memory state. + + + LogicalRepWorkerLock + Waiting for action on logical replication worker to finish. + + + MultiXactGenLock + Waiting to read or update shared multixact state. + + + MultiXactMemberControlLock + Waiting to read or update multixact member mappings. + + + MultiXactOffsetControlLock + Waiting to read or update multixact offset mappings. + + + MultiXactTruncationLock + Waiting to read or truncate multixact information. + + + OidGenLock + Waiting to allocate or assign an OID. + + + OldSerXidLock + Waiting to read or record conflicting serializable + transactions. + + + OldSnapshotTimeMapLock + Waiting to read or update old snapshot control information. + + + ProcArrayLock + Waiting to get a snapshot or clearing a transaction id at + transaction end. + + + RelCacheInitLock + Waiting to read or write relation cache initialization file. + + + RelationMappingLock + Waiting to update the relation map file used to store catalog + to filenode mapping. + + + ReplicationOriginLock + Waiting to setup, drop or use replication origin. + + + ReplicationSlotAllocationLock + Waiting to allocate or free a replication slot. + + + ReplicationSlotControlLock + Waiting to read or update replication slot state. + + + SInvalReadLock + Waiting to retrieve or remove messages from shared invalidation + queue. + + + SInvalWriteLock + Waiting to add a message in shared invalidation queue. + + + SerializableFinishedListLock + Waiting to access the list of finished serializable + transactions. + + + SerializablePredicateLockListLock + Waiting to perform an operation on a list of locks held by + serializable transactions. + + + SerializableXactHashLock + Waiting to retrieve or store information about serializable + transactions. + + + ShmemIndexLock + Waiting to find or allocate space in shared memory. + + + SubtransControlLock + Waiting to read or update sub-transaction information. + + + SyncRepLock + Waiting to read or update information about synchronous + replicas. + + + SyncScanLock + Waiting to get the start location of a scan on a table for + synchronized scans. + + + TablespaceCreateLock + Waiting to create or drop the tablespace. + + + TwoPhaseStateLock + Waiting to read or update the state of prepared transactions. + + + WALBufMappingLock + Waiting to replace a page in WAL buffers. + + + WALWriteLock + Waiting for WAL buffers to be written to disk. + + + XidGenLock + Waiting to allocate or assign a transaction id. + + + async + Waiting for I/O on an async (notify) buffer. + + + buffer_content + Waiting to read or write a data page in memory. + + + buffer_io + Waiting for I/O on a data page. + + + buffer_mapping + Waiting to associate a data block with a buffer in the buffer + pool. + + + clog + Waiting for I/O on a clog (transaction status) buffer. + + + commit_timestamp + Waiting for I/O on commit timestamp buffer. + + + lock_manager + Waiting to add or examine locks for backends, or waiting to + join or exit a locking group (used by parallel query). + + + multixact_member + Waiting for I/O on a multixact_member buffer. + + + multixact_offset + Waiting for I/O on a multixact offset buffer. + + + oldserxid + Waiting for I/O on an oldserxid buffer. + + + parallel_append + Waiting to choose the next subplan during Parallel Append plan + execution. + + + parallel_hash_join + Waiting to allocate or exchange a chunk of memory or update + counters during Parallel Hash plan execution. + + + parallel_query_dsa + Waiting for parallel query dynamic shared memory allocation lock. + + + predicate_lock_manager + Waiting to add or examine predicate lock information. + + + proc + Waiting to read or update the fast-path lock information. + + + replication_origin + Waiting to read or update the replication progress. + + + replication_slot_io + Waiting for I/O on a replication slot. + + + serializable_xact + Waiting to perform an operation on a serializable transaction + in a parallel query. + + + subtrans + Waiting for I/O on a subtransaction buffer. + + + tbm + Waiting for TBM shared iterator lock. + + + wal_insert + Waiting to insert WAL into a memory buffer. + + + +
- For tranches registered by extensions, the name is specified by extension - and this will be displayed as wait_event. It is quite - possible that user has registered the tranche in one of the backends (by - having allocation in dynamic shared memory) in which case other backends - won't have that information, so we display extension for such - cases. + Extensions can add LWLock types to the list shown in + . In some cases, the name + assigned by an extension will not be available in all server processes; + so a wait event might be reported as + just extension rather than the + extension-assigned name. + + Wait Events of Type <literal>Timeout</literal> + + + + Timeout Wait Event + Description + + + + + + BaseBackupThrottle + Waiting during base backup when throttling activity. + + + PgSleep + Waiting in process that called pg_sleep. + + + RecoveryApplyDelay + Waiting to apply WAL at recovery because it is delayed. + + + RecoveryRetrieveRetryInterval + Waiting when WAL data is not available from any kind of sources + (pg_wal, archive or stream) before trying + again to retrieve WAL data, at recovery. + + + VacuumDelay + Waiting in a cost-based vacuum delay point. + + + +
+ - Here is an example of how wait events can be viewed + Here is an example of how wait events can be viewed: SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event is NOT NULL; @@ -4497,7 +4681,8 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS pid, Returns the wait event name if this backend is currently waiting, - otherwise NULL. See for details. + otherwise NULL. See through + .