Configuration parameter

log_startup_progress_interval — PostgreSQL configuration parameter

Category Error Reporting and Logging Default 10 seconds Change scope Sighup

Sets the amount of time after which the startup process will log a message about a long-running operation that is still in progress, as well as the interval between further progress messages for that operation.

At a glance

Property Value
Parameter log_startup_progress_interval
Category Error Reporting and Logging
Default 10
Value type integer
Change scope Reload (postgresql.conf, SIGHUP)
Available in PostgreSQL 15, 16, 17, 18, 19 (added in 15)

What it does

Sets the amount of time after which the startup process will log a message about a long-running operation that is still in progress, as well as the interval between further progress messages for that operation. The default is 10 seconds. A setting of 0 disables the feature. If this value is specified without units, it is taken as milliseconds. This setting is applied separately to each operation. This parameter can only be set in the postgresql.conf file or on the server command line.

For example, if syncing the data directory takes 25 seconds and thereafter resetting unlogged relations takes 8 seconds, and if this setting has the default value of 10 seconds, then a messages will be logged for syncing the data directory after it has been in progress for 10 seconds and again after it has been in progress for 20 seconds, but nothing will be logged for resetting unlogged relations.

(Description quoted from the official PostgreSQL documentation.)

How to apply a change

Set it in postgresql.conf (or with ALTER SYSTEM) and reload with SELECT pg_reload_conf(); or pg_ctl reload — no restart needed.

Inspect the current value and source with SHOW log_startup_progress_interval; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'log_startup_progress_interval';.

Tuning guidance

Tune this for observability versus log volume, not for raw performance. More verbose logging helps diagnose problems but costs disk and I/O; quieter logging saves space but hides detail. Pick a level your log pipeline can store and search, and raise verbosity temporarily when investigating an incident.

Reference

PostgreSQL documentation — log_startup_progress_interval.

Keep going

Related & next steps

Was this helpful?

← All configuration parameters