Parameter · Resource Usage / I/O
io_combine_limit
Limit on the size of data reads and writes.
- Default:
128kB - Type: integer (8kB)
- Range: 8kB … 1MB
- Applies: Session (any user)
In plain words
When PostgreSQL reads many neighbouring blocks, for example in a sequential scan, it can merge them into one bigger read instead of many 8 kB reads. This sets the largest such read. Bigger reads mean fewer system calls and better use of the disk.
For DBAs and operators
Added in PostgreSQL 17 with the read stream API (then capped at 256 kB); in PostgreSQL 18 it can go up to 1 MB (128 blocks) but is silently limited by the server-wide io_max_combine_limit, so both must be raised. Used by sequential scans, ANALYZE, VACUUM, pg_prewarm and other streaming reads.
Larger values help on storage with high per-request overhead (network volumes with IOPS limits count each request) and on throughput-bound scans; 256 kB–1 MB is worth testing. In pg_stat_io (PostgreSQL 18) read_bytes / reads shows the average I/O size actually achieved.
How to change it
Any user can change it for their session with SET.