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. |