PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zwiększyć maksymalną liczbę połączeń w postgresie?

Po prostu zwiększam max_connections to zły pomysł. Musisz zwiększyć shared_buffers i kernel.shmmax również.

Rozważania

max_connections określa maksymalną liczbę jednoczesnych połączeń z serwerem bazy danych. Wartość domyślna to zazwyczaj 100 połączeń.

Przed zwiększeniem liczby połączeń może być konieczne skalowanie wdrożenia. Ale wcześniej powinieneś rozważyć, czy naprawdę potrzebujesz zwiększonego limitu połączeń.

Każde połączenie PostgreSQL zużywa pamięć RAM do zarządzania połączeniem lub używającego go klienta. Im więcej masz połączeń, tym więcej pamięci RAM będziesz używać, która może być wykorzystana do uruchomienia bazy danych.

Dobrze napisana aplikacja zazwyczaj nie wymaga dużej liczby połączeń. Jeśli masz aplikację, która wymaga dużej liczby połączeń, rozważ użycie narzędzia takiego jak pg_bouncer, które może łączyć połączenia. Ponieważ każde połączenie zużywa pamięć RAM, powinieneś starać się zminimalizować ich użycie.

Jak zwiększyć maksymalną liczbę połączeń

1. Zwiększ max_connection i shared_buffers

w /var/lib/pgsql/{version_number}/data/postgresql.conf

zmiana

max_connections = 100
shared_buffers = 24MB

do

max_connections = 300
shared_buffers = 80MB

shared_buffers parametr konfiguracyjny określa ilość pamięci jest dedykowany do PostgreSQL, aby użyć go do buforowania danych .

  • Jeśli masz system z 1 GB lub więcej pamięci RAM, rozsądna wartość początkowa dla shared_buffers to 1/4 pamięci w twoim systemie.
  • jest mało prawdopodobne, że użycie więcej niż 40% pamięci RAM będzie działać lepiej niż mniejsza ilość (np. 25%)
  • Pamiętaj, że jeśli twój system lub kompilacja PostgreSQL jest 32-bitowa, ustawienie shared_buffers powyżej 2 ~ 2,5 GB może nie być praktyczne.
  • Pamiętaj, że w systemie Windows duże wartości dla shared_buffers nie są tak efektywne i możesz znaleźć lepsze wyniki, utrzymując je na stosunkowo niskim poziomie i częściej używając pamięci podręcznej systemu operacyjnego. W systemie Windows przydatny zakres to 64 MB do 512 MB .

2. Zmień kernel.shmmax

Będziesz musiał zwiększyć maksymalny rozmiar segmentu jądra, aby był nieco większy niż shared_buffers .

W pliku /etc/sysctl.conf ustaw parametr jak pokazano poniżej. Zacznie obowiązywać, gdy postgresql restartuje się (poniższa linia ustawia maksymalne jądro do 96Mb )

kernel.shmmax=100663296

Referencje

Połączenia Postgres Max i współdzielone bufory

Dostrajanie serwera PostgreSQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać nową kolumnę w tabeli po 2 lub 3 kolumnie w tabeli za pomocą postgresa?

  2. PostgreSQL 9.3:Dynamiczna tabela przestawna

  3. Zapytanie z LEFT JOIN nie zwraca wierszy dla liczby 0

  4. Tworzenie kopii bazy danych w PostgreSQL

  5. Jak używać wielu instrukcji WITH w jednym zapytaniu PostgreSQL?