Apache ab: कृपया आउटपुट की व्याख्या करें


31

मैंने चारों ओर देखा है, और आउटपुट का कोई विस्तृत विवरण नहीं पा सकता है। सबसे वास्तव में समझने में आसान है, लेकिन एक हिस्सा है जो मुझे ललचाता है:

Time per request:       109537.505 [ms] (mean)
Time per request:       109.538 [ms] (mean, across all concurrent requests)

इसका मतलब है - मेरे लिए - कि अगर आप सभी समवर्ती अनुरोधों (जो कुछ भी मतलब है) को मापते हैं तो अनुरोध अचानक 100x तेजी से वापस आ जाते हैं। अनुरोध प्रति समय इतना क्यों बदल जाएगा? इसका कोई अर्थ नहीं निकलता।

क्या इस और ab आउटपुट के अन्य भागों की कोई विस्तृत व्याख्या है?

जवाबों:


53

यदि आपके पास 1 पर संगामिति सेट है, तो उन दोनों के बीच कोई अंतर नहीं है । आपके द्वारा एक साथ किए गए 1 से अधिक अनुरोध होने पर यह महत्वपूर्ण है।

आइए एक उदाहरण देखें कि मुझे अपने पर क्या मिलता है localhost:

ab -c 1 -n 1000 http://localhost/

दे देंगे:

Time taken for tests:   3.912 seconds
Time per request:       3.912 [ms] (mean)
Time per request:       3.912 [ms] (mean, across all concurrent requests)

इसका मतलब है कि एक के बाद एक 1000 अनुरोध करने के लिए 3.912 सेकंड की आवश्यकता थी। अतः एकल अनुरोधों को औसतन 3.912 सेकंड / 1000 = 3.912 एमएस की आवश्यकता थी।

अब कंफर्ट लेवल को थोड़ा बढ़ा दें:

ab -c 10 -n 1000 http://localhost/

Time taken for tests:   0.730 seconds
Time per request:       7.303 [ms] (mean)
Time per request:       0.730 [ms] (mean, across all concurrent requests)

इस बार 3.912 सेकंड के बजाय हमें काम पूरा करने के लिए केवल 0.730 सेकंड की आवश्यकता है। हमने 0.730 सेकंड में 1000 अनुरोध किए हैं, इसलिए एक अनुरोध औसत 0.730 सेकंड / 1000 = 0.730 एमएस (अंतिम पंक्ति) पर ले जाएगा। लेकिन स्थिति थोड़ी अलग है, क्योंकि हम अब 10 अनुरोधों का समवर्ती प्रदर्शन कर रहे हैं। तो वास्तव में हमारी संख्या यहाँ वास्तविक समय को प्रतिबिंबित नहीं कर रही है जिसे पूरा करने के लिए एक अनुरोध के लिए समय लगता है । 0.730 एमएस * 10 (समवर्ती अनुरोधों की संख्या) = 7.303 एमएस। यदि एकल-समवर्ती (या अधिक सही ढंग से, वर्तमान संगामिति स्तर पर अलग-थलग तरीके से) निष्पादित किया गया हो, तो एक एकल अनुरोध को पूरा करने में औसतन समय लगता है।

आपके द्वारा देखा गया आखिरी नंबर (0.730 ms) का उपयोग लगभग यह बताने के लिए किया जाता है कि यदि आपने -n 1001वर्तमान संगामिति स्तर -c 10(अच्छी तरह से कम से कम सैद्धांतिक रूप से ऐसा है ) का उपयोग करके 1 अनुरोध ( ) जोड़ा है तो कुल समय कितना बढ़ जाएगा ।

7.303 एमएस आपको इस बात का अवलोकन देता है कि एक एकल पृथक अनुरोध कब तक चलेगा।

उदाहरण -c 1और -c 10:

[-c 1 ]: Time per request:       3.912 [ms] (mean)
[-c 10]: Time per request:       7.303 [ms] (mean)

इसका अर्थ है कि यदि कोई एकल अनुरोध निष्पादित किया जाता है, तो एक ही अनुरोध तेजी से चलता है -c 1। यदि -c 10संसाधनों के लिए कई अनुरोध हो रहे हैं , तो एक भी अनुरोध पूरा होने में अधिक समय लेगा। लेकिन अगर आप इस तथ्य को ध्यान में रखते हैं कि आप एक ही समय में 10 ऐसे अनुरोध कर रहे हैं, तो इस 7.303 एमएस में आप 1 के बजाय 10 अनुरोधों से निपटते हैं।

तो एक ही अनुरोध के लिए देरी के उपाय के रूप में - 7.303 एमएस अधिक उपयोगी है। लेकिन प्रदर्शन के एक उपाय के रूप में - 0.730 एमएस अधिक सार्थक है। वास्तव में 0.730 एमएस <3.912 एमएस के रूप में आप देखते हैं कि यदि आप 10 समवर्ती अनुरोधों के लिए अनुमति देते हैं, तो आप कुल मिलाकर प्रति सेकंड अधिक अनुरोधों की सेवा कर पाएंगे।

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