Apache Benchmark + GNUPlot: अपने वेब सर्वर के प्रदर्शन को मापें और ग्राफ़ करें

इसका इस्तेमाल करने से कोई फर्क नहीं पड़ता nginx, अपाचे, लाइटटैप या अन्य, किसी भी नेटवर्क व्यवस्थापक जिनके पास वेब सर्वर है, वे किसी बिंदु पर यह जानना चाहेंगे कि वेब सर्वर कितनी तेज़ी से प्रश्नों का जवाब देता है।

प्रबंधित-सेवा-सर्वर-प्रबंधन-e1368625038693

अपाचे बेंचमार्क + GNUPlot

इस बार हम नामक एक टूल का उपयोग करेंगे अपाचे बेंचमार्क, जो कि इसके नाम में 'अपाचे' है, यह न केवल अपाचे प्रदर्शन को मापने के लिए है, बल्कि इसका उपयोग निग्नेक्स और अन्य के लिए भी किया जा सकता है। वास्तव में, मैं इसका उपयोग प्रदर्शन को मापने के लिए करूँगा nginx.

हम भी उपयोग करेंगे जीएनयूप्लॉट, जो कुछ रेखाओं के साथ हमें रेखांकन बनाने में मदद करेंगे:

परिणाम

अपाचे बेंचमार्क और GNUPlot स्थापित करना

अपाचे बेंचमार्क एक उपकरण है जिसे हम अपाचे पैकेज को स्थापित करने के बाद उपयोग कर सकते हैं, GNUPlot उसी नाम के पैकेज को स्थापित करने के बाद उपलब्ध होगा। तो फिर ...

डिबियन, उबंटू या इसी तरह के डिस्ट्रोस पर:

sudo apt-get install apache2 gnuplot

आर्चलिनक्स या डेरिवेटिव जैसे डिस्ट्रोस में:

sudo pacman -S apache gnuplot

हमें केवल अपाचे पैकेज को स्थापित करने की आवश्यकता है, हमें इसे शुरू करने या कुछ और कॉन्फ़िगर करने की आवश्यकता नहीं है, बस इसे स्थापित करना पर्याप्त होगा।

अपाचे बेंचमार्क का उपयोग करना

हम जो करेंगे, वह एक विशिष्ट साइट पर कई (100 से 20 तक) समूहों में विशिष्ट संख्या में अनुरोध (20) भेजेगा। हम परिणाम को एक .csv फ़ाइल (result.csv) में सहेजेंगे और फिर इसे GNUPloit के साथ संसाधित करेंगे, पंक्ति इस प्रकार होगी:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

मापने के लिए साइट के URL में अंतिम / को डालना बहुत महत्वपूर्ण है।

यह आउटपुट या लॉग है जो मुझे दिखाता है जब मैं अपने नेटवर्क पर एक साइट का परीक्षण करता हूं:

यह अपाचेबेंच, संस्करण 2.3 <$ संशोधन: 1638069 $> कॉपीराइट 1996 एडम ट्विस, ज़ीउस टेक्नोलॉजी लिमिटेड, http://www.zeustech.net/ अपाचे सॉफ्टवेयर फाउंडेशन के लिए लाइसेंस, http://www.apache.org/ बेंचमार्किंग gutl.jovenclub.cu (धैर्य रखें) ..... किया

सर्वर सॉफ्टवेयर: nginx सर्वर होस्टनाम: gutl.jovenclub.cu सर्वर पोर्ट: 80

दस्तावेज़ पथ: /
दस्तावेज़ की लंबाई: 206 बाइट्स कंसीडर स्तर: 20 परीक्षण के लिए लिया गया समय: 0.101 सेकंड पूर्ण अनुरोध: 100 विफल अनुरोध: 27 (कनेक्ट: 0, प्राप्त करें: 0, लंबाई: 27, अपवाद: 0) गैर -2xx प्रतिक्रियाएं: 73 कुल हस्तांतरित: 1310933 बाइट्स HTML स्थानांतरित: 1288952 बाइट्स
प्रति सेकंड अनुरोध: 993.24 [# / सेकंड] (मतलब)
अनुरोध के अनुसार समय: 20.136 [एमएस] (मतलब) प्रति अनुरोध समय: 1.007 [एमएस] (मतलब, सभी समवर्ती अनुरोधों के बीच) अंतरण दर: 12715.49 [Kbytes / sec] प्राप्त कनेक्शन टाइम्स (एमएस) मिनट का मतलब [+/-sd] औसत अधिकतम कनेक्ट: 0 1 0.2 1 1 प्रसंस्करण: 1 17 24.8 4 86 प्रतीक्षा: 1 15 21.5 4 76 कुल: 1 18 24.8 5 87 एक निश्चित समय के भीतर अनुरोधों का प्रतिशत (एमएस) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (सबसे लंबा अनुरोध)

मैंने लाल रंग में चिह्नित किया है कि मैं क्या सबसे महत्वपूर्ण चीज मानता हूं, जो कम या ज्यादा रही है:

  1. सर्वर का डेटा जो हम परीक्षण कर रहे हैं, साथ ही साथ प्रश्न में URL भी।
  2. प्रति सेकंड अनुरोधों की संख्या।
  3. कितने मिलीसेकंड में सर्वर ने अनुरोध को सेवा देने के लिए लिया जो सबसे लंबे समय तक ले गया, अर्थात, जिसने उत्तर देने में सबसे लंबा समय लिया।

इस जानकारी के साथ उन्हें इस बात का अंदाजा हो सकता है कि सर्वर को अनुरोधों की उस राशि को शामिल करने में कितना समय लगेगा, वे फिर एक बेहतर कैश सिस्टम जोड़ सकते हैं, उन मॉड्यूल को निष्क्रिय कर सकते हैं जिनका वे उपयोग नहीं करते हैं, आदि, परीक्षण और फिर से चलाएँ देखें कि प्रदर्शन में सुधार हुआ या नहीं।

मैं 2 या 3 बार परीक्षण चलाने की सलाह देता हूं, ताकि आप एक मार्जिन जैसा कुछ बनाएं, क्योंकि एक पंक्ति में दो परीक्षणों के परिणाम शायद ही कभी समान होते हैं।

अन्य उपयोगी अपाचे बेंचमार्क विकल्प या पैरामीटर:

-k -H 'स्वीकार-एनकोडिंग: gzip, deflate' : इसके साथ एब कैश और कम्प्रेशन स्वीकार करेगा जो सर्वर ने कॉन्फ़िगर किया है, इसलिए समय कम होगा।

-एफ urls.txt : इसलिए केवल साइट के सूचकांक का परीक्षण करने के बजाय, यह उन यूआरएल पर परीक्षण करेगा जो हम उस फ़ाइल में निर्दिष्ट करते हैं।

वैसे भी ... देख लेना आदमी अब आपके देखने के लिए।

परिणाम को ग्राफ़ में दिखाएँ:

इस आउटपुट को एक छवि में, यानी अधिक दृश्य माध्यम में और कई बार, यह वह सब कुछ है जिसे प्रबंधक समझने के लिए प्रबंधित करते हैं ... इसके लिए हम जैसा पहले कहा था, उसका उपयोग करेंगे। जीएनयूप्लॉट

उसी फ़ोल्डर में जहां हमारे पास फ़ाइल result.csv है (याद रखें, हम अभी उपरोक्त आदेश के साथ उत्पन्न हुए हैं) हम gnuplot.p नामक एक फाइल बनाने जा रहे हैं:

nano plot.p

इसमें हम निम्नलिखित डालेंगे:

टर्मिनल png आकार 600 सेट आउटपुट "परिणाम"सेट शीर्षक"100 अनुरोध, 20 समवर्ती अनुरोध "सेट आकार अनुपात 0.6 सेट ग्रिड और सेट xlabel"अनुरोध"सेट यलैबेल"प्रतिक्रिया समय (एमएस)"भूखंड"परिणाम"लाइनों शीर्षक के साथ 9 चिकनी sbezier का उपयोग"गुटल.जोवेनक्लब"

मैंने लाल रंग में संकेत दिया है कि आपको हमेशा जांच करनी चाहिए। यह है और ऊपर से नीचे तक:

  1. उत्पन्न होने वाली छवि फ़ाइल का नाम
  2. कुल और समवर्ती अनुरोधों की संख्या।
  3. उस फ़ाइल का नाम, जिसे हमने अभी जनरेट किया है।
  4. डोमेन हम पर काम करते हैं।

एक बार जब हम इसे डालते हैं, तो बचाएं और बाहर निकलें (Ctrl + O और फिर Ctrl + X), हम निम्नलिखित पर अमल करेंगे:

gnuplot plot.p

और वोइला, जो वांछित नाम के साथ ग्राफ उत्पन्न करेगा, मेरा है:

परिणाम २

समाप्त!

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

लेकिन हे, यह मूल बातें है has

का आनंद लें!


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   फ्रांसिस्को कहा

    दिलचस्प अपाचे बेंचमार्क, मुझे gnuplot के बारे में पता नहीं था, क्या आउटपुट की शैली को संशोधित करना संभव है? मैं औपचारिक रिपोर्ट के लिए कहता हूं।

    चिले के तरफ से शुभकामनाये।

    1.    KZKG ^ गारा कहा

      हां, gnuplot के लिए नेट पर बहुत सारे कॉन्फ़िगरेशन हैं, Google द्वारा यह देखने के लिए देखें कि क्या आपको इसका उपयोग करने के लिए कोई गंभीर या पेशेवर मिल गया है, क्योंकि यह सभी का स्वाद है lot

  2.   Wolf119 कहा

    उम्म मैं अभी एक आभासी एपाचे सर्वर पर इसका परीक्षण करने जा रहा हूं जिसे मैंने जीयूटीएल के संबंध में देखने के लिए कि यह कैसे चला जाता है, क्योंकि यह 80 अनुरोधों से बहुत जल्दी फायर करता है? चलो देखते हैं कि 100 एमएस नहीं है? gives० से ,० के साथ with० से but० के मुकाबले १० से that० के मुकाबले १० से compared० अधिक अनुरोधों के लिए कुछ भी नहीं है

    1.    KZKG ^ गारा कहा

      यह एक साथ भाग लेने के लिए अधिकतम धागे की कतार या संख्या के कारण होना चाहिए। हालाँकि, मैंने बिना गज़ब के परीक्षण किया, बिना डिफ्लेट, बिना कैश या कुछ भी test

  3.   चार्ली ब्राउन कहा

    बहुत दिलचस्प है, खासकर GNUPlot के उपयोग के लिए। मैं जो देख रहा हूं, उसका उपयोग लगभग किसी भी डेटा सेट, सही से ग्राफ़ बनाने के लिए किया जा सकता है? ...

    1.    KZKG ^ गारा कहा

      हाँ, बेशक, आप डेटा को अल्पविराम द्वारा अलग की गई फ़ाइल या कुछ इस तरह से पास करते हैं, आप इसे कॉन्फ़िगरेशन फ़ाइल में इसे संसाधित करने का तरीका बताते हैं, और यही है

  4.   एडोल्फो कहा

    नमस्कार, मैं हमेशा इसे इस ब्लॉग को पढ़ने में बिताता हूं लेकिन मैंने कभी किसी लेख पर टिप्पणी नहीं की है, और यह एक अच्छा अवसर लगता है।
    जो मैं आपके साथ साझा करना चाहता हूं वह यह है कि इस प्रकार के ग्राफ का गलत अर्थ लगाया जा सकता है, क्योंकि अपाचे बेंच क्रमिक समय के बजाय समय (कुल समय) का उपयोग करके परिणाम को सॉर्ट करता है। हालांकि डेटा अभी भी सच है, ग्राफ़ शायद यह नहीं दिखाता है कि हम क्या चाहते हैं।
    यहाँ लिंक है जहाँ मैंने इसे पढ़ा।
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    नमस्ते.

  5.   ह्यूगो कहा

    अपाचे बेंचमार्क कई कोर के साथ कंप्यूटर में HTTP सर्वर के प्रदर्शन को मापने के लिए सबसे अच्छा उपकरण नहीं है, इसके अलावा, 100 समवर्ती कनेक्शन के साथ केवल 20 अनुरोध एक बहुत ही कमजोर परीक्षण है, कुछ अधिक यथार्थवादी 1,000 समवर्ती कनेक्शन के साथ 10,000 या 100 अनुरोध होंगे (यह ज्ञात है Nginx उन अनुप्रयोगों में से एक है जो प्रति सेकंड 10,000 से अधिक अनुरोधों की सेवा करने में सक्षम है) और इसके लिए वेटटैप जैसे टूल का उपयोग करना बेहतर है, जो मल्टी-कोर कंप्यूटरों के लिए डिज़ाइन किया गया है और एपोल का उपयोग करता है जो तेज़ है, अपाचे बेंच के विपरीत जो एकल थ्रेड और कम कुशल ईवेंट हैंडलिंग तंत्र का उपयोग करता है।

    मेरी बात को धरातल पर उतारने के लिए मान लिया गया कि सर्वर में केवल 4 कोर हैं:

    weighttp -n 10000 -c 100 -t 4 -k "http://our-web-site.com/"

  6.   विश्वास कहा

    हाय सब,
    Gnuplot के साथ ग्राफ (CSV से) खींचते समय यह मुझे निम्न त्रुटि देता है, क्या आप मुझे बता सकते हैं कि इसे कैसे हल किया जाए?

    "Plot.p", पंक्ति 8: चेतावनी: बिना किसी मान्य बिंदु के डेटा फ़ाइल को छोड़ना

    साजिश «graph.csv» लाइनों शीर्षक के साथ 9 चिकनी sbezier का उपयोग «एबी - लोकलहोस्ट / वेब»
    ^
    "Plot.p", पंक्ति 8: x श्रेणी अमान्य है

    Gnuplot के साथ, क्या मैं HTML पृष्ठ भी बना सकता हूं?