Intermediate LevelPostgreSQL
How do shared_buffers and effective_cache_size interact with the Linux Page Cache?
❓ Interview Prompt: Explain `shared_buffers` (PostgreSQL RAM page cache), Linux OS Page Cache, double buffering, and `effective_cache_size` planner estimation.
PostgreSQL relies on a two-tier memory caching strategy:
1
'shared_buffers': RAM allocated directly to PostgreSQL to cache 8KB data pages (Recommended: 25% of total system RAM).
2
Linux Page Cache: Free system RAM used by the OS kernel to cache disk files.
3
'effective_cache_size': A configuration parameter that tells the Query Planner how much memory is available across 'shared_buffers' + OS Page Cache (Recommended: 75% of total RAM). Does NOT allocate memory!
Code Implementation Example
sql
-- Recommended configuration settings for a 16GB RAM server
-- shared_buffers = 4GB (25% total RAM)
-- effective_cache_size = 12GB (75% total RAM)
SHOW shared_buffers;
SHOW effective_cache_size;💡Inspecting shared_buffers and effective_cache_size parameters.
🎯 Interview Key Takeaway
Set shared_buffers to 25% of total RAM and effective_cache_size to 75% of total RAM for optimal performance.
#shared_buffers#effective_cache_size#Memory Tuning#Intermediate
Back to all PostgreSQL Questions→