mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Lower default value of autovacuum_worker_slots in initdb as needed.
Commitc758119e5b
increased the default number of semaphores required for autovacuum workers from 3 to 16. Unfortunately, some systems have very low default settings for SEMMNS, and this change moved the minimum required for Postgres well beyond that limit (see commit38da053463
for more details). With this commit, initdb will lower the default value for autovacuum_worker_slots as needed, just like it already does for parameters such as max_connections and shared_buffers. We test for (max_connections / 6) slots, which conveniently has the following properties: * For the initial max_connections default of 100, the default of autovacuum_worker_slots will be 16, which is its initial default value specified in the documentation and in guc_tables.c. * For the lowest possible max_connections default of 25, the default of autovacuum_worker_slots will be 4, which means we only need one additional semaphore for autovacuum workers (as compared to before commitc758119e5b
). This leaves some wiggle room for new auxiliary workers, etc. on systems with low SEMMNS, and it ensures that the default number of slots will be greater than or equal to the default value of autovacuum_max_workers (3). Reported-by: Tom Lane Suggested-by: Andres Freund Reviewed-by: Tom Lane Discussion: https://postgr.es/m/1346002.1736198977%40sss.pgh.pa.us
This commit is contained in:
@ -8639,8 +8639,9 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the number of backend slots to reserve for autovacuum worker
|
||||
processes. The default is 16. This parameter can only be set at server
|
||||
start.
|
||||
processes. The default is typically 16 slots, but might be less if
|
||||
your kernel settings will not support it (as determined during initdb).
|
||||
This parameter can only be set at server start.
|
||||
</para>
|
||||
<para>
|
||||
When changing this value, consider also adjusting
|
||||
|
Reference in New Issue
Block a user