2011-12-31 11 views
14

मैं एक साझा होस्टिंग पर आवश्यक MySQL और संसाधनों के लिए आदर्श प्रदर्शन सेटअप सेट करने का प्रयास कर रहा हूं।max_connections का वास्तव में क्या अर्थ है?

मेरा सवाल है, max_connections वास्तव में क्या मतलब है?

क्या यह सर्वर के लिए अद्वितीय समवर्ती अनुरोधों की संख्या है? तो यदि दो उपयोगकर्ता हैं, 1 टैब के साथ 1 खुला है और दूसरा 4 टैब खोलता है ... और दोनों एक ही समय में फिर से लोड करने के लिए अपने सभी टैब दबाते हैं, तो क्या MySQL डीबी में 5 कनेक्शन बनाए जाएंगे? नतीजतन, अगर हम इस परिदृश्य को इस पर टक्कर देते हैं: 2 टैब वाले 10 लोग और 31 टैब एक टैब के साथ सभी एक ही समय में रीफ्रेश दबाते हैं ... हमारे max_connections 50 पर, क्या हर कोई लॉक हो जाएगा?

कारण मैं पूछ है, क्योंकि मैं कम max_connections के लिए शूट करने के लिए स्मृति संसाधनों के साथ सतर्क रहना के बाद से मैं लगातार देख साइट cpu थ्रॉटलिंग मोड में जाने

आपकी मदद

उत्तर

13

हाँ के लिए धन्यवाद करना चाहते हैं, वहाँ प्रत्येक पृष्ठ के लिए एक अलग कनेक्शन खोला गया है। हालांकि, यह मानते हुए कि आप कुछ भी डेटाबेस-गहन नहीं कर रहे हैं, क्लाइंट को पृष्ठ पर सेवा मिलने के बाद कनेक्शन कम-से-कम होगा और बंद हो जाएगा।

यदि आप कनेक्शन की अधिकतम संख्या से अधिक करते हैं, तो कोई भी कनेक्शन कनेक्शन विफल हो जाएगा।

+2

वहाँ 'max_connections' का मूल्य निर्धारित करने के लिए एक सीमा है? क्या होता है यदि मैं इसे उदाहरण के लिए 200,000 तक सेट करता हूं या इससे भी ज्यादा? – antf

+1

प्रत्येक कनेक्शन ओएस के भीतर और सर्वर प्रक्रिया में स्मृति का उपयोग करता है। आखिरकार आप अपने बॉक्स को संभालने वाले कनेक्शन की अधिकतम संख्या की सीमा को हिट करेंगे। यह काफी पुराना है, लेकिन [सी 10 के समस्या] (http://www.kegel.com/c10k.html) कुछ लोगों का विचार देता है यदि मुद्दों को एक सर्वर के लिए बड़ी संख्या में कनेक्शन का सामना करना पड़ता है। –

15

अधिकतम कनेक्शन की अनुमति अधिकतम_कनेक्शन सिस्टम चर द्वारा नियंत्रित की जाती है। प्रदर्शन को बेहतर बनाने के लिए डिफ़ॉल्ट मान 151 है जब MySQL को अपाचे वेब सर्वर के साथ उपयोग किया जाता है। (पहले, डिफ़ॉल्ट 100 था।) यदि आपको अधिक कनेक्शन का समर्थन करने की आवश्यकता है, तो आपको इस चर के लिए एक बड़ा मान सेट करना चाहिए।

mysqld वास्तव में अधिकतम_कनेक्शन + 1 क्लाइंट कनेक्ट करने की अनुमति देता है। अतिरिक्त कनेक्शन उन खातों द्वारा उपयोग के लिए आरक्षित है जिनके पास सुपर विशेषाधिकार है। प्रशासकों को सुपर विशेषाधिकार प्रदान करके, सामान्य उपयोगकर्ताओं को नहीं (जिन्हें इसकी आवश्यकता नहीं होनी चाहिए), एक प्रशासक सर्वर से कनेक्ट हो सकता है और समस्याओं का निदान करने के लिए शो प्रोसेसलिस्ट का उपयोग कर सकता है भले ही अधिकतम संख्या में अनधिकृत ग्राहक जुड़े हों। खंड 12.7.5.30 देखें, "प्रोसेसलिस्ट सिंटैक्स दिखाएं"।

कनेक्शन की अधिकतम संख्या MySQL समर्थन कर सकते हैं किसी दिए गए प्लेटफॉर्म पर थ्रेड लाइब्रेरी की गुणवत्ता, उपलब्ध रैम की मात्रा, प्रत्येक कनेक्शन के लिए कितनी रैम का उपयोग किया जाता है, प्रत्येक कनेक्शन से वर्कलोड, और वांछित प्रतिक्रिया पहर। लिनक्स या सोलारिस नियमित रूप से 500 से 1000 एक साथ कनेक्शन पर समर्थन करने में सक्षम होना चाहिए और 10,000 से अधिक कनेक्शन यदि आपके पास कई गीगाबाइट रैम उपलब्ध हैं और प्रत्येक से वर्कलोड कम है या प्रतिक्रिया समय लक्ष्य को कम करना है। विंडोज़ तक सीमित है (खुले टेबल × 2 + ओपन कनेक्शन) < 2048 उस प्लेटफ़ॉर्म पर उपयोग की गई पॉज़िक्स संगतता परत के कारण।

खुली-फाइल-सीमा बढ़ाना आवश्यक हो सकता है। MySQL द्वारा कितने हैंडल का उपयोग किया जा सकता है, इस पर ऑपरेटिंग सिस्टम सीमा को बढ़ाने के तरीके के लिए, खंड 2.5, "लिनक्स पर MySQL इंस्टॉल करना" देखें।

से: MySQL 5.6 Reference Manual:: C.5.2.7 Too many connections

संबंधित मुद्दे