Here is a list of recommended parameters for memory management in PostgreSQL.
You should take into account mainly the following parameters.
- Below 2GB, set to 20% of total system memory.
- Below 32GB, set to 25% of total system memory.
- Above 32GB, set to 8GB
About work_mem, this parameter can cause a huge speed-up if set properly, however it can use that amount of memory per planning node.
Here are some recommendations to set it up.
- Start low: 32-64MB
- Look for ‘temporary file’ lines in logs
- Set to 2-3x the largest temp file
About maintenance_work_mem, here are some recommandations:
- 10% of system memory, up to1GB
- Maybe even higher if you are having VACUUM problems
About effective_cache_size, here are some guidelines.
- Set to the amount of file system cache available
- If you don’t know, set it to 50% of total system memory