一、 pg 10版本
以下为pg 10版本,其他版本参考官方文档
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 execute txid_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 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. | |
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. | |
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 to 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. | |
ParallelBitmapScan |
Waiting for parallel bitmap scan to become initialized. | |
ParallelFinish |
Waiting for parallel workers to finish computing. | |
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. |
二、 PPAS 10版本
以下为PPAS 10版本,其他版本参考官方文档
1. 重点关注类型
Event type | Description |
Checkpoint waits | Checkpoint waits may indicate that checkpoint parameters need to be adjusted, (checkpoint segments and checkpoint timeout). |
WAL-related waits | WAL-related waits may indicate wal buffers are under-sized. |
SQL Parse waits | If the number of waits is high, try to use prepared statements. |
db file random reads | If high, check that appropriate indexes and statistics exist. |
db file random writes | If high, may need to decrease bgwriter delay. |
btree random lock acquires | May indicate indexes are being rebuilt. Schedule index builds during less active time |
2. 详细事件名
Event Name | Description |
bgwriter communication lock acquire |
The bgwriter (background writer) process has waited for the short-term lock that synchronizes messages between the bgwriter and a backend process. |
btree vacuum lock acquire | The server has waited for the short-term lock that synchronizes access to the next available vacuum cycle ID. |
buffer free list lock acquire | The server has waited for the short-term lock that synchronizes access to the list of free buffers (in shared memory). |
checkpoint lock acquire: | A server process has waited for the short-term lock that prevents simultaneous checkpoints. |
checkpoint start lock acquire | The server has waited for the short-term lock that synchronizes access to the bgwriter checkpoint schedule. |
clog control lock acquire | The server has waited for the short-term lock that synchronizes access to the commit log. |
control file lock acquire | The server has waited for the short-term lock that synchronizes write access to the control file (this should usually be a low number). |
db file extend | A server process has waited for the operating system while adding a new page to the end of a file. |
db file read | A server process has waited for the completion of a read (from disk). |
db file write | A server process has waited for the completion of a write (to disk). |
db file sync | A server process has waited for the operating system to flush all changes to disk. |
first buf mapping lock acquire | The server has waited for a short-term lock that synchronizes access to the shared-buffer mapping table. |
freespace lock acquire | The server has waited for the short-term lock that synchronizes access to the freespace map. |
Infinite Cache read | The server has waited for an Infinite Cache read request. |
Infinite Cache write | The server has waited for an Infinite Cache write request. |
lwlock acquire | The server has waited for a short-term lock that has not been described elsewhere in this section. |
multi xact gen lock acquire | The server has waited for the short-term lock that synchronizes access to the next available multi-transaction ID (when a SELECT...FOR SHARE statement executes). |
multi xact member lock acquire | The server has waited for the short-term lock that synchronizes access to the multi-transaction member file (when a SELECT...FOR SHARE statement executes). |
multi xact offset lock acquire | The server has waited for the short-term lock that synchronizes access to the multi-transaction offset file (when a SELECT...FOR SHARE statement executes). |
oid gen lock acquire | The server has waited for the short-term lock that synchronizes access to the next available OID (object ID). |
query plan | The server has computed the execution plan for a SQL statement. |
rel cache init lock acquire | The server has waited for the short-term lock that prevents simultaneous relation-cache loads/unloads. |
shmem index lock acquire | The server has waited for the short-term lock that synchronizes access to the shared-memory map. |
sinval lock acquire | The server has waited for the short-term lock that synchronizes access to the cache invalidation state. |
sql parse | The server has parsed a SQL statement. |
subtrans control lock acquire | The server has waited for the short-term lock that synchronizes access to the subtransaction log. |
tablespace create lock acquire | The server has waited for the short-term lock that prevents simultaneous CREATE TABLESPACE or DROP TABLESPACE commands. |
two phase state lock acquire | The server has waited for the short-term lock that synchronizes access to the list of prepared transactions. |
wal insert lock acquire | The server has waited for the short-term lock that synchronizes write access to the write-ahead log. A high number may indicate that WAL buffers are sized too small. |
wal write lock acquire | The server has waited for the short-term lock that synchronizes write- ahead log flushes. |
wal file sync | The server has waited for the write-ahead log to sync to disk (related to the wal_sync_method parameter which, by default, is 'fsync' - better performance can be gained by changing this parameter to open sync). |
wal flush | The server has waited for the write-ahead log to flush to disk. |
wal write | The server has waited for a write to the write-ahead log buffer (expect this value to be high). |
xid gen lock acquire | The server has waited for the short-term lock that synchronizes access to the next available transaction ID. |
参考
https://www.postgresql.org/docs/10/monitoring-stats.html
《阿里云PPAS兼容手册》