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.

Default16
Range0 – 1000
Typeinteger
Change scopeAny session (SET)
CategoryPlanner
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.
PostgreSQL manual: effective_io_concurrency

← All GUCs · Glossary · Runbooks