diff options
Diffstat (limited to 'doc/src')
| -rw-r--r-- | doc/src/sgml/.gitignore | 1 | ||||
| -rw-r--r-- | doc/src/sgml/Makefile | 4 | ||||
| -rw-r--r-- | doc/src/sgml/filelist.sgml | 1 | ||||
| -rw-r--r-- | doc/src/sgml/meson.build | 12 | ||||
| -rw-r--r-- | doc/src/sgml/monitoring.sgml | 1271 |
5 files changed, 28 insertions, 1261 deletions
diff --git a/doc/src/sgml/.gitignore b/doc/src/sgml/.gitignore index d8e3dab3380..1ccb72227e2 100644 --- a/doc/src/sgml/.gitignore +++ b/doc/src/sgml/.gitignore @@ -17,6 +17,7 @@ /errcodes-table.sgml /keywords-table.sgml /version.sgml +/wait_event_types.sgml # Assorted byproducts from building the above /postgres-full.xml /INSTALL.html diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile index 71cbef230f3..1e55e531dbf 100644 --- a/doc/src/sgml/Makefile +++ b/doc/src/sgml/Makefile @@ -58,7 +58,7 @@ override XSLTPROCFLAGS += --stringparam pg.version '$(VERSION)' GENERATED_SGML = version.sgml \ features-supported.sgml features-unsupported.sgml errcodes-table.sgml \ - keywords-table.sgml + keywords-table.sgml wait_event_types.sgml ALLSGML := $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) $(GENERATED_SGML) @@ -111,6 +111,8 @@ errcodes-table.sgml: $(top_srcdir)/src/backend/utils/errcodes.txt generate-errco keywords-table.sgml: $(top_srcdir)/src/include/parser/kwlist.h $(wildcard $(srcdir)/keywords/sql*.txt) generate-keywords-table.pl $(PERL) $(srcdir)/generate-keywords-table.pl $(srcdir) > $@ +wait_event_types.sgml: $(top_srcdir)/src/backend/utils/activity/wait_event_names.txt $(top_srcdir)/src/backend/utils/activity/generate-wait_event_types.pl + $(PERL) $(top_srcdir)/src/backend/utils/activity/generate-wait_event_types.pl --docs $< ## ## Generation of some text files. diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index 5465f9a46d6..63b0fc2a469 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -42,6 +42,7 @@ <!ENTITY maintenance SYSTEM "maintenance.sgml"> <!ENTITY manage-ag SYSTEM "manage-ag.sgml"> <!ENTITY monitoring SYSTEM "monitoring.sgml"> +<!ENTITY wait_event_types SYSTEM "wait_event_types.sgml"> <!ENTITY regress SYSTEM "regress.sgml"> <!ENTITY runtime SYSTEM "runtime.sgml"> <!ENTITY config SYSTEM "config.sgml"> diff --git a/doc/src/sgml/meson.build b/doc/src/sgml/meson.build index c6d77b5a150..16c1aa980c9 100644 --- a/doc/src/sgml/meson.build +++ b/doc/src/sgml/meson.build @@ -46,6 +46,18 @@ doc_generated += custom_target('errcodes-table.sgml', capture: true, ) +doc_generated += custom_target('wait_event_types.sgml', + input: files( + '../../../src/backend/utils/activity/wait_event_names.txt'), + output: 'wait_event_types.sgml', + command: [perl, + files('../../../src/backend/utils/activity/generate-wait_event_types.pl'), + '--outdir', '@OUTDIR@', '--docs', '@INPUT@'], + build_by_default: false, + install: false, + capture: false, +) + # FIXME: this actually has further inputs, adding depfile support to # generate-keywords-table.pl is probably the best way to address that # robustly. diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 5cfdc70c03f..506aeaa8799 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -1100,1266 +1100,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser </tgroup> </table> - <table id="wait-event-activity-table"> - <title>Wait Events of Type <literal>Activity</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>Activity</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>ArchiverMain</literal></entry> - <entry>Waiting in main loop of archiver process.</entry> - </row> - <row> - <entry><literal>AutoVacuumMain</literal></entry> - <entry>Waiting in main loop of autovacuum launcher process.</entry> - </row> - <row> - <entry><literal>BgWriterHibernate</literal></entry> - <entry>Waiting in background writer process, hibernating.</entry> - </row> - <row> - <entry><literal>BgWriterMain</literal></entry> - <entry>Waiting in main loop of background writer process.</entry> - </row> - <row> - <entry><literal>CheckpointerMain</literal></entry> - <entry>Waiting in main loop of checkpointer process.</entry> - </row> - <row> - <entry><literal>LogicalApplyMain</literal></entry> - <entry>Waiting in main loop of logical replication apply process.</entry> - </row> - <row> - <entry><literal>LogicalLauncherMain</literal></entry> - <entry>Waiting in main loop of logical replication launcher process.</entry> - </row> - <row> - <entry><literal>LogicalParallelApplyMain</literal></entry> - <entry>Waiting in main loop of logical replication parallel apply - process.</entry> - </row> - <row> - <entry><literal>RecoveryWalStream</literal></entry> - <entry>Waiting in main loop of startup process for WAL to arrive, during - streaming recovery.</entry> - </row> - <row> - <entry><literal>SysLoggerMain</literal></entry> - <entry>Waiting in main loop of syslogger process.</entry> - </row> - <row> - <entry><literal>WalReceiverMain</literal></entry> - <entry>Waiting in main loop of WAL receiver process.</entry> - </row> - <row> - <entry><literal>WalSenderMain</literal></entry> - <entry>Waiting in main loop of WAL sender process.</entry> - </row> - <row> - <entry><literal>WalWriterMain</literal></entry> - <entry>Waiting in main loop of WAL writer process.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-bufferpin-table"> - <title>Wait Events of Type <literal>BufferPin</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>BufferPin</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>BufferPin</literal></entry> - <entry>Waiting to acquire an exclusive pin on a buffer.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-client-table"> - <title>Wait Events of Type <literal>Client</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>Client</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>ClientRead</literal></entry> - <entry>Waiting to read data from the client.</entry> - </row> - <row> - <entry><literal>ClientWrite</literal></entry> - <entry>Waiting to write data to the client.</entry> - </row> - <row> - <entry><literal>GSSOpenServer</literal></entry> - <entry>Waiting to read data from the client while establishing a GSSAPI - session.</entry> - </row> - <row> - <entry><literal>LibPQWalReceiverConnect</literal></entry> - <entry>Waiting in WAL receiver to establish connection to remote - server.</entry> - </row> - <row> - <entry><literal>LibPQWalReceiverReceive</literal></entry> - <entry>Waiting in WAL receiver to receive data from remote server.</entry> - </row> - <row> - <entry><literal>SSLOpenServer</literal></entry> - <entry>Waiting for SSL while attempting connection.</entry> - </row> - <row> - <entry><literal>WalSenderWaitForWAL</literal></entry> - <entry>Waiting for WAL to be flushed in WAL sender process.</entry> - </row> - <row> - <entry><literal>WalSenderWriteData</literal></entry> - <entry>Waiting for any activity when processing replies from WAL - receiver in WAL sender process.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-extension-table"> - <title>Wait Events of Type <literal>Extension</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>Extension</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>Extension</literal></entry> - <entry>Waiting in an extension.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-io-table"> - <title>Wait Events of Type <literal>IO</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>IO</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>BaseBackupRead</literal></entry> - <entry>Waiting for base backup to read from a file.</entry> - </row> - <row> - <entry><literal>BaseBackupSync</literal></entry> - <entry>Waiting for data written by a base backup to reach durable storage.</entry> - </row> - <row> - <entry><literal>BaseBackupWrite</literal></entry> - <entry>Waiting for base backup to write to a file.</entry> - </row> - <row> - <entry><literal>BufFileRead</literal></entry> - <entry>Waiting for a read from a buffered file.</entry> - </row> - <row> - <entry><literal>BufFileTruncate</literal></entry> - <entry>Waiting for a buffered file to be truncated.</entry> - </row> - <row> - <entry><literal>BufFileWrite</literal></entry> - <entry>Waiting for a write to a buffered file.</entry> - </row> - <row> - <entry><literal>ControlFileRead</literal></entry> - <entry>Waiting for a read from the <filename>pg_control</filename> - file.</entry> - </row> - <row> - <entry><literal>ControlFileSync</literal></entry> - <entry>Waiting for the <filename>pg_control</filename> file to reach - durable storage.</entry> - </row> - <row> - <entry><literal>ControlFileSyncUpdate</literal></entry> - <entry>Waiting for an update to the <filename>pg_control</filename> file - to reach durable storage.</entry> - </row> - <row> - <entry><literal>ControlFileWrite</literal></entry> - <entry>Waiting for a write to the <filename>pg_control</filename> - file.</entry> - </row> - <row> - <entry><literal>ControlFileWriteUpdate</literal></entry> - <entry>Waiting for a write to update the <filename>pg_control</filename> - file.</entry> - </row> - <row> - <entry><literal>CopyFileRead</literal></entry> - <entry>Waiting for a read during a file copy operation.</entry> - </row> - <row> - <entry><literal>CopyFileWrite</literal></entry> - <entry>Waiting for a write during a file copy operation.</entry> - </row> - <row> - <entry><literal>DSMAllocate</literal></entry> - <entry>Waiting for a dynamic shared memory segment to be - allocated.</entry> - </row> - <row> - <entry><literal>DSMFillZeroWrite</literal></entry> - <entry>Waiting to fill a dynamic shared memory backing file with - zeroes.</entry> - </row> - <row> - <entry><literal>DataFileExtend</literal></entry> - <entry>Waiting for a relation data file to be extended.</entry> - </row> - <row> - <entry><literal>DataFileFlush</literal></entry> - <entry>Waiting for a relation data file to reach durable storage.</entry> - </row> - <row> - <entry><literal>DataFileImmediateSync</literal></entry> - <entry>Waiting for an immediate synchronization of a relation data file to - durable storage.</entry> - </row> - <row> - <entry><literal>DataFilePrefetch</literal></entry> - <entry>Waiting for an asynchronous prefetch from a relation data - file.</entry> - </row> - <row> - <entry><literal>DataFileRead</literal></entry> - <entry>Waiting for a read from a relation data file.</entry> - </row> - <row> - <entry><literal>DataFileSync</literal></entry> - <entry>Waiting for changes to a relation data file to reach durable storage.</entry> - </row> - <row> - <entry><literal>DataFileTruncate</literal></entry> - <entry>Waiting for a relation data file to be truncated.</entry> - </row> - <row> - <entry><literal>DataFileWrite</literal></entry> - <entry>Waiting for a write to a relation data file.</entry> - </row> - <row> - <entry><literal>LockFileAddToDataDirRead</literal></entry> - <entry>Waiting for a read while adding a line to the data directory lock - file.</entry> - </row> - <row> - <entry><literal>LockFileAddToDataDirSync</literal></entry> - <entry>Waiting for data to reach durable storage while adding a line to the - data directory lock file.</entry> - </row> - <row> - <entry><literal>LockFileAddToDataDirWrite</literal></entry> - <entry>Waiting for a write while adding a line to the data directory - lock file.</entry> - </row> - <row> - <entry><literal>LockFileCreateRead</literal></entry> - <entry>Waiting to read while creating the data directory lock - file.</entry> - </row> - <row> - <entry><literal>LockFileCreateSync</literal></entry> - <entry>Waiting for data to reach durable storage while creating the data - directory lock file.</entry> - </row> - <row> - <entry><literal>LockFileCreateWrite</literal></entry> - <entry>Waiting for a write while creating the data directory lock - file.</entry> - </row> - <row> - <entry><literal>LockFileReCheckDataDirRead</literal></entry> - <entry>Waiting for a read during recheck of the data directory lock - file.</entry> - </row> - <row> - <entry><literal>LogicalRewriteCheckpointSync</literal></entry> - <entry>Waiting for logical rewrite mappings to reach durable storage - during a checkpoint.</entry> - </row> - <row> - <entry><literal>LogicalRewriteMappingSync</literal></entry> - <entry>Waiting for mapping data to reach durable storage during a logical - rewrite.</entry> - </row> - <row> - <entry><literal>LogicalRewriteMappingWrite</literal></entry> - <entry>Waiting for a write of mapping data during a logical - rewrite.</entry> - </row> - <row> - <entry><literal>LogicalRewriteSync</literal></entry> - <entry>Waiting for logical rewrite mappings to reach durable - storage.</entry> - </row> - <row> - <entry><literal>LogicalRewriteTruncate</literal></entry> - <entry>Waiting for truncate of mapping data during a logical - rewrite.</entry> - </row> - <row> - <entry><literal>LogicalRewriteWrite</literal></entry> - <entry>Waiting for a write of logical rewrite mappings.</entry> - </row> - <row> - <entry><literal>RelationMapRead</literal></entry> - <entry>Waiting for a read of the relation map file.</entry> - </row> - <row> - <entry><literal>RelationMapReplace</literal></entry> - <entry>Waiting for durable replacement of a relation map file.</entry> - </row> - <row> - <entry><literal>RelationMapWrite</literal></entry> - <entry>Waiting for a write to the relation map file.</entry> - </row> - <row> - <entry><literal>ReorderBufferRead</literal></entry> - <entry>Waiting for a read during reorder buffer management.</entry> - </row> - <row> - <entry><literal>ReorderBufferWrite</literal></entry> - <entry>Waiting for a write during reorder buffer management.</entry> - </row> - <row> - <entry><literal>ReorderLogicalMappingRead</literal></entry> - <entry>Waiting for a read of a logical mapping during reorder buffer - management.</entry> - </row> - <row> - <entry><literal>ReplicationSlotRead</literal></entry> - <entry>Waiting for a read from a replication slot control file.</entry> - </row> - <row> - <entry><literal>ReplicationSlotRestoreSync</literal></entry> - <entry>Waiting for a replication slot control file to reach durable storage - while restoring it to memory.</entry> - </row> - <row> - <entry><literal>ReplicationSlotSync</literal></entry> - <entry>Waiting for a replication slot control file to reach durable - storage.</entry> - </row> - <row> - <entry><literal>ReplicationSlotWrite</literal></entry> - <entry>Waiting for a write to a replication slot control file.</entry> - </row> - <row> - <entry><literal>SLRUFlushSync</literal></entry> - <entry>Waiting for SLRU data to reach durable storage during a checkpoint - or database shutdown.</entry> - </row> - <row> - <entry><literal>SLRURead</literal></entry> - <entry>Waiting for a read of an SLRU page.</entry> - </row> - <row> - <entry><literal>SLRUSync</literal></entry> - <entry>Waiting for SLRU data to reach durable storage following a page - write.</entry> - </row> - <row> - <entry><literal>SLRUWrite</literal></entry> - <entry>Waiting for a write of an SLRU page.</entry> - </row> - <row> - <entry><literal>SnapbuildRead</literal></entry> - <entry>Waiting for a read of a serialized historical catalog - snapshot.</entry> - </row> - <row> - <entry><literal>SnapbuildSync</literal></entry> - <entry>Waiting for a serialized historical catalog snapshot to reach - durable storage.</entry> - </row> - <row> - <entry><literal>SnapbuildWrite</literal></entry> - <entry>Waiting for a write of a serialized historical catalog - snapshot.</entry> - </row> - <row> - <entry><literal>TimelineHistoryFileSync</literal></entry> - <entry>Waiting for a timeline history file received via streaming - replication to reach durable storage.</entry> - </row> - <row> - <entry><literal>TimelineHistoryFileWrite</literal></entry> - <entry>Waiting for a write of a timeline history file received via - streaming replication.</entry> - </row> - <row> - <entry><literal>TimelineHistoryRead</literal></entry> - <entry>Waiting for a read of a timeline history file.</entry> - </row> - <row> - <entry><literal>TimelineHistorySync</literal></entry> - <entry>Waiting for a newly created timeline history file to reach durable - storage.</entry> - </row> - <row> - <entry><literal>TimelineHistoryWrite</literal></entry> - <entry>Waiting for a write of a newly created timeline history - file.</entry> - </row> - <row> - <entry><literal>TwophaseFileRead</literal></entry> - <entry>Waiting for a read of a two phase state file.</entry> - </row> - <row> - <entry><literal>TwophaseFileSync</literal></entry> - <entry>Waiting for a two phase state file to reach durable storage.</entry> - </row> - <row> - <entry><literal>TwophaseFileWrite</literal></entry> - <entry>Waiting for a write of a two phase state file.</entry> - </row> - <row> - <entry><literal>VersionFileWrite</literal></entry> - <entry>Waiting for the version file to be written while creating a database.</entry> - </row> - <row> - <entry><literal>WALBootstrapSync</literal></entry> - <entry>Waiting for WAL to reach durable storage during - bootstrapping.</entry> - </row> - <row> - <entry><literal>WALBootstrapWrite</literal></entry> - <entry>Waiting for a write of a WAL page during bootstrapping.</entry> - </row> - <row> - <entry><literal>WALCopyRead</literal></entry> - <entry>Waiting for a read when creating a new WAL segment by copying an - existing one.</entry> - </row> - <row> - <entry><literal>WALCopySync</literal></entry> - <entry>Waiting for a new WAL segment created by copying an existing one to - reach durable storage.</entry> - </row> - <row> - <entry><literal>WALCopyWrite</literal></entry> - <entry>Waiting for a write when creating a new WAL segment by copying an - existing one.</entry> - </row> - <row> - <entry><literal>WALInitSync</literal></entry> - <entry>Waiting for a newly initialized WAL file to reach durable - storage.</entry> - </row> - <row> - <entry><literal>WALInitWrite</literal></entry> - <entry>Waiting for a write while initializing a new WAL file.</entry> - </row> - <row> - <entry><literal>WALRead</literal></entry> - <entry>Waiting for a read from a WAL file.</entry> - </row> - <row> - <entry><literal>WALSenderTimelineHistoryRead</literal></entry> - <entry>Waiting for a read from a timeline history file during a walsender - timeline command.</entry> - </row> - <row> - <entry><literal>WALSync</literal></entry> - <entry>Waiting for a WAL file to reach durable storage.</entry> - </row> - <row> - <entry><literal>WALSyncMethodAssign</literal></entry> - <entry>Waiting for data to reach durable storage while assigning a new - WAL sync method.</entry> - </row> - <row> - <entry><literal>WALWrite</literal></entry> - <entry>Waiting for a write to a WAL file.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-ipc-table"> - <title>Wait Events of Type <literal>IPC</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>IPC</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>AppendReady</literal></entry> - <entry>Waiting for subplan nodes of an <literal>Append</literal> plan - node to be ready.</entry> - </row> - <row> - <entry><literal>ArchiveCleanupCommand</literal></entry> - <entry>Waiting for <xref linkend="guc-archive-cleanup-command"/> to - complete.</entry> - </row> - <row> - <entry><literal>ArchiveCommand</literal></entry> - <entry>Waiting for <xref linkend="guc-archive-command"/> to - complete.</entry> - </row> - <row> - <entry><literal>BackendTermination</literal></entry> - <entry>Waiting for the termination of another backend.</entry> - </row> - <row> - <entry><literal>BackupWaitWalArchive</literal></entry> - <entry>Waiting for WAL files required for a backup to be successfully - archived.</entry> - </row> - <row> - <entry><literal>BgWorkerShutdown</literal></entry> - <entry>Waiting for background worker to shut down.</entry> - </row> - <row> - <entry><literal>BgWorkerStartup</literal></entry> - <entry>Waiting for background worker to start up.</entry> - </row> - <row> - <entry><literal>BtreePage</literal></entry> - <entry>Waiting for the page number needed to continue a parallel B-tree - scan to become available.</entry> - </row> - <row> - <entry><literal>BufferIO</literal></entry> - <entry>Waiting for buffer I/O to complete.</entry> - </row> - <row> - <entry><literal>CheckpointDone</literal></entry> - <entry>Waiting for a checkpoint to complete.</entry> - </row> - <row> - <entry><literal>CheckpointStart</literal></entry> - <entry>Waiting for a checkpoint to start.</entry> - </row> - <row> - <entry><literal>ExecuteGather</literal></entry> - <entry>Waiting for activity from a child process while - executing a <literal>Gather</literal> plan node.</entry> - </row> - <row> - <entry><literal>HashBatchAllocate</literal></entry> - <entry>Waiting for an elected Parallel Hash participant to allocate a hash - table.</entry> - </row> - <row> - <entry><literal>HashBatchElect</literal></entry> - <entry>Waiting to elect a Parallel Hash participant to allocate a hash - table.</entry> - </row> - <row> - <entry><literal>HashBatchLoad</literal></entry> - <entry>Waiting for other Parallel Hash participants to finish loading a - hash table.</entry> - </row> - <row> - <entry><literal>HashBuildAllocate</literal></entry> - <entry>Waiting for an elected Parallel Hash participant to allocate the - initial hash table.</entry> - </row> - <row> - <entry><literal>HashBuildElect</literal></entry> - <entry>Waiting to elect a Parallel Hash participant to allocate the - initial hash table.</entry> - </row> - <row> - <entry><literal>HashBuildHashInner</literal></entry> - <entry>Waiting for other Parallel Hash participants to finish hashing the - inner relation.</entry> - </row> - <row> - <entry><literal>HashBuildHashOuter</literal></entry> - <entry>Waiting for other Parallel Hash participants to finish partitioning - the outer relation.</entry> - </row> - <row> - <entry><literal>HashGrowBatchesDecide</literal></entry> - <entry>Waiting to elect a Parallel Hash participant to decide on future - batch growth.</entry> - </row> - <row> - <entry><literal>HashGrowBatchesElect</literal></entry> - <entry>Waiting to elect a Parallel Hash participant to allocate more - batches.</entry> - </row> - <row> - <entry><literal>HashGrowBatchesFinish</literal></entry> - <entry>Waiting for an elected Parallel Hash participant to decide on - future batch growth.</entry> - </row> - <row> - <entry><literal>HashGrowBatchesReallocate</literal></entry> - <entry>Waiting for an elected Parallel Hash participant to allocate more - batches.</entry> - </row> - <row> - <entry><literal>HashGrowBatchesRepartition</literal></entry> - <entry>Waiting for other Parallel Hash participants to finish - repartitioning.</entry> - </row> - <row> - <entry><literal>HashGrowBucketsElect</literal></entry> - <entry>Waiting to elect a Parallel Hash participant to allocate more - buckets.</entry> - </row> - <row> - <entry><literal>HashGrowBucketsReallocate</literal></entry> - <entry>Waiting for an elected Parallel Hash participant to finish - allocating more buckets.</entry> - </row> - <row> - <entry><literal>HashGrowBucketsReinsert</literal></entry> - <entry>Waiting for other Parallel Hash participants to finish inserting - tuples into new buckets.</entry> - </row> - <row> - <entry><literal>LogicalApplySendData</literal></entry> - <entry>Waiting for a logical replication leader apply process to send - data to a parallel apply process.</entry> - </row> - <row> - <entry><literal>LogicalParallelApplyStateChange</literal></entry> - <entry>Waiting for a logical replication parallel apply process to change - state.</entry> - </row> - <row> - <entry><literal>LogicalSyncData</literal></entry> - <entry>Waiting for a logical replication remote server to send data for - initial table synchronization.</entry> - </row> - <row> - <entry><literal>LogicalSyncStateChange</literal></entry> - <entry>Waiting for a logical replication remote server to change - state.</entry> - </row> - <row> - <entry><literal>MessageQueueInternal</literal></entry> - <entry>Waiting for another process to be attached to a shared message - queue.</entry> - </row> - <row> - <entry><literal>MessageQueuePutMessage</literal></entry> - <entry>Waiting to write a protocol message to a shared message queue.</entry> - </row> - <row> - <entry><literal>MessageQueueReceive</literal></entry> - <entry>Waiting to receive bytes from a shared message queue.</entry> - </row> - <row> - <entry><literal>MessageQueueSend</literal></entry> - <entry>Waiting to send bytes to a shared message queue.</entry> - </row> - <row> - <entry><literal>ParallelBitmapScan</literal></entry> - <entry>Waiting for parallel bitmap scan to become initialized.</entry> - </row> - <row> - <entry><literal>ParallelCreateIndexScan</literal></entry> - <entry>Waiting for parallel <command>CREATE INDEX</command> workers to - finish heap scan.</entry> - </row> - <row> - <entry><literal>ParallelFinish</literal></entry> - <entry>Waiting for parallel workers to finish computing.</entry> - </row> - <row> - <entry><literal>ProcArrayGroupUpdate</literal></entry> - <entry>Waiting for the group leader to clear the transaction ID at - end of a parallel operation.</entry> - </row> - <row> - <entry><literal>ProcSignalBarrier</literal></entry> - <entry>Waiting for a barrier event to be processed by all - backends.</entry> - </row> - <row> - <entry><literal>Promote</literal></entry> - <entry>Waiting for standby promotion.</entry> - </row> - <row> - <entry><literal>RecoveryConflictSnapshot</literal></entry> - <entry>Waiting for recovery conflict resolution for a vacuum - cleanup.</entry> - </row> - <row> - <entry><literal>RecoveryConflictTablespace</literal></entry> - <entry>Waiting for recovery conflict resolution for dropping a - tablespace.</entry> - </row> - <row> - <entry><literal>RecoveryEndCommand</literal></entry> - <entry>Waiting for <xref linkend="guc-recovery-end-command"/> to - complete.</entry> - </row> - <row> - <entry><literal>RecoveryPause</literal></entry> - <entry>Waiting for recovery to be resumed.</entry> - </row> - <row> - <entry><literal>ReplicationOriginDrop</literal></entry> - <entry>Waiting for a replication origin to become inactive so it can be - dropped.</entry> - </row> - <row> - <entry><literal>ReplicationSlotDrop</literal></entry> - <entry>Waiting for a replication slot to become inactive so it can be - dropped.</entry> - </row> - <row> - <entry><literal>RestoreCommand</literal></entry> - <entry>Waiting for <xref linkend="guc-restore-command"/> to - complete.</entry> - </row> - <row> - <entry><literal>SafeSnapshot</literal></entry> - <entry>Waiting to obtain a valid snapshot for a <literal>READ ONLY - DEFERRABLE</literal> transaction.</entry> - </row> - <row> - <entry><literal>SyncRep</literal></entry> - <entry>Waiting for confirmation from a remote server during synchronous - replication.</entry> - </row> - <row> - <entry><literal>WalReceiverExit</literal></entry> - <entry>Waiting for the WAL receiver to exit.</entry> - </row> - <row> - <entry><literal>WalReceiverWaitStart</literal></entry> - <entry>Waiting for startup process to send initial data for streaming - replication.</entry> - </row> - <row> - <entry><literal>XactGroupUpdate</literal></entry> - <entry>Waiting for the group leader to update transaction status at - end of a parallel operation.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-lock-table"> - <title>Wait Events of Type <literal>Lock</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>Lock</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>advisory</literal></entry> - <entry>Waiting to acquire an advisory user lock.</entry> - </row> - <row> - <entry><literal>applytransaction</literal></entry> - <entry>Waiting to acquire a lock on a remote transaction being applied - by a logical replication subscriber.</entry> - </row> - <row> - <entry><literal>extend</literal></entry> - <entry>Waiting to extend a relation.</entry> - </row> - <row> - <entry><literal>frozenid</literal></entry> - <entry>Waiting to - update <structname>pg_database</structname>.<structfield>datfrozenxid</structfield> - and <structname>pg_database</structname>.<structfield>datminmxid</structfield>.</entry> - </row> - <row> - <entry><literal>object</literal></entry> - <entry>Waiting to acquire a lock on a non-relation database object.</entry> - </row> - <row> - <entry><literal>page</literal></entry> - <entry>Waiting to acquire a lock on a page of a relation.</entry> - </row> - <row> - <entry><literal>relation</literal></entry> - <entry>Waiting to acquire a lock on a relation.</entry> - </row> - <row> - <entry><literal>spectoken</literal></entry> - <entry>Waiting to acquire a speculative insertion lock.</entry> - </row> - <row> - <entry><literal>transactionid</literal></entry> - <entry>Waiting for a transaction to finish.</entry> - </row> - <row> - <entry><literal>tuple</literal></entry> - <entry>Waiting to acquire a lock on a tuple.</entry> - </row> - <row> - <entry><literal>userlock</literal></entry> - <entry>Waiting to acquire a user lock.</entry> - </row> - <row> - <entry><literal>virtualxid</literal></entry> - <entry>Waiting to acquire a virtual transaction ID lock; see - <xref linkend="transaction-id"/>.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table id="wait-event-lwlock-table"> - <title>Wait Events of Type <literal>LWLock</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>LWLock</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>AddinShmemInit</literal></entry> - <entry>Waiting to manage an extension's space allocation in shared - memory.</entry> - </row> - <row> - <entry><literal>AutoFile</literal></entry> - <entry>Waiting to update the <filename>postgresql.auto.conf</filename> - file.</entry> - </row> - <row> - <entry><literal>Autovacuum</literal></entry> - <entry>Waiting to read or update the current state of autovacuum - workers.</entry> - </row> - <row> - <entry><literal>AutovacuumSchedule</literal></entry> - <entry>Waiting to ensure that a table selected for autovacuum - still needs vacuuming.</entry> - </row> - <row> - <entry><literal>BackgroundWorker</literal></entry> - <entry>Waiting to read or update background worker state.</entry> - </row> - <row> - <entry><literal>BtreeVacuum</literal></entry> - <entry>Waiting to read or update vacuum-related information for a - B-tree index.</entry> - </row> - <row> - <entry><literal>BufferContent</literal></entry> - <entry>Waiting to access a data page in memory.</entry> - </row> - <row> - <entry><literal>BufferMapping</literal></entry> - <entry>Waiting to associate a data block with a buffer in the buffer - pool.</entry> - </row> - <row> - <entry><literal>CheckpointerComm</literal></entry> - <entry>Waiting to manage fsync requests.</entry> - </row> - <row> - <entry><literal>CommitTs</literal></entry> - <entry>Waiting to read or update the last value set for a - transaction commit timestamp.</entry> - </row> - <row> - <entry><literal>CommitTsBuffer</literal></entry> - <entry>Waiting for I/O on a commit timestamp SLRU buffer.</entry> - </row> - <row> - <entry><literal>CommitTsSLRU</literal></entry> - <entry>Waiting to access the commit timestamp SLRU cache.</entry> - </row> - <row> - <entry><literal>ControlFile</literal></entry> - <entry>Waiting to read or update the <filename>pg_control</filename> - file or create a new WAL file.</entry> - </row> - <row> - <entry><literal>DynamicSharedMemoryControl</literal></entry> - <entry>Waiting to read or update dynamic shared memory allocation - information.</entry> - </row> - <row> - <entry><literal>LockFastPath</literal></entry> - <entry>Waiting to read or update a process' fast-path lock - information.</entry> - </row> - <row> - <entry><literal>LockManager</literal></entry> - <entry>Waiting to read or update information - about <quote>heavyweight</quote> locks.</entry> - </row> - <row> - <entry><literal>LogicalRepLauncherDSA</literal></entry> - <entry>Waiting to access logical replication launcher's dynamic shared - memory allocator.</entry> - </row> - <row> - <entry><literal>LogicalRepLauncherHash</literal></entry> - <entry>Waiting to access logical replication launcher's shared - hash table.</entry> - </row> - <row> - <entry><literal>LogicalRepWorker</literal></entry> - <entry>Waiting to read or update the state of logical replication - workers.</entry> - </row> - <row> - <entry><literal>MultiXactGen</literal></entry> - <entry>Waiting to read or update shared multixact state.</entry> - </row> - <row> - <entry><literal>MultiXactMemberBuffer</literal></entry> - <entry>Waiting for I/O on a multixact member SLRU buffer.</entry> - </row> - <row> - <entry><literal>MultiXactMemberSLRU</literal></entry> - <entry>Waiting to access the multixact member SLRU cache.</entry> - </row> - <row> - <entry><literal>MultiXactOffsetBuffer</literal></entry> - <entry>Waiting for I/O on a multixact offset SLRU buffer.</entry> - </row> - <row> - <entry><literal>MultiXactOffsetSLRU</literal></entry> - <entry>Waiting to access the multixact offset SLRU cache.</entry> - </row> - <row> - <entry><literal>MultiXactTruncation</literal></entry> - <entry>Waiting to read or truncate multixact information.</entry> - </row> - <row> - <entry><literal>NotifyBuffer</literal></entry> - <entry>Waiting for I/O on a <command>NOTIFY</command> message SLRU - buffer.</entry> - </row> - <row> - <entry><literal>NotifyQueue</literal></entry> - <entry>Waiting to read or update <command>NOTIFY</command> messages.</entry> - </row> - <row> - <entry><literal>NotifyQueueTail</literal></entry> - <entry>Waiting to update limit on <command>NOTIFY</command> message - storage.</entry> - </row> - <row> - <entry><literal>NotifySLRU</literal></entry> - <entry>Waiting to access the <command>NOTIFY</command> message SLRU - cache.</entry> - </row> - <row> - <entry><literal>OidGen</literal></entry> - <entry>Waiting to allocate a new OID.</entry> - </row> - <row> - <entry><literal>OldSnapshotTimeMap</literal></entry> - <entry>Waiting to read or update old snapshot control information.</entry> - </row> - <row> - <entry><literal>ParallelAppend</literal></entry> - <entry>Waiting to choose the next subplan during Parallel Append plan - execution.</entry> - </row> - <row> - <entry><literal>ParallelHashJoin</literal></entry> - <entry>Waiting to synchronize workers during Parallel Hash Join plan - execution.</entry> - </row> - <row> - <entry><literal>ParallelQueryDSA</literal></entry> - <entry>Waiting for parallel query dynamic shared memory allocation.</entry> - </row> - <row> - <entry><literal>PerSessionDSA</literal></entry> - <entry>Waiting for parallel query dynamic shared memory allocation.</entry> - </row> - <row> - <entry><literal>PerSessionRecordType</literal></entry> - <entry>Waiting to access a parallel query's information about composite - types.</entry> - </row> - <row> - <entry><literal>PerSessionRecordTypmod</literal></entry> - <entry>Waiting to access a parallel query's information about type - modifiers that identify anonymous record types.</entry> - </row> - <row> - <entry><literal>PerXactPredicateList</literal></entry> - <entry>Waiting to access the list of predicate locks held by the current - serializable transaction during a parallel query.</entry> - </row> - <row> - <entry><literal>PgStatsData</literal></entry> - <entry>Waiting for shared memory stats data access</entry> - </row> - <row> - <entry><literal>PgStatsDSA</literal></entry> - <entry>Waiting for stats dynamic shared memory allocator access</entry> - </row> - <row> - <entry><literal>PgStatsHash</literal></entry> - <entry>Waiting for stats shared memory hash table access</entry> - </row> - <row> - <entry><literal>PredicateLockManager</literal></entry> - <entry>Waiting to access predicate lock information used by - serializable transactions.</entry> - </row> - <row> - <entry><literal>ProcArray</literal></entry> - <entry>Waiting to access the shared per-process data structures - (typically, to get a snapshot or report a session's transaction - ID).</entry> - </row> - <row> - <entry><literal>RelationMapping</literal></entry> - <entry>Waiting to read or update - a <filename>pg_filenode.map</filename> file (used to track the - filenode assignments of certain system catalogs).</entry> - </row> - <row> - <entry><literal>RelCacheInit</literal></entry> - <entry>Waiting to read or update a <filename>pg_internal.init</filename> - relation cache initialization file.</entry> - </row> - <row> - <entry><literal>ReplicationOrigin</literal></entry> - <entry>Waiting to create, drop or use a replication origin.</entry> - </row> - <row> - <entry><literal>ReplicationOriginState</literal></entry> - <entry>Waiting to read or update the progress of one replication - origin.</entry> - </row> - <row> - <entry><literal>ReplicationSlotAllocation</literal></entry> - <entry>Waiting to allocate or free a replication slot.</entry> - </row> - <row> - <entry><literal>ReplicationSlotControl</literal></entry> - <entry>Waiting to read or update replication slot state.</entry> - </row> - <row> - <entry><literal>ReplicationSlotIO</literal></entry> - <entry>Waiting for I/O on a replication slot.</entry> - </row> - <row> - <entry><literal>SerialBuffer</literal></entry> - <entry>Waiting for I/O on a serializable transaction conflict SLRU - buffer.</entry> - </row> - <row> - <entry><literal>SerializableFinishedList</literal></entry> - <entry>Waiting to access the list of finished serializable - transactions.</entry> - </row> - <row> - <entry><literal>SerializablePredicateList</literal></entry> - <entry>Waiting to access the list of predicate locks held by - serializable transactions.</entry> - </row> - <row> - <entry><literal>SerializableXactHash</literal></entry> - <entry>Waiting to read or update information about serializable - transactions.</entry> - </row> - <row> - <entry><literal>SerialSLRU</literal></entry> - <entry>Waiting to access the serializable transaction conflict SLRU - cache.</entry> - </row> - <row> - <entry><literal>SharedTidBitmap</literal></entry> - <entry>Waiting to access a shared TID bitmap during a parallel bitmap - index scan.</entry> - </row> - <row> - <entry><literal>SharedTupleStore</literal></entry> - <entry>Waiting to access a shared tuple store during parallel - query.</entry> - </row> - <row> - <entry><literal>ShmemIndex</literal></entry> - <entry>Waiting to find or allocate space in shared memory.</entry> - </row> - <row> - <entry><literal>SInvalRead</literal></entry> - <entry>Waiting to retrieve messages from the shared catalog invalidation - queue.</entry> - </row> - <row> - <entry><literal>SInvalWrite</literal></entry> - <entry>Waiting to add a message to the shared catalog invalidation - queue.</entry> - </row> - <row> - <entry><literal>SubtransBuffer</literal></entry> - <entry>Waiting for I/O on a sub-transaction SLRU buffer.</entry> - </row> - <row> - <entry><literal>SubtransSLRU</literal></entry> - <entry>Waiting to access the sub-transaction SLRU cache.</entry> - </row> - <row> - <entry><literal>SyncRep</literal></entry> - <entry>Waiting to read or update information about the state of - synchronous replication.</entry> - </row> - <row> - <entry><literal>SyncScan</literal></entry> - <entry>Waiting to select the starting location of a synchronized table - scan.</entry> - </row> - <row> - <entry><literal>TablespaceCreate</literal></entry> - <entry>Waiting to create or drop a tablespace.</entry> - </row> - <row> - <entry><literal>TwoPhaseState</literal></entry> - <entry>Waiting to read or update the state of prepared transactions.</entry> - </row> - <row> - <entry><literal>WALBufMapping</literal></entry> - <entry>Waiting to replace a page in WAL buffers.</entry> - </row> - <row> - <entry><literal>WALInsert</literal></entry> - <entry>Waiting to insert WAL data into a memory buffer.</entry> - </row> - <row> - <entry><literal>WALWrite</literal></entry> - <entry>Waiting for WAL buffers to be written to disk.</entry> - </row> - <row> - <entry><literal>WrapLimitsVacuum</literal></entry> - <entry>Waiting to update limits on transaction id and multixact - consumption.</entry> - </row> - <row> - <entry><literal>XactBuffer</literal></entry> - <entry>Waiting for I/O on a transaction status SLRU buffer.</entry> - </row> - <row> - <entry><literal>XactSLRU</literal></entry> - <entry>Waiting to access the transaction status SLRU cache.</entry> - </row> - <row> - <entry><literal>XactTruncation</literal></entry> - <entry>Waiting to execute <function>pg_xact_status</function> or update - the oldest transaction ID available to it.</entry> - </row> - <row> - <entry><literal>XidGen</literal></entry> - <entry>Waiting to allocate a new transaction ID.</entry> - </row> - </tbody> - </tgroup> - </table> - - <note> - <para> - Extensions can add <literal>LWLock</literal> types to the list shown in - <xref linkend="wait-event-lwlock-table"/>. In some cases, the name - assigned by an extension will not be available in all server processes; - so an <literal>LWLock</literal> wait event might be reported as - just <quote><literal>extension</literal></quote> rather than the - extension-assigned name. - </para> - </note> - - <table id="wait-event-timeout-table"> - <title>Wait Events of Type <literal>Timeout</literal></title> - <tgroup cols="2"> - <thead> - <row> - <entry><literal>Timeout</literal> Wait Event</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>BaseBackupThrottle</literal></entry> - <entry>Waiting during base backup when throttling activity.</entry> - </row> - <row> - <entry><literal>CheckpointWriteDelay</literal></entry> - <entry>Waiting between writes while performing a checkpoint.</entry> - </row> - <row> - <entry><literal>PgSleep</literal></entry> - <entry>Waiting due to a call to <function>pg_sleep</function> or - a sibling function.</entry> - </row> - <row> - <entry><literal>RecoveryApplyDelay</literal></entry> - <entry>Waiting to apply WAL during recovery because of a delay - setting.</entry> - </row> - <row> - <entry><literal>RecoveryRetrieveRetryInterval</literal></entry> - <entry>Waiting during recovery when WAL data is not available from any - source (<filename>pg_wal</filename>, archive or stream).</entry> - </row> - <row> - <entry><literal>RegisterSyncRequest</literal></entry> - <entry>Waiting while sending synchronization requests to the - checkpointer, because the request queue is full.</entry> - </row> - <row> - <entry><literal>SpinDelay</literal></entry> - <entry>Waiting while acquiring a contended spinlock.</entry> - </row> - <row> - <entry><literal>VacuumDelay</literal></entry> - <entry>Waiting in a cost-based vacuum delay point.</entry> - </row> - <row> - <entry><literal>VacuumTruncate</literal></entry> - <entry>Waiting to acquire an exclusive lock to truncate off any - empty pages at the end of a table vacuumed.</entry> - </row> - </tbody> - </tgroup> - </table> + &wait_event_types; <para> Here is an example of how wait events can be viewed: @@ -2374,6 +1115,16 @@ SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event i </programlisting> </para> + <note> + <para> + Extensions can add <literal>LWLock</literal> types to the list shown in + <xref linkend="wait-event-lwlock-table"/>. In some cases, the name + assigned by an extension will not be available in all server processes; + so an <literal>LWLock</literal> wait event might be reported as + just <quote><literal>extension</literal></quote> rather than the + extension-assigned name. + </para> + </note> </sect2> <sect2 id="monitoring-pg-stat-replication-view"> |
