बस max_connections
बढ़ रहा है बुरा विचार है। आपको shared_buffers
बढ़ाने की जरूरत है और kernel.shmmax
साथ ही।
विचारों
max_connections
डेटाबेस सर्वर से समवर्ती कनेक्शन की अधिकतम संख्या निर्धारित करता है। डिफ़ॉल्ट रूप से आमतौर पर 100 कनेक्शन होते हैं।
अपनी कनेक्शन संख्या बढ़ाने से पहले आपको अपने परिनियोजन को बढ़ाने की आवश्यकता हो सकती है। लेकिन इससे पहले, आपको यह विचार करना चाहिए कि क्या आपको वास्तव में एक बढ़ी हुई कनेक्शन सीमा की आवश्यकता है।
प्रत्येक PostgreSQL कनेक्शन कनेक्शन या क्लाइंट का उपयोग करने के प्रबंधन के लिए RAM की खपत करता है। आपके पास जितने अधिक कनेक्शन होंगे, आप उतनी ही अधिक RAM का उपयोग करेंगे जिसका उपयोग इसके बजाय डेटाबेस को चलाने के लिए किया जा सकता है।
एक अच्छी तरह से लिखे गए ऐप को आमतौर पर बड़ी संख्या में कनेक्शन की आवश्यकता नहीं होती है। यदि आपके पास एक ऐप है जिसके लिए बड़ी संख्या में कनेक्शन की आवश्यकता है तो 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 है।
- यह संभावना नहीं है कि आप कम मात्रा (जैसे 25%) से बेहतर काम करने के लिए 40% से अधिक RAM का उपयोग करेंगे
- ध्यान रखें कि अगर आपका सिस्टम या पोस्टग्रेएसक्यूएल बिल्ड 32-बिट है, तो शेयर्ड_बफ़र्स को 2 ~ 2.5GB से ऊपर सेट करना व्यावहारिक नहीं हो सकता है।
- ध्यान दें कि विंडोज़ पर, शेयर्ड_बफ़र्स के लिए बड़े मान उतने प्रभावी नहीं होते हैं, और आप इसे अपेक्षाकृत कम रखते हुए और इसके बजाय OS कैश का अधिक उपयोग करके बेहतर परिणाम प्राप्त कर सकते हैं। विंडोज़ पर उपयोगी श्रेणी 64MB से 512MB तक . है ।
<मजबूत>2. कर्नेल बदलें। shmmax
थोड़ा बड़ा . करने के लिए आपको कर्नेल का अधिकतम खंड आकार बढ़ाना होगा shared_buffers
. की तुलना में ।
फ़ाइल में /etc/sysctl.conf
नीचे दिखाए अनुसार पैरामीटर सेट करें। यह तब प्रभावी होगा जब postgresql
रिबूट (निम्न पंक्ति कर्नेल को अधिकतम 96Mb
. बनाती है )
kernel.shmmax=100663296
संदर्भ
अधिकतम कनेक्शन और साझा बफर पोस्टग्रेज करता है
अपने PostgreSQL सर्वर को ट्यून करना