Gdy masz liczne jednoczesne połączenia dla swojego serwera, przekraczając numer domyślny, napotkasz „Błąd śmiertelny: Zbyt wielu klientów już.”Jednak dostrajanie połączeń PostgreSQL jest możliwe, aby zaspokoić Twoje potrzeby. Czytaj!
Sprawdzanie dostępnych maksymalnych połączeń w PostgreSQL
Jeśli masz do czynienia z komunikatem o błędzie, który ogranicza aplikację od odbierania połączeń przychodzących, dostrajanie właściwości PostgreSQL Max Connections dla bazy danych jest rozwiązaniem. Możesz dostosować właściwość Max_Connections za pośrednictwem wiersza poleceń lub GUI. Omówimy obie sposoby, ale najpierw zobaczmy, jak sprawdzić aktualnie ustawione Max_Connections i shared_buffers.
Zauważ, że dostrajanie właściwości Max_Connections dla Twojej bazy danych PostgreSQL wpływa na użycie pamięci RAM. Dlatego powinieneś dostosować go tylko do rozsądnego rozmiaru, aby uniknąć wyczerpania pamięci RAM. Ponadto wpłynie to na inne właściwości, takie jak shared_buffers. Zaleca się również dostosowanie shared_buffers podczas strojenia Max_Connections w celu poprawy wydajności aplikacji.
Istnieją dwa sposoby sprawdzenia Max_Connections i shared_buffers:
Przez plik konfiguracyjny
Lokalizacja pliku konfiguracji PostgreSQL zależy od uruchomionej wersji PostgreSQL i używanego systemu. W naszym przypadku mamy bazę danych PostgreSQL uruchomiona na Ubuntu. W ten sposób możemy uzyskać do niego dostęp za pomocą terminala za pomocą następującego polecenia:
$ sudo -iu postgres
Po uzyskaniu dostępu do serwera uruchom następujące polecenie, aby uzyskać ścieżkę do pliku konfiguracji:
# Show config_file;
Po uzyskaniu ścieżki otwórz plik konfiguracyjny za pomocą wybranego edytora. Tutaj otwieramy go za pomocą Nano w następujący sposób:
$ nano/etc/postgresql/14/main/postgresql.conf
Przewiń w dół i znajdź Max_Connections w pliku konfiguracyjnym. W naszym przypadku widzimy, że dostępny limit jest domyślnym limitem 100 połączeń.
W dalszej części pliku shared_buffers jest ustawiony na 128 MB.
Przez polecenie „pokaż max_connections”
Otwórz swoją bazę danych PostgreSQL na terminalu i uruchom następujące polecenia, aby wyświetlić aktualnie ustawione wartości Max_Connections i Shared_Buffers:
# pokaż Max_Connections;
# pokaż shared_buffers;
Nadal otrzymujemy te same wartości, co przy dostępie do pliku konfiguracji w poprzedniej metodzie.
Dwie metody dostrajania połączeń max PostgreSQL
Możesz dostosować wartość Max_Connections w dowolnej instancji, aby zaspokoić swoje potrzeby, pod warunkiem, że nie przeciążasz bazy danych.
Istnieją dwa podejścia do podjęcia. Najpierw możesz użyć polecenia „System” PostgreSQL, aby przypisać nową wartość dla Max_Connections. Mimo to możesz uzyskać dostęp do pliku konfiguracji PostgreSQL z uprawnieniami administratora i dostosować wartość Max_Connections. Spójrz na następujące przykłady:
Za pośrednictwem polecenia systemu PostgreSQL alter System
Otwórz swoją bazę danych PostgreSQL na terminalu. Po uzyskaniu dostępu do serwera zmień Max_Connections i shared_buffers z następującą składnią. Wymień wartości, aby pasowały do tych dla swoich preferencji:
# Alter System SET max_connections = rozmiar połączenia;
# Alter System SET SHARED_BUFFERS = SIME-of-of-Buffers;
W naszym przykładzie ustawiamy Max_Connections = 250 i shared_buffers = 180 MB.
Po strojeniu Max_Connections musisz ponownie uruchomić serwer bazy danych PostgreSQL. Tutaj ponownie uruchomimy usługę PostgreSQL za pomocą polecenia SystemCtl.
$ sudo systemctl restartuj postgresql
Szybko sprawdź, czy nowe Max_Connections i shared_buffers są zaimplementowane.
Za pośrednictwem pliku konfiguracji PostgreSQL
Możesz bezpośrednio dostosować maksymalnie_connections, uzyskując dostęp do PostgreSQL z uprawnieniami administracyjnymi. Ścieżka do pliku konfiguracyjnego jest taka sama jak ta, do której uzyskałeś dostęp do wcześniejszego sprawdzania aktualnie ustawionych max_connections i shared_buffers.
$ nano/etc/postgresql/14/main/postgresql.conf
Po otwarciu pliku zlokalizuj Max_Connections i zmień jego wartość na nowy limit, który chcesz ustawić.
Mimo to uzyskaj dostęp do shared_buffers i zmień jego limit na preferowany, w zależności od zasobu systemowego, który masz w sprawie.
Zapisz zmiany i wyjdź z edytora plików. Następnie musisz ponownie uruchomić serwer bazy danych PostgreSQL, aby zmiany weszły.
Dzięki temu pomyślnie skorygowałeś właściwość PostgreSQL Max_Connections na swoim serwerze. W ten sposób eliminujesz błąd, z którym napotkałeś wcześniej i ciesz się lepszą wydajnością dla swojej aplikacji, a bardziej równoczesne połączenia są obsługiwane przez serwer bazy danych PostgreSQL.
Wniosek
PostgreSQL umożliwia dostosowanie Max_Connections, aby umożliwić bardziej jednoczesne połączenia z bazą danych. Strojenie połączeń max PostgreSQL można wykonać na dwa sposoby. Możesz uzyskać dostęp do jego pliku konfiguracyjnego i ręcznie edytuj wartość Max_Connections. Alternatywnie możesz użyć terminala z poleceniem „alter System” i ustawić nową wartość Max_Connections. Ten przewodnik przedstawił obie metody. Wypróbuj je!