/
Tuning konfiguracji PG

Tuning konfiguracji PG

Generalnie nie ma prostego przepisu, ale poniżej zbiór wytycznych, których powinniśmy przestrzegać.

Polecamy artykuł: https://severalnines.com/blog/architecture-and-tuning-memory-postgresql-databases/

Ustawienia edytujemy w pliku: /etc/postgresql/14/main/postgresql.conf i po zmianach wymaga to restartu Postgresa (systemctl restart postgresql), dlatego można to zmieniać tylko po zatrzymaniu wszystkich usług na serwerze.

Parametr max_connections

Im większa instalacja tym więcej wypada przydzielić. Minimalna wartość dla serwerów hostingowych to 1000.

max_connections = 1000 # (change requires restart)

Parametr shared_buffers

Ogólna rekomendacja zależy od dostępnej pamięci serwera:

  • poniżej 2GB - ustaw na 20% dostępnej pamięci

  • poniżej 32GB - ustaw na 25% dostępnej pamięci

  • powyżej 32GB - ustaw na 8GB

Parametr max_wal_size natomiast ustawiamy na tę samą wartość.

shared_buffers = 8GB # min 128kB max_wal_size = 8GB

Parametr work_mem

Ogólna rekomendacja:

  • zacznij od niskiej wartości: 32-64MB

  • sprawdź w logu linie zawierające ‘temporary file’

  • ustaw na 2-3 razy większą wartość od największego pliku tymczasowego

work_mem = 64MB # min 64kB

Parametr maintenance_work_mem

Ogólna rekomendacja:

  • ustaw na 10% dostępnej pamięci, ale do 1GB

  • można ustawić na więcej, jeśli VACUUM sprawia problemy

Parametr effective_cache_size

Ogólna rekomendacja:

  • ustaw na wartość dostępnego cache systemu plików

  • jak nie wiesz, to ustaw na 50% dostępnej pamięci

Parametr max_pred_locks_per_transaction

Może być konieczność podniesienia tej wartości. Dla Strixa sugerujemy podnosić na 256