PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Django ORM Postgres DB पर निष्क्रिय कनेक्शन छोड़ता है

जाहिरा तौर पर आप डिस्कनेक्ट नहीं करते हैं। db.close_connection() का उपयोग करना क्वेरी खत्म होने के बाद मदद मिलेगी। इसके अलावा अगर मुझे यह सही लगे CONN_MAX_AGE कुछ कम मूल्य के लिए मदद कर सकता है। और कुछ सत्र पूलर का उपयोग करने पर विचार करें, उदाहरण के लिए django कनेक्शन के लिए pgbouncer। इस तरह यदि आपके पास बहुत अधिक कनेक्शन हैं तो यह त्रुटि के साथ निष्पादन को निरस्त करने के बजाय प्रतीक्षा करेगा (या कॉन्फ़िगरेशन के आधार पर पिछले पुन:उपयोग करेगा)...

अपडेट करें :स्पष्टीकरण मैं इसे क्यों प्रस्तावित करता हूं

दस्तावेज़ों से

इसलिए यदि आपके पास अधिक थ्रेड हैं तो max_connections . पोस्टग्रेज करें , आपको त्रुटि का उल्लेख मिलता है। यदि CONN_MAX_AGE पास नहीं हुआ है, तो प्रत्येक थ्रेड कनेक्शन का पुन:उपयोग कर सकता है। आपकी सेटिंग 0 है, इसलिए क्वेरी पूरी होने के बाद कनेक्शन बंद हो जाना चाहिए, लेकिन आप 100 निष्क्रिय कनेक्शन देखते हैं। इसलिए वे बंद नहीं हो रहे हैं। बड़ी संख्या में कनेक्शन का मतलब है कि उनका पुन:उपयोग नहीं किया जाता है (तर्क:यदि आपके पास 100 समानांतर प्रश्न होंगे तो वे सभी निष्क्रिय नहीं होंगे, और यदि आपके पास इतने सारे हैं, तो उनका पुन:उपयोग नहीं किया जाता है - नया खोलना)। तो मुझे लगता है कि django उन्हें वादे के अनुसार बंद नहीं करता है - इसलिए CONN_MAX_AGE 0 पर सेट आपके कोड में काम नहीं करता है। इसलिए मैं db.close_connection() . का उपयोग करने का प्रस्ताव करता हूं डिस्कनेक्ट करने के लिए बाध्य करने और CONN_MAX_AGE को कुछ छोटे मान पर सेट करने से व्यवहार बदल सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अगली प्राथमिक कुंजी की गणना करें - विशिष्ट प्रारूप की

  2. यदि PostgreSQL गिनती (*) हमेशा धीमी होती है तो जटिल प्रश्नों को कैसे पृष्ठांकित किया जाए?

  3. FROM में उपश्रेणी का उपनाम होना चाहिए

  4. कुबेरनेट्स क्रॉन जॉब में चल रहा एप्लिकेशन उसी कुबेरनेट्स क्लस्टर में डेटाबेस से कनेक्ट नहीं होता है

  5. मैं माइक्रो-ओआरएम के साथ सम्मिलित करना चाहता हूं, लेकिन यह मेरी तालिका नहीं ढूंढता है:सी (टेबल नॉटफाउंड अपवाद)