[PATCH] Warn when io_min_workers exceeds io_max_workers
Baji Shaik <baji.pgdev@gmail.com>
From: Baji Shaik <baji.pgdev@gmail.com>
To: PostgreSQL-development <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-22T21:21:17Z
Lists: pgsql-hackers
Attachments
- 0001-Warn-when-io_min_workers-exceeds-io_max_workers.patch (application/octet-stream) patch 0001
Hi,
Setting io_min_workers to a value greater than io_max_workers is
silently accepted, but the minimum has no effect and the worker pool
never grows past io_max_workers. This can confuse users who expect at
least io_min_workers workers to always be running.
Compare with autovacuum which properly warns:
WARNING: "autovacuum_max_workers" (3) should be less than or equal
to "autovacuum_worker_slots" (1)
DETAIL: The server will only start up to "autovacuum_worker_slots" (1)
autovacuum workers at a given time.
The attached patch adds check_io_worker_gucs() in
storage/aio/method_worker.c that emits a WARNING similar to what
autovacuum does for autovacuum_worker_slots vs autovacuum_max_workers:
WARNING: "io_min_workers" (5) should be less than or equal to
"io_max_workers" (3)
DETAIL: The I/O worker pool will not exceed "io_max_workers" (3)
workers.
The check runs in IO worker 0 at startup and after each configuration
reload.
Thanks,
Baji Shaik
Commits
-
Use placeholders and not GUC names in error message (autovacuum)
- 7905416eef9b master landed