select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

CONFIGURATION / RESOURCE USAGE

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 intervalDefault
18 – 19128 KiB (16 × 8kB)
Analysis & operational context

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
  1. PG 17 → 18added

Related entries

Further reading

Definition snapshot: english-manuals:4b83724b8875c94c7e60658df12… · English manual source