08/13/2026
We’re starting a new three-part blog series on PostgreSQL shared_buffers behavior in large-memory systems.
The usual starting point is 25% of system memory. Greg Dostatni tested how well that guidance holds on a 128 GB system, varying shared_buffers from 1 GB to roughly 110 GB across two very different workloads.
The TPC-B-style point-update and analytics workloads did not tell the same story. In the point tests, 25% was a reasonable setting. In the analytics tests, it was well away from the strongest-performing ranges.
That is the problem with treating a starting point as a rule. The workload, working set, and balance between PostgreSQL and the OS file cache all change the result.
Part 1 of Beyond the 25% Rule covers the benchmark setup and the initial results.
Learn what he discovered here:
Tuning shared_buffers isn't just about peak throughput — it's about how much CPU and disk I/O a system consumes per unit of work. The 25% default can require up to 5x more disk I/O than very low or very high allocation. Part 1 of 3.