आइए मान लें कि आपका सिस्टम वर्तमान में यूनिक्स-आधारित है (जैसा कि आपके समस्या विवरण में दिया गया है)। अगर यह सही है, तो यहां उन समस्याओं का समूह दिया गया है, जिनका आप सामना कर रहे हैं:
-
आपकी मेमोरी खत्म हो गई है MySQL के लिए उपलब्ध है।
यह सबसे संभावित समस्या है जिसका आप सामना कर रहे हैं। MySQL के कनेक्शन पूल में प्रत्येक कनेक्शन को कार्य करने के लिए मेमोरी की आवश्यकता होती है, और यदि यह संसाधन समाप्त हो जाता है, तो आगे कोई कनेक्शन नहीं बनाया जा सकता है। बेशक, विभिन्न कार्यों के मेमोरी फुटप्रिंट और अधिकतम पैकेट आकार को में ट्यून किया जा सकता है। आपके
my.cnf
. के बराबर अगर आपको पता चलता है कि यह एक समस्या है।यहां एक अतिरिक्त थ्रेड है जो वहां मदद कर सकता है , लेकिन आप
top
. जैसे सरल प्रोफाइलिंग टूल का उपयोग करने पर भी विचार कर सकते हैं क्या हो रहा है इसका एक अच्छा बॉलपार्क अनुमान प्राप्त करने के लिए। -
आपके पास फ़ाइल डिस्क्रिप्टर खत्म हो गए हैं आपके MySQL उपयोगकर्ता खाते के लिए उपलब्ध है।
एक और आम समस्या:यदि आप 1,024 सीमा से ऊपर फ़ाइल IO की आवश्यकता वाले अनुरोधों को पूरा करने का प्रयास कर रहे हैं (डिफ़ॉल्ट रूप से), तो आप ऐसे मामलों में भाग लेंगे जहां ऑपरेशन बस विफल हो जाता है। ऐसा इसलिए है क्योंकि अधिकांश सिस्टम खुले फ़ाइल डिस्क्रिप्टर की संख्या पर एक नरम और कठोर सीमा निर्दिष्ट करते हैं जो प्रत्येक उपयोगकर्ता एक समय में उपलब्ध हो सकता है, और इस सीमा से अधिक चलने से समस्याएं हो सकती हैं।
इसमें आमतौर पर आपकी लॉग फ़ाइलों में स्पष्ट रूप से स्पष्ट संकेतों की एक श्रृंखला होगी। चेक
/var/log/messages
और आपकी तुलनीय निर्देशिकाएं (उदाहरण के लिए,/var/log/mysql
यह देखने के लिए कि क्या आपको कुछ दिलचस्प मिल सकता है। -
आप एक लाइवलॉक या गतिरोध में चले गए हैं परिदृश्य जहां आपका धागा असंतोषजनक है।
मेमोरी और फाइल डिस्क्रिप्टर थकावट के लिए कोरोलरी, थ्रेड्स टाइम आउट हो सकते हैं यदि आपने कम्प्यूटेशनल लोड को पार कर लिया है तो आपका सिस्टम संभालने में सक्षम है। यह इस त्रुटि संदेश को नहीं फेंकेगा, लेकिन यह भविष्य में ध्यान देने योग्य बात है।
-
आपके सिस्टम में
fork
के लिए उपलब्ध PID समाप्त हो रहे हैं ।एक अन्य सामान्य परिदृश्य:
fork
किसी भी समय इसके उपयोग के लिए केवल इतने ही PID उपलब्ध हैं। अगर आपका सिस्टम केवल ओवरफोर्कड है , यह अनुरोधों को पूरा करने में सक्षम नहीं रहेगा।इसके लिए सबसे आसान जांच यह देखना है कि क्या कोई अन्य सेवाएं मशीन से जुड़ सकती हैं। उदाहरण के लिए, बॉक्स में SSH की कोशिश करना और यह पता लगाना कि आप नहीं कर सकते, एक बड़ा सुराग है।
-
एक अपस्ट्रीम प्रॉक्सी या कनेक्शन प्रबंधक के पास संसाधन खत्म हो गए हैं और सर्विसिंग अनुरोध बंद हो गए हैं।
यदि आपके क्लाइंट और MySQL के बीच कोई सेवा परत है, तो यह देखने के लिए निरीक्षण करता है कि क्या यह दुर्घटनाग्रस्त हो गया है, लटका हुआ है, या अन्यथा अस्थिर हो गया है। ऊपर दी गई सलाह लागू होती है।
-
आपके पोर्ट मैपर ने 65,536 कनेक्शन के बाद अपने आप समाप्त हो गया है ।
संभावना नहीं है, लेकिन फिर से, एक संभावित थकावट का मामला। ऊपर के रूप में तुच्छ सेवा कनेक्शन की जाँच करना, एहम, यहाँ कॉल का सबसे अच्छा पोर्ट भी है।
संक्षेप में:यह एक संसाधन थकावट परिदृश्य है, जिसमें सर्वर का केवल "डाउन" होना शामिल है। यह देखने के लिए कि आप किस पर रोक लगा रहे हैं, आपको अपने सिस्टम को और अधिक प्रोफाइल करना होगा। इस मामले में सभी त्रुटि संदेश हमें यह तथ्य देते हैं कि संसाधन क्लाइंट के लिए अनुपलब्ध है -- हमें सर्वर के बारे में अधिक जानकारी देखने की आवश्यकता होगी अधिक पर्याप्त उपाय निर्धारित करने के लिए।