mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Allow changing autovacuum_max_workers without restarting.
This commit introduces a new parameter named autovacuum_worker_slots that controls how many autovacuum worker slots to reserve during server startup. Modifying this new parameter's value does require a server restart, but it should typically be set to the upper bound of what you might realistically need to set autovacuum_max_workers. With that new parameter in place, autovacuum_max_workers can now be changed with a SIGHUP (e.g., pg_ctl reload). If autovacuum_max_workers is set higher than autovacuum_worker_slots, a WARNING is emitted, and the server will only start up to autovacuum_worker_slots workers at a given time. If autovacuum_max_workers is set to a value less than the number of currently-running autovacuum workers, the existing workers will continue running, but no new workers will be started until the number of running autovacuum workers drops below autovacuum_max_workers. Reviewed-by: Sami Imseih, Justin Pryzby, Robert Haas, Andres Freund, Yogesh Sharma Discussion: https://postgr.es/m/20240410212344.GA1824549%40nathanxps13
This commit is contained in:
@ -3467,7 +3467,16 @@ struct config_int ConfigureNamesInt[] =
|
||||
},
|
||||
{
|
||||
/* see max_connections */
|
||||
{"autovacuum_max_workers", PGC_POSTMASTER, AUTOVACUUM,
|
||||
{"autovacuum_worker_slots", PGC_POSTMASTER, AUTOVACUUM,
|
||||
gettext_noop("Sets the number of backend slots to allocate for autovacuum workers."),
|
||||
NULL
|
||||
},
|
||||
&autovacuum_worker_slots,
|
||||
16, 1, MAX_BACKENDS,
|
||||
NULL, NULL, NULL
|
||||
},
|
||||
{
|
||||
{"autovacuum_max_workers", PGC_SIGHUP, AUTOVACUUM,
|
||||
gettext_noop("Sets the maximum number of simultaneously running autovacuum worker processes."),
|
||||
NULL
|
||||
},
|
||||
|
Reference in New Issue
Block a user