अपने ऐप के लिए सही थ्रेशोल्ड खोजें
यह सुनिश्चित करने के लिए कि आपका एप्लिकेशन उपयोग में वृद्धि और ट्रैफिक में उछाल का सामना कर सके, लोड टेस्ट करना अनिवार्य है ताकि उस सीमा का निर्धारण किया जा सके जिसे आपका एप्लिकेशन प्रोडक्शन सिस्टम में स्केलिंग जैसे बदलाव लागू करने से पहले संभाल सकता है। अक्सर इस प्रक्रिया को नजरअंदाज कर दिया जाता है, जिसके परिणामस्वरूप ट्रैफिक बढ़ने पर समस्याओं का सामना करना पड़ता है।
एक सफल MongoDB लोड टेस्ट के लिए निम्नलिखित विचारों को शामिल करना चाहिए:
- बॉटलनेक खोजने के लिए किन मेट्रिक्स की निगरानी करने की आवश्यकता है?
- स्केल करने के समय के संदर्भ में किस थ्रेशोल्ड का उपयोग किया जाना चाहिए?
- मेट्रिक्स का विश्लेषण करने के लिए किन टूल्स का उपयोग किया जाना चाहिए?
- लोड टेस्ट कहां चलाना चाहिए?
बॉटलनेक खोजने के लिए मुझे किन मेट्रिक्स की निगरानी करनी चाहिए?
सबसे पहले, आपको अपने विशेष एप्लिकेशन के सीमित कारकों को खोजने के लिए मानदंड निर्धारित करने की आवश्यकता है। हर एप्लिकेशन अलग होता है। इन आवश्यकताओं को जानने से आप डेटाबेस की ओर से निगरानी करने के लिए उपयुक्त मेट्रिक्स निर्धारित कर सकते हैं।
यहां कुछ उदाहरण हैं:
- आपके एप्लिकेशन को ट्रैफिक बढ़ने पर प्रति सेकंड X संख्या में इन्सर्ट की आवश्यकता होती है।
- डेटा को 100 मिलीसेकंड से कम समय में उपयोगकर्ता को वापस करना होता है।
- समवर्ती कनेक्शन की संख्या में एक सीमा होती है।
- सर्वर संसाधनों में एक सीमा होती है, जैसे उच्च CPU या लोड एवरेज।
एक बार जब आप एप्लिकेशन-साइड मेट्रिक्स निर्धारित कर लेते हैं, तो आप डेटाबेस की ओर क्या निगरानी करनी है, यह तय कर सकते हैं।
उदाहरण के लिए, यदि आपकी आवश्यकताएं एक निश्चित संख्या में इन्सर्ट अनुरोध रखने की हैं, तो राइट मेट्रिक्स पर ध्यान केंद्रित करें जैसे:
- सर्वर I/O
- डेटाबेस लॉकिंग
- opcounters, सक्रिय राइट्स के संदर्भ में
- उपलब्ध राइट टिकट, यदि आप अपने स्टोरेज इंजन के रूप में WiredTiger चला रहे हैं
मेट्रिक्स का विश्लेषण करने के लिए उपयोग किए जाने वाले टूल्स
एक बार जब आप निर्धारित कर लेते हैं कि किन मेट्रिक्स की निगरानी करनी है, तो आपको डेटाबेस की ओर से डेटा एकत्र करने की आवश्यकता होती है। यहां कुछ यूटिलिटीज हैं जिनका उपयोग आप लोड फैक्टर का विश्लेषण करने के लिए कर सकते हैं:
- mongostat यूटिलिटी लॉकिंग, रीड और राइट कतारों पर रीयल-टाइम डेटाबेस मेट्रिक्स दिखाती है।
- db.currentOp() यूटिलिटी वर्तमान सक्रिय ऑपरेशंस को निर्धारित करती है।
- mongotop आपको शीर्ष सक्रिय कलेक्शन देखने की अनुमति देता है।
- top, sar, iostat जैसे सर्वर यूटिलिटीज CPU उपयोग या डिस्क थ्रूपुट जैसी मेट्रिक्स दिखाते हैं।
रीयल-टाइम विश्लेषण के अलावा, आप डेटाबेस गतिविधि के साथ-साथ किसी भी त्रुटि की स्थिति के बारे में अतिरिक्त विवरण के लिए MongoDB लॉग्स को भी माइन कर सकते हैं। डिफ़ॉल्ट रूप से, MongoDB उन क्वेरीज को लॉग करता है जिन्हें निष्पादित होने में 100ms से अधिक समय लगता है, इसलिए यह खराब प्रदर्शन करने वाली क्वेरीज की पहचान करने के लिए एक अच्छा टूल है।
लोड टेस्ट कहां चलाना है यह निर्धारित करें
एक बार जब आप निर्धारित कर लेते हैं कि डेटा एकत्र करने के लिए क्या उपयोग करना है, तो आप लोड टेस्ट के लिए तैयार हैं। सामान्य ज्ञान यह निर्देश देता है कि आपको कभी भी प्रोडक्शन वातावरण में लोड टेस्ट नहीं करना चाहिए। कभी-कभी यह एक शो स्टॉपर बन जाता है क्योंकि टेस्ट वातावरण को तेजी से स्पिन करना मुश्किल हो सकता है। यदि आप पहले से ही ObjectRocket प्लेटफॉर्म पर नहीं हैं, तो आप बहुत जल्दी एक MongoDB टेस्ट क्लस्टर स्पिन कर सकते हैं।
कुछ मदद चाहिए?
यह जानना कि आपके MongoDB वातावरण को कब स्केल करना है, जटिल हो सकता है। ObjectRocket ग्राहक सर्वोत्तम स्केलिंग और शार्डिंग सपोर्ट का आनंद लेते हैं। हमारे DBAs आपके क्लस्टर्स को स्केल करने के हर पहलू में मदद कर सकते हैं और हमारी मदद हमेशा शामिल होती है। शुरू करने के लिए आज ही हमसे संपर्क करें।
अब जब आप यह निर्धारित करना शुरू कर सकते हैं कि अपने MongoDB इंस्टेंस को कब स्केल करना है, तो हमारे अगले ब्लॉग में हम कवर करेंगे कि MongoDB इंस्टेंस को कैसे स्केल किया जाए।