वेब सर्वर के लिए प्रति सेकंड अनुरोधों का एक वास्तविक माप निर्धारित करना


15

मैं एक nginx स्टैक स्थापित कर रहा हूं और लाइव होने से पहले कॉन्फ़िगरेशन का अनुकूलन कर रहा हूं। मशीन में तनाव परीक्षण के लिए दौड़ना, मुझे 150 से अधिक अनुरोधों पर प्रति सेकंड> 1 सेकंड वापस लेने के लिए महत्वपूर्ण अनुरोधों के साथ चीजों को देखकर निराशा हुई। अजीब तरह से, मशीन खुद भी मुश्किल साँस नहीं ले रही थी।

मैंने अंततः बॉक्स को पिंग करने के लिए सोचा और 100-125 एमएस के आसपास पिंग बार देखा। (मशीन, मेरे आश्चर्य के लिए, देश भर में है)। तो, ऐसा लगता है जैसे नेटवर्क विलंबता मेरे परीक्षण पर हावी है। एक मशीन से एक ही नेटवर्क पर सर्वर (पिंग बार <1ms) के रूप में एक ही परीक्षण चल रहा है और मैं प्रति सेकंड 5000 अनुरोध देखता हूं, जो कि मशीन से जो मैंने उम्मीद की थी, उससे अधिक इन-लाइन है।

लेकिन यह मुझे सोच रहा था: मैं वेब सर्वर के लिए प्रति सेकंड अनुरोधों के "यथार्थवादी" माप को कैसे निर्धारित और रिपोर्ट कर सकता हूं? आप हमेशा प्रदर्शन के बारे में दावे देखते हैं, लेकिन क्या नेटवर्क विलंबता को ध्यान में नहीं रखा जाना चाहिए? यकीन है कि मैं सर्वर के बगल में एक मशीन के लिए प्रति सेकंड 5000 अनुरोध सेवा कर सकता हूं, लेकिन देश भर में मशीन के लिए नहीं। यदि मेरे पास बहुत धीमे कनेक्शन हैं, तो वे अंततः मेरे सर्वर के प्रदर्शन को प्रभावित करेंगे, है ना? या मैं इस सब के बारे में गलत सोच रहा हूं?

मुझे माफ कर दो अगर यह नेटवर्क इंजीनियरिंग 101 सामान है। मैं व्यापार से एक डेवलपर हूँ।

अपडेट: स्पष्टता के लिए संपादित।


abएक संगामिति विकल्प है। आपने इसे क्या सेट किया? इसके अलावा, यदि आप घरेलू ADSL कनेक्शन से परीक्षण कर रहे हैं, तो परीक्षण आपके बैंडविड्थ पर हावी होने की संभावना है और सर्वर पर कुछ भी परीक्षण नहीं करेगा।
लादादादा

मैं ab के कॉन्सेप्ट विकल्प से परिचित हूं और बॉक्स की सीमा की खोज करने के लिए कई तरह के मान आज़मा चुका हूं। जैसा कि मैंने ऊपर लिखा था, मैं समझता हूं कि मेरे शुरुआती परीक्षणों में नेटवर्क का प्रभुत्व था और सर्वर की क्षमता को प्रतिबिंबित नहीं करता था। लेकिन मेरा सवाल अभी भी खड़ा है: यथार्थवादी मीट्रिक प्राप्त करने के लिए अधिकांश लोग अपने परीक्षण कहां से चलाते हैं? सर्वर के रूप में एक ही नेटवर्क पर एक बॉक्स से टेस्ट चलता है (प्रभावी रूप से समीकरण से किसी भी नेटवर्क विलंबता को छोड़ना) बड़ी संख्या में लौटते हैं, लेकिन वे "उचित" संख्याओं की तरह प्रतीत नहीं होते हैं क्योंकि वास्तविक उपयोगकर्ता नेटवर्क के बाहर से आएंगे।
डॉन

एक ही नेटवर्क से चलाए जाने वाले टेस्ट वास्तव में अधिक 'निष्पक्ष' हो सकते हैं क्योंकि वे अनिवार्य रूप से नेटवर्क की उपेक्षा करते हैं। आपके उपयोगकर्ता सभी अलग-अलग नेटवर्क पर होने की संभावना रखते हैं - इसलिए उन सभी नेटवर्क की कुल बैंडविड्थ आसानी से आपके सर्वर के उपलब्ध बैंडविड्थ से अधिक होनी चाहिए। सभी उपयोगकर्ताओं को एक साथ देखते हुए, अड़चन सर्वर की क्षमता है - जबकि एक व्यक्तिगत उपयोगकर्ता पर विचार करते हुए, अड़चन उस एकल उपयोगकर्ता की बैंडविड्थ हो सकती है। (आदर्श परीक्षण, शायद, वास्तविक परिस्थितियों का अनुकरण करने के लिए कई दूरस्थ स्थानों से चलाया जाएगा, हालांकि, अधिकांश मामलों में इसकी आवश्यकता नहीं होनी चाहिए)।
साइबरएक्स ६३

"सभी उपयोगकर्ताओं को एक साथ देखते हुए, अड़चन इसलिए सर्वर की क्षमता है" - यह समझ में आता है और इसके बारे में सोचने का सही तरीका लगता है। मुझे लगता है कि सर्वर गंदे नेटवर्क उपकरणों के पीछे बैठा हो सकता है, बाहरी दुनिया के लिए इसकी प्रतिक्रिया दर को सीमित कर सकता है, लेकिन यह वास्तव में सर्वर की समस्या नहीं है और इसे अलग से संबोधित करने की आवश्यकता है। आदर्श परीक्षा को चलाने के लिए कुछ हद तक Phatt का उपयोग किया जा सकता है, मुझे लगता है।
डॉन

जवाबों:


3

यदि आप दुनिया में कहीं से एक्सेस करने पर अपने सर्वर के प्रदर्शन की परवाह करते हैं, तो अपने लिनक्स बॉक्स पर स्प्रोसी + घेराबंदी को स्थापित करने के लिए दुनिया में कहीं एक दोस्त से पूछें (अच्छा बैंडवाथ होना चाहिए) । बस डाउनलोड करें, कॉन्फ़िगर करें, बनाएं। ये उपकरण छोटे हैं, वे सेकंड के भीतर संकलित करते हैं।

सबसे पहले, sproxyलिनक्स बॉक्स पर शुरू करें। डिफ़ॉल्ट रूप से, यह लोकलहोस्ट (127.0.0.1) पर पोर्ट 9001 पर चलेगा। यदि आप इसे बाहर से एक्सेस करना चाहते हैं, तो इसे एक पैरामीटर के रूप में आउटबाउंड आईपी एड्रेस पास करें।
अब इस आईपी का उपयोग करने के लिए अपने ब्राउज़र को सेट करके स्प्रोसी से कनेक्ट करें और HTTP के लिए प्रॉक्सी के रूप में पोर्ट करें। अब तक आप जो कुछ भी करते हैं, वह स्पॉक्सी द्वारा दर्ज किया जाता है और बाद में फिर से शुरू किया जा सकता है। अब अपनी साइट पर चारों ओर सर्फ करें, उन चीजों को करें जो आपके ग्राहक करते हैं और "महंगी" चीजें करने की कोशिश करते हैं जो आपके सर्वर का उपयोग करते हैं।
जब किया, CTRL ^ C मारकर स्प्रोसी को समाप्त करें। इसने आपके कार्यों को रिकॉर्ड किया $HOME/urls.txt। फ़ाइल को उस स्थान पर ले जाएँ जहाँ घेराबंदी रहती है। तनाव परीक्षण शुरू करने के लिए, दौड़ें siege -f urls.txt -d NUM -c NUMdप्रदर्शन परीक्षण करते समय अनुरोधों के बीच देरी के लिए खड़ा है, 1 (दूसरा) का उपयोग करें।cनकली समवर्ती उपयोगकर्ताओं की संख्या के लिए खड़ा है। इच्छा पर चुनें, लेकिन कम शुरू करें। घेराबंदी आपको प्रति सेकंड लेन-देन की संख्या, त्रुटि का पता लगाने, औसतन कितने समय के लिए अनुरोध आदि लेती है। यह एक शक्तिशाली और उपयोग करने में आसान उपकरण है।
यदि आपको मापदंडों पर अधिक जानकारी की आवश्यकता है (कई हैं), घेराबंदी मैनुअल एक स्प्रोसी मैनुअल की जांच करें

अधिक यथार्थवादी परिणाम प्राप्त करने के लिए, कई लोग एक साथ विभिन्न देशों से आपके सर्वर का परीक्षण करते हैं और उन्हें आपको आंकड़े भेजते हैं।


2

पहुँच लॉग से यथार्थवादी अनुरोध / सेकंड उपाय किया जाना चाहिए। IMO, अनुरोध विलंबता का सर्वर लोड से कोई लेना-देना नहीं है, क्योंकि सर्वर सभी अनुरोधों को उनकी उत्पत्ति के बावजूद समान गति से संसाधित करता है।


1

Soasta Cloudtest जैसी सेवाओं का उपयोग करने पर विचार करें । इसके साथ आप अपने परीक्षणों पर बहुत विस्तृत रिपोर्ट प्राप्त कर सकते हैं और आप विभिन्न सार्वजनिक क्लाउड / वर्चुअलाइजेशन प्रदाताओं से प्रदर्शन परीक्षण चला सकते हैं। आप कॉन्फ़िगर कर सकते हैं कि आप कितनी देर तक और अपने सर्वर को हथौड़ा करना चाहते हैं। उनके पास एक मुफ्त " लाइट " संस्करण भी है, ताकि आप देख सकें कि किसी भी पैसे को कम करने से पहले वह क्या कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.