A little bit of a background about my status:
I'm currently using OVH Advance 5 Server (AMD Epyc 7451 - 24 c / 48 t - 128 GB Memory - 450x2 GB SSD) and I was wondering the specifications I should be using for Postgresql.
I'll be using multiprocess running 24 Python scripts with 24 different pools (using asynpg to connect), and I usually use up about 40 GB of RAM or so - that means I have around 88 GB to work with.
Before I've never really touched any of the settings for Postgres; what kind of values should I be using for:
Shared Memory / Max Connections / Random Page Cost?
Reading up on it, it says it's recommended that Shared Memory should generally take up about 25% of the free RAM - but other sources say 2 - 4 GB is generally the sweet spot point, so any insight would be greatly appreciated.
shared_buffers
: start with 25% of the available RAM or 8GB, whatever is lower.
You can run performance tests to see if other settings work better in your case.
max_connections
: leave the default 100. If you think that you need more than 50 connections, use the connection pooler pgBouncer.
random_page_cost
: if your storage is as fast with random I/O as with sequential I/O, use a setting of 1.1. Otherwise, stick with the default 4.