बस बढ़ते max_connections
जाना बुरा विचार है। आपको बढ़ाने की जरूरत है shared_buffers
और kernel.shmmax
साथ ही साथ।
विचार
max_connections
डेटाबेस सर्वर के समवर्ती कनेक्शन की अधिकतम संख्या निर्धारित करता है। डिफ़ॉल्ट आमतौर पर 100 कनेक्शन है।
अपने कनेक्शन की गिनती बढ़ाने से पहले आपको अपनी तैनाती को बढ़ाने की आवश्यकता हो सकती है। लेकिन इससे पहले, आपको विचार करना चाहिए कि क्या आपको वास्तव में एक बढ़ी हुई कनेक्शन सीमा की आवश्यकता है।
प्रत्येक PostgreSQL कनेक्शन कनेक्शन या क्लाइंट का उपयोग करने के लिए रैम की खपत करता है। आपके पास जितने अधिक कनेक्शन होंगे, आप उतनी अधिक रैम का उपयोग करेंगे जो डेटाबेस को चलाने के लिए उपयोग किया जा सकता है।
एक अच्छी तरह से लिखे गए एप्लिकेशन को आमतौर पर बड़ी संख्या में कनेक्शन की आवश्यकता नहीं होती है। यदि आपके पास एक ऐसा ऐप है जिसे बड़ी संख्या में कनेक्शन की आवश्यकता है, तो pg_bouncer जैसे टूल का उपयोग करने पर विचार करें, जो आपके लिए कनेक्शन पूल कर सके। जैसा कि प्रत्येक कनेक्शन रैम का उपभोग करता है, आपको उनका उपयोग कम से कम करना चाहिए।
अधिकतम कनेक्शन कैसे बढ़ाएं
1. वृद्धि max_connection
औरshared_buffers
में /var/lib/pgsql/{version_number}/data/postgresql.conf
परिवर्तन
max_connections = 100
shared_buffers = 24MB
सेवा
max_connections = 300
shared_buffers = 80MB
shared_buffers
विन्यास पैरामीटर निर्धारित करता है कितना स्मृति है समर्पित करने के लिए उपयोग करने के लिए PostgreSQL के लिए डेटा कैशिंग ।
- यदि आपके पास 1GB या उससे अधिक RAM वाला सिस्टम है, तो आपके सिस्टम में शेयर्ड_बफर्स का एक उचित मूल्य 1/4 है।
- यह संभव नहीं है कि आप 40% से अधिक रैम का उपयोग करके छोटी राशि से बेहतर काम कर सकें (जैसे 25%)
- ध्यान रखें कि यदि आपका सिस्टम या PostgreSQL बिल्ड 32-बिट है, तो यह 2 ~ 2.5GB से ऊपर शेयर्ड_बफर्स सेट करने के लिए व्यावहारिक नहीं हो सकता है।
- ध्यान दें कि विंडोज पर, share_buffers के लिए बड़े मूल्य उतने प्रभावी नहीं हैं, और आपको अपेक्षाकृत कम रखने और इसके बजाय OS कैश का उपयोग करने के बेहतर परिणाम मिल सकते हैं। विंडोज पर उपयोगी रेंज 64MB से 512MB है ।
2. कर्नेल बदलें
आपको कर्नेल अधिकतम सेगमेंट का आकार बढ़ाने की आवश्यकता होगी जो कि इससे थोड़ा बड़ा
होगा shared_buffers
।
फ़ाइल /etc/sysctl.conf
में पैरामीटर को नीचे दिखाए अनुसार सेट करें। postgresql
रिबूट होने पर यह प्रभावी होगा (निम्न पंक्ति कर्नेल को अधिकतम बनाती है 96Mb
)
kernel.shmmax=100663296
संदर्भ
अधिकतम कनेक्शन और साझा बफ़र्स को पोस्ट करता है
आपका PostgreSQL सर्वर ट्यूनिंग