Connection Storm (zu viele Verbindungen)
Du hast 'too many connections', 'remaining connection slots reserved' oder ORA-00018 erhalten; neue Verbindungen werden abgelehnt. Finde die Quelle, entlaste sofort, behebe es dauerhaft.
Lage messen: Wie viele Verbindungen, und wie viele sind aktiv?
Zuerst Gesamtverbindungen, Limit und Aufteilung aktiv/inaktiv ansehen.
SELECT status, COUNT(*) FROM v$session WHERE type='USER' GROUP BY status;
SELECT name, value FROM v$parameter WHERE name IN ('processes','sessions');- Die meisten Verbindungen sind idle / idle in transaction
- Die meisten sind aktiv; ich muss die Quelle finden
Wer/woher? Verbindungen nach Quelle gruppieren
Meist ist der Pool eines einzelnen Anwendungsservers explodiert oder es gibt ein Connection Leak. Betrachte die Verteilung nach Host/Benutzer/Anwendung.
SELECT client_addr, usename, application_name, count(*) FROM pg_stat_activity GROUP BY 1,2,3 ORDER BY 4 DESC;- Eine einzelne Anwendung/ein Host hat die Verbindungen explodieren lassen (Pool)
- Die Last ist wirklich gestiegen; alle sind legitim und aktiv
Ursache: Anhäufung inaktiver Verbindungen / Leak
Verbindungen werden geöffnet und nie geschlossen oder 'idle in transaction' gelassen; sie belegen Slots umsonst.
Ursache: Anwendungs-Pool ist explodiert
Der Connection Pool eines Anwendungsservers ist unbegrenzt/zu groß oder hat ein Leak. Er erzeugt die Verbindungen.
Ursache: Echter Lastanstieg
Die Verbindungen sind legitim und aktiv; die Kapazität reicht tatsächlich nicht aus.