Einige Anfragen auf meinem Datenbankserver scheinen lange zu dauern, und ich glaube, dass die CPU-Auslastung hoch ist. Beim Laufen ps aux
sehe ich ~ 250 "Leerlauf" -Verbindungen (von denen ich glaube, dass sie zu viele sind). Ich habe noch keine vollständige Diagnose gestellt, wollte aber wissen, ob dies ein guter Ort ist, um mit der Suche zu beginnen.
Ich verwende auch PgBouncer mit Pooling auf Transaktionsebene. Ich vermute, dass ich die Anzahl der idle
Verbindungen leicht reduzieren kann, indem ich die Poolgröße optimiere. Ich möchte jedoch nicht zu viele Änderungen vornehmen, es sei denn, es gibt einen guten Grund dafür.
Können viele idle
Verbindungen in PostgreSQL 9.2 die Leistung beeinträchtigen?
Vielen Dank!
postgresql
database-design
performance
query-performance
Juan Carlos Coto
quelle
quelle
Antworten:
Ich bezweifle ernsthaft, dass Leerlaufverbindungen Ihr Problem sind. PostgreSQL ist sehr gut in der Lage, inaktive Sitzungen zu verarbeiten, da sie fast keine Ressourcen beanspruchen. Aktive Sitzungen hingegen sind viel wahrscheinlicher die Ursache für Langsamkeit.
Informationen zur Anzahl der Datenbankverbindungen finden Sie unter https://wiki.postgresql.org/wiki/Number_Of_Database_Connections .
quelle