मैंने एक Postgres डेटाबेस पर डेटाबेस कनेक्शनों की संख्या की निगरानी के लिए एक Nagios स्क्रिप्ट का उपयोग करने की कोशिश की और मैं इस समस्या पर पहुंच गया: इन्हें वर्तमान में खुले कनेक्शनों के रूप में गिना जाता है और हर 5 मिनट में मापा जाता है।
SELECT sum(numbackends) FROM pg_stat_database;
फिर भी, यह बड़ी संख्या में अल्पकालिक कनेक्शनों को याद करता है, इसलिए आंकड़े वास्तविकता से बहुत दूर हैं।
मैंने स्क्रिप्ट को मैन्युअल रूप से चलाने की कोशिश की और मैंने दो कनेक्शनों के बीच भी बड़े बदलाव देखे, जो कुछ सेकंडों में एक दूसरे से दूर हो गए।
मैं विश्वसनीय तरीके से यह जानकारी कैसे प्राप्त कर सकता हूं? एक समय अंतराल के दौरान अधिकतम (संयोजक) हुआ।
PgBouncer
से आपके PostgreSQL उदाहरण के सामने रखने की सलाह देता हूं , यह कनेक्शन को कतारबद्ध कर देगा जब यह उन्हें अस्वीकार करने के बजाय बहुत व्यस्त है। (हां, यह बेवकूफी है कि PostgreSQL ऐसा नहीं कर सकता है, लेकिन यह एक साधारण फिक्स नहीं है; मेलिंग सूचियों पर अंतहीन चर्चा फिर से अंतर्निहित पूलिंग देखें)।
log_connections
और log_disconnections
) के बारे में क्या है (उदाहरण के लिए सीएसवीलॉग) और फिर लॉगबाइल से निकालने के लिए pgBadger या कुछ इसी तरह का उपयोग करें?