PostgreSQL’s long-standing recommendation to allocate 25% of system memory to shared_buffers dates back to version 8.3 (released in 2008) when typical system memory was measured in a handful of GB. Modern servers can provision hundreds of GB, and it is not unheard of to come across databases that approach 0.5 TB of RAM or more. The relationship between memory size, workload characteristics and buffer_pool performance is no longer obvious.
We …