Re: allow changing autovacuum_max_workers without restarting
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, pgsql-hackers@lists.postgresql.org, "Imseih (AWS), Sami" <simseih@amazon.com>, Justin Pryzby <pryzby@telsasoft.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2025-01-07T02:44:37Z
Lists: pgsql-hackers
Attachments
On Mon, Jan 06, 2025 at 06:36:43PM -0500, Tom Lane wrote: > Nathan Bossart <nathandbossart@gmail.com> writes: >> My first instinct was just to set it to the lowest default we'd consider >> during the max_connections tests (which I'm assuming is 3 due to the >> current default for autovacuum_max_workers). That way, the max_connections >> default won't change from version to version on affected systems, but you >> might get some extra autovacuum slots. > > My only objection to this algorithm is it adds cycles to initdb, > in the form of at least one additional "postgres --check" step. > Admittedly that's not hugely expensive, but it'll add up over time > in the buildfarm, and I'm not sure this issue is worth that. > We already changed the max_connections default for affected systems > as a consequence of 38da05346, so I don't think the argument about not > changing it holds much water. I see. Here's a version that uses your max_connections / 8 idea. I've lowered the initial default value of autovacuum_worker_slots to 12 to keep the code as simple as possible. I considered trying 16 in the first iteration or constructing a complicated formula like autovacuum_worker_slots = (max_connections * 13) / 75 - 1 but this stuff is pretty fragile already, so I felt that simplicity was desirable in this case. -- nathan
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Give up on running with NetBSD/OpenBSD's default semaphore settings.
- 810a8b1c8051 18.0 landed
-
initdb: Do not report default autovacuum_worker_slots.
- 2b49492eda3f 18.0 landed
-
Lower default value of autovacuum_worker_slots in initdb as needed.
- 6d01541960e2 18.0 landed
-
Allow changing autovacuum_max_workers without restarting.
- c758119e5bfb 18.0 landed
-
Reserve a PGPROC slot and semaphore for the slotsync worker process.
- 2bdf1b2a2efc 18.0 cited
-
Make archiver process an auxiliary process.
- d75288fb27b8 14.0 cited
-
Correct the formulas for System V IPC parameters SEMMNI and SEMMNS in docs.
- 597f7e3a6ec3 9.6.0 cited