[PATCH] Warn when io_min_workers exceeds io_max_workers

From: Baji Shaik <baji(dot)pgdev(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: [PATCH] Warn when io_min_workers exceeds io_max_workers
Date: 2026-06-22 21:21:17
Message-ID: CA+fm-RO_O7-XThg2qjj=ir35x9nOFbZYu07gttqAbM5T88QB4Q@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

Attachment Content-Type Size
0001-Warn-when-io_min_workers-exceeds-io_max_workers.patch application/octet-stream 2.4 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message surya poondla 2026-06-22 21:26:45 Re: Handle concurrent drop when doing whole database vacuum
Previous Message Jeff Davis 2026-06-22 21:10:25 Re: Bug in ALTER SUBSCRIPTION ... SERVER / ... CONNECTION with broken old server