DBAtlas · Atlas für Datenbankbetrieb

53300: too_many_connections

PostgreSQL

Was bedeutet das?

Der Server hat die durch max_connections erlaubte maximale Anzahl gleichzeitiger Verbindungen erreicht; neue Verbindungen können nicht angenommen werden.

Ursache

Kein oder ein falsch dimensionierter Connection Pool, Connection-Leaks, Anwendungen, die viele kurzlebige Verbindungen öffnen, oder max_connections unter dem Bedarf der Last.

Lösung

Ermittle die Verbindungsquellen: SELECT usename, state, COUNT(*) FROM pg_stat_activity GROUP BY 1,2. Beende lange inaktive Client-Verbindungen gezielt (ungefiltertes Massenbeenden trifft jede Anwendung und jeden Pool): SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND backend_type = 'client backend' AND usename = 'app_user' AND state_change < now() - interval '10 minutes' AND pid <> pg_backend_pid(). Die eigentliche Lösung ist ein Connection Pool wie PgBouncer. Eine Erhöhung von max_connections kostet Speicher; bevorzuge Pooling. Für Superuser reservierte Verbindungen halten den administrativen Zugang verfügbar.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank