Ilość połączeń do bazy danych Postgres

Jako, że system sypał mi ciągle błędami jak na screenie przyjrzałem się logom, a tam między innymi taka informacja:

Npgsql.PostgresException (0x80004005): 53300: remaining connection slots are reserved for non-replication superuser connections

Włączyłem sobie liczenie połaczeń i wyszło mi, że jest około 50 na stałe, a w pikach ponad 100 połączeń. A w konfigu postgres jest max_connection na 100 ustawione. Zwiększyłem wstępnie ilość połączeń dwukrotnie, ale pytanie które mam to czy taka ilość połączeń jest normalna w grupie około 30 ludzi obsługujących EZD? Czy może coś się dzieje czego nie zauważam?


ALARM: 2025-12-19,08:07:01 - Wykryto 102 połączeń!

ALARM: 2025-12-19,08:08:01 - Wykryto 113 połączeń!

Zrzut ekranu 2025-12-17 140918 (1)

Błąd ten oznacza osiągnięcie twardego limitu połączeń, przy którym Postgres zostawia już tylko pule zarezerwowane dla superusera.

W PostgreSQL są dwa istotne parametry:

  • max_connections – całkowita liczba możliwych połączeń

  • superuser_reserved_connections – liczba połączeń zarezerwowanych wyłącznie dla superusera

Domyślnie w konfiguracji postgres jest:

max_connections = 100
superuser_reserved_connections = 3

to realnie aplikacje mogą używać tylko ~97 połączeń.
Po ich zajęciu Postgres blokuje wszystkie kolejne próby i daje dokładnie ten błąd.

Nawet przy 30 użytkownikach, połączeń do bazy danych jest więcej, szczególnie przy dodawaniu metadanych do dokumentów. EZDRP korzysta w tedy z puli max_connections oraz z puli superuser_reserved_connections (tak wynika z obserwacji). Samo zwiększenie parametrów max_connections w konfiguracji postgres nie załatwia tematu. Trzeba też w connection string ustawić ilość połączeń dodając parametr Maximum Pool Size=XXX. Warto też zmienic w konfiguracji superuser_reserved_connections na większą wartość ale bez przesady. Zmieniając te parametry, trzeba mieć na uwadze parametry serwera/maszyny wirtualnej z postgress (pamięć/rdzenie), zwiększanie ich znacznie podnosi zapotrzebowanie na zasoby.

Dziękuję za fajne wyjaśnienie. Przestało mi się dławić wreszcie EZD.