postgresql所有的等待事件讲解
| wait event type | wait event name | description |
|---|---|---|
| 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. | |
| backendrandomlock | waiting to generate a random number. | |
| logicalrepworkerlock | waiting for action on logical replication worker to finish. | |
| clogtruncationlock | waiting to truncate the write-ahead log or waiting for write-ahead log truncation to finish. | |
| 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 to 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. | |
| parallel_query_dsa | waiting for parallel query dynamic shared memory allocation lock. | |
| tbm | waiting for tbm shared iterator lock. | |
| 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. | |
| logicallaunchermain | waiting in main loop of logical launcher process. | |
| logicalapplymain | waiting in main loop of logical apply process. | |
| pgstatmain | waiting in main loop of the statistics collector process. | |
| recoverywalall | waiting for wal from any kind of source (local, archive or stream) at recovery. | |
| 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 from the client. | |
| 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 | 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. | |
| executegather | waiting for activity from child process when executing gather node. | |
| 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. | |
| parallelfinish | waiting for parallel workers to finish computing. | |
| parallelbitmapscan | waiting for parallel bitmap scan to become initialized. | |
| procarraygroupupdate | waiting for group leader to clear transaction id at transaction end. | |
| 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. | |
| 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. | |
| logicalrewritewrite | waiting for a write of logical rewrite mappings. | |
| 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. | |
| walsyncmethodassign | waiting for data to reach stable storage while assigning wal sync method. | |
| walwrite | waiting for a write to a wal file. |