io_max_combine_limit
Read PG 18 manual ↗Controls the largest I/O size in operations that combine I/O, and silently limits the user-settable parameter io_combine_limit.
- Type
- integer
- Context
- postmaster
- Measured default
- 128 KiB (16 × 8kB)
- Unit
- 8kB
- Metadata snapshot
- 18
Definition PG 18 manual
Controls the largest I/O size in operations that combine I/O, and silently limits the user-settable parameter io_combine_limit. This parameter can only be set at server start. If this value is specified without units, it is taken as blocks, that is BLCKSZ bytes, typically 8kB. The maximum possible size depends on the operating system and block size, but is typically 1MB on Unix and 128kB on Windows. The default is 128kB.
Measured default history
| Version interval | Default |
|---|---|
| 18 – 19 | 128 KiB (16 × 8kB) |
Authored guidance from the GUC source snapshot; the version-specific manual above is the definition reference. View source ↗
How it works
io_max_combine_limit is the server-start ceiling that silently clamps the user-settable io_combine_limit. It protects the I/O subsystem from request sizes beyond the configured server policy.
This controls bytes per combined operation, not queue depth. The feasible maximum depends on operating system and BLCKSZ, typically 1MB on Unix and 128kB on Windows.
Raising io_combine_limit above this value has no effect until this startup parameter is also raised. Combined requests can still be smaller when adjacent work is unavailable. Its postmaster context fixes the value at server start; changing it requires a restart.
Operational considerations
Treating the server byte-size clamp as an I/O concurrency limit.
Raising io_max_combine_limit while io_combine_limit remains lower and expecting a change.
Expecting larger combined requests when adjacent eligible operations do not exist.
Ignoring operating-system and BLCKSZ limits, especially the smaller typical Windows maximum.
Forgetting that a change requires a server restart.
Workload guidance
OLAP: A larger clamp merely permits a larger user combine limit; it does not create adjacent I/O or add concurrency. Benchmark actual request sizes, sequential throughput, and mixed-workload fairness with both parameters set intentionally.
OLTP: Keep the PG18 server clamp at 128kB unless measurements show that larger combined requests improve eligible I/O without harming latency. Raising it alone changes nothing while io_combine_limit remains lower, and changing it requires a restart.
SMALL: Retain 128kB on small or mixed-use storage. Do not increase a restart-only global ceiling to fix queue-depth problems, which belong to the concurrency controls.
Version history 1
- PG 17 → 18added
Related entries
Further reading
Definition snapshot: english-manuals:4b83724b8875c94c7e60658df12… · English manual source