संक्षिप्त उत्तर है: आपके अलावा कोई भी इस प्रश्न का उत्तर नहीं दे सकता है।
लंबा जवाब यह है कि आपके विशिष्ट कार्यभार को बेंचमार्किंग कुछ ऐसा है जिसे आपको स्वयं करने की आवश्यकता है, क्योंकि यह थोड़ा पूछने जैसा है "स्ट्रिंग का एक टुकड़ा कितना लंबा है?"।
एक साधारण एक-पृष्ठ स्थैतिक वेबसाइट को एक पेंटियम प्रो 150 पर होस्ट किया जा सकता है और अभी भी हर दिन हजारों छापों की सेवा कर सकता है।
बुनियादी दृष्टिकोण आप इस सवाल का जवाब देने की जरूरत है की कोशिश यह और देखो क्या होता। बहुत सारे उपकरण हैं जो आप कृत्रिम रूप से अपने सिस्टम को दबाव में डालकर देख सकते हैं कि वह कहाँ बकल है।
इसका संक्षिप्त विवरण यह है:
- अपने परिदृश्य को जगह दें
- निगरानी जोड़ें
- ट्रैफ़िक जोड़ें
- परिणामों का मूल्यांकन करें
- परिणामों के आधार पर उपाय
- कुल्ला, यथोचित रूप से खुश होने तक दोहराएं
अपने परिदृश्य को जगह दें
मूल रूप से, कुछ लोड का परीक्षण करने के लिए, आपको परीक्षण के लिए कुछ चाहिए। के खिलाफ परीक्षण करने के लिए एक वातावरण सेट करें। यदि संभव हो तो यह आपके उत्पादन हार्डवेयर के लिए काफी करीबी अनुमान होना चाहिए, अन्यथा आप अपने डेटा को एक्सट्रपलेशन करने से बचे रहेंगे।
अपने सर्वर, खाते, वेबसाइट, बैंडविड्थ, आदि सेट करें, भले ही आप वीएम पर ऐसा करते हैं जो ठीक है जब तक आप अपने परिणामों को स्केल करने के लिए तैयार हैं।
इसलिए, मैं एक मिड-संचालित वर्चुअल मशीन (दो कोर, 512 एमबी रैम, 4 जीबी एचडीडी) स्थापित करने जा रहा हूं और वीएम पर रेड हैट लिनक्स केhaproxy
अंदर अपना पसंदीदा लोड बैलेंसर स्थापित कर रहा हूं ।
मैं लोड बैलेंसर के पीछे दो वेब सर्वर भी रखने जा रहा हूं जो मैं लोड बैलेंसर का परीक्षण करने के लिए उपयोग करने जा रहा हूं। ये दो वेब सर्वर मेरे लाइव सिस्टम के लिए समान रूप से स्थापित हैं।
निगरानी जोड़ें
आपको मॉनिटर करने के लिए कुछ मैट्रिक्स की आवश्यकता होगी, इसलिए मैं मापने जा रहा हूं कि मेरे वेब सर्वर के माध्यम से कितने अनुरोध प्राप्त होते हैं, और उपयोगकर्ताओं द्वारा दो सेकंड से अधिक की प्रतिक्रिया समय प्राप्त करने से पहले मैं कितने अनुरोधों को प्रति सेकंड के माध्यम से निचोड़ सकता हूं।
मैं यह सुनिश्चित करने के लिए RAM, CPU और डिस्क उपयोग की निगरानी करने जा रहा हूं haproxy
ताकि यह सुनिश्चित किया जा सके कि लोड बैलेंसर कनेक्शन को संभाल सकता है।
यह कैसे करना है यह आपके प्लेटफार्मों पर बहुत कुछ निर्भर करता है और इस उत्तर के दायरे से बाहर है। आपको वेब सर्वर लॉग फ़ाइलों की समीक्षा करने, प्रदर्शन काउंटर शुरू करने या अपने तनाव परीक्षण उपकरण की रिपोर्टिंग क्षमता पर भरोसा करने की आवश्यकता हो सकती है।
कुछ चीजें जिन्हें आप हमेशा मॉनिटर करना चाहते हैं:
- सि पि यु का उपयोग
- राम का उपयोग
- डिस्क उपयोग
- डिस्क विलंबता
- नेटवर्क का उपयोग
आप विशेष रूप से परीक्षण कर रहे हैं, उसके आधार पर आप एसक्यूएल गतिरोधों को भी देख सकते हैं।
ट्रैफ़िक जोड़ें
यह वह जगह है जहाँ चीजें मज़ेदार होती हैं। अब आपको एक परीक्षण लोड अनुकरण करने की आवश्यकता है। ऐसे बहुत सारे उपकरण हैं जो यह कर सकते हैं, विन्यास योग्य विकल्पों के साथ:
एक संख्या, कोई भी संख्या चुनें। मान लीजिए कि आप यह देखने जा रहे हैं कि सिस्टम एक मिनट में 10,000 हिट्स कैसे देता है। इससे कोई फर्क नहीं पड़ता कि आप किस नंबर को चुनते हैं क्योंकि आप इस चरण को कई बार दोहराने जा रहे हैं, उस संख्या को ऊपर या नीचे समायोजित करके देखें कि सिस्टम कैसे प्रतिक्रिया करता है।
आदर्श रूप से, आपको इन 10,000 अनुरोधों को कई लोड परीक्षण ग्राहकों / नोड्स पर वितरित करना चाहिए ताकि एक भी ग्राहक अनुरोधों की अड़चन न बने। उदाहरण के लिए, JMeter की रिमोट टेस्टिंग एक केंद्रीय इंटरफ़ेस प्रदान करती है, जिसमें एक नियंत्रित Jmeter मशीन से कई क्लाइंट लॉन्च किए जाते हैं।
मैजिक गो बटन दबाएं और अपने वेब सर्वर को पिघल कर दुर्घटनाग्रस्त होते देखें।
परिणामों का मूल्यांकन करें
इसलिए, अब आपको चरण 2 में एकत्र किए गए अपने मैट्रिक्स पर वापस जाने की आवश्यकता है। आप देखते हैं कि 10,000 समवर्ती कनेक्शनों के साथ, आपका haproxy
बॉक्स मुश्किल से एक पसीना तोड़ रहा है, लेकिन दो वेब सर्वरों के साथ प्रतिक्रिया समय पांच सेकंड से अधिक का स्पर्श है। यह अच्छा नहीं है - याद रखें, आपकी प्रतिक्रिया का समय दो सेकंड का लक्ष्य है। इसलिए, हमें कुछ बदलाव करने की जरूरत है।
remediate
अब, आपको अपनी वेबसाइट को दो बार से अधिक गति देने की आवश्यकता है। तो आप जानते हैं कि आपको या तो स्केल अप करने की जरूरत है, या स्केल आउट करने की।
बड़े पैमाने पर, बड़े वेब सर्वर, अधिक रैम, तेज डिस्क प्राप्त करें।
स्केल करने के लिए, अधिक सर्वर प्राप्त करें।
यह निर्णय लेने के लिए, चरण 2 और परीक्षण से अपने मैट्रिक्स का उपयोग करें। उदाहरण के लिए, यदि आपने देखा कि परीक्षण के दौरान डिस्क विलंबता बड़े पैमाने पर थी, तो आप जानते हैं कि आपको बड़े पैमाने पर और तेज़ हार्ड ड्राइव प्राप्त करने की आवश्यकता है।
यदि आपने देखा कि परीक्षण के दौरान प्रोसेसर 100% पर बैठा था, तो शायद आपको मौजूदा सर्वर पर दबाव को कम करने के लिए अतिरिक्त वेब सर्वर जोड़ने की आवश्यकता होगी।
कोई सामान्य सही या गलत उत्तर नहीं है, केवल वही है जो आपके लिए सही है। स्केलिंग की कोशिश करो, और अगर वह काम नहीं करता है, तो इसके बजाय बाहर पैमाने पर। या नहीं, यह आपके ऊपर है और बॉक्स के बाहर कुछ सोच रहा है।
मान लीजिए कि हम बड़े पैमाने पर जा रहे हैं। इसलिए मैं अपने दो वेब सर्वर (वे VMs) को क्लोन करने का फैसला करता हूं और अब मेरे पास चार वेब सर्वर हैं।
कुल्ला, दोहराना
चरण 3 से फिर से शुरू करें। यदि आप पाते हैं कि चीजें आपकी अपेक्षा के अनुसार नहीं चल रही हैं (उदाहरण के लिए, हमने वेब सर्वरों को दोगुना कर दिया है, लेकिन रिपीट टाइम अभी भी दो सेकंड से अधिक है), तो अन्य बाधाओं पर गौर करें। उदाहरण के लिए, आपने वेब सर्वर को दोगुना कर दिया है, लेकिन फिर भी एक भद्दा डेटाबेस सर्वर है। या, आपने अधिक VMs का क्लोन बनाया है, लेकिन क्योंकि वे एक ही भौतिक होस्ट पर हैं, तो आपने केवल सर्वर संसाधनों के लिए उच्च विवाद प्राप्त किया है।
फिर आप सिस्टम के अन्य भागों का परीक्षण करने के लिए इस प्रक्रिया का उपयोग कर सकते हैं। लोड बैलेंसर को हिट करने के बजाय, वेब सर्वर या SQL सर्वर को SQL बेंचमार्किंग टूल का उपयोग करके सीधे हिट करने का प्रयास करें ।