PlannerAny session (SET)default 16
effective_io_concurrency
Number of simultaneous requests that can be handled efficiently by the disk subsystem.
How you change it
Any session (SET)
Defaults and ranges on this page were read from pg_settings on live PostgreSQL 18.4. Treat older majors as needing their own check before you copy a value.
0 disables simultaneous requests.
What this means
Tells PostgreSQL how many concurrent disk I/O requests the storage can handle efficiently, which drives prefetching for bitmap heap scans (and, on newer versions, other read paths). SSDs and RAID arrays benefit from a higher value; a single spinning disk does not.
When it matters
Raise on SSD/NVMe or striped arrays where the storage can service many parallel reads.
| Default | 16 |
|---|---|
| Range | 0 – 1000 |
| Type | integer |
| Change scope | Any session (SET) |
| Category | Planner |
Check the current value
SHOW effective_io_concurrency;Tradeoffs
- • Too low on fast storage: bitmap heap scans under-prefetch and leave I/O bandwidth idle.
- • Too high on a single slow disk: extra prefetch requests just add overhead.
- • 0 disables issuing simultaneous requests.