Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 2 Current »

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

Ciekawy 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

maintenance_work_mem = 1GB              # min 1MB

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

effective_cache_size = 4GB

Parametr max_pred_locks_per_transaction

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

max_pred_locks_per_transaction = 256    # min 10

  • No labels