Skip to content

Activity waits

Background processes sleeping in their main loop until work arrives.

Activity is mostly the sound of a healthy idle background process. Archiver, checkpointer, WAL writer, autovacuum launcher, replication workers, and related processes publish distinct names while waiting in their main loop.

Interpret by backend type

These events should not be counted in a foreground “waiting session percentage.” Instead, compare the event with backend_type and ask whether that process should currently have work.

  • Normal: one matching background process waits in its documented main loop.
  • Watch: the event appears on the wrong backend type, the process is absent, or work queues grow while it remains idle.
  • Urgent: required background progress has stopped—archiving backlog, no checkpoints, replication not advancing, or shutdown unable to finish.

Events to recognize

Event Expected process
AutovacuumMain Autovacuum launcher between scheduling cycles
CheckpointerMain Checkpointer awaiting work
WalWriterMain WAL writer main loop
ArchiverMain Archiver waiting for a completed segment
WalReceiverMain WAL receiver main loop
RecoveryWalStream Startup process waiting for streamed WAL
IoWorkerMain PG18 asynchronous I/O worker awaiting work

Common misreads

  • Activity waits dominating all backends can simply mean the cluster is idle.
  • An idle checkpointer is not evidence that checkpoints are disabled.
  • A normal wait name does not prove progress; check the queue/backlog and timestamps.
  • Missing expected background processes is often more important than seeing their Activity wait.

Waiting in main loop of background writer process

Waiting in main loop of statistics collector process.

Waiting in main loop of startup process for WAL to arrive, during streaming recovery