Apache Benchmark + GNUPlot: გაზომეთ და დიაგრამეთ თქვენი სერვერის მუშაობა

არ აქვს მნიშვნელობა გამოყენებულია თუ არა ნინიქსი, Apache, Lighttpd ან სხვაგვარად, ქსელის ნებისმიერ ადმინისტრატორს, რომელსაც აქვს ვებ სერვერი, გარკვეულ მომენტში სურს იცოდეს, რამდენად სწრაფად რეაგირებს ვებ სერვერი მოცემულ რაოდენობის მოთხოვნებზე.

მართული-სერვისები-სერვერ-მენეჯმენტი-e1368625038693

Apache ბენჩმარკი + GNUPlot

ამჯერად გამოვიყენებთ ინსტრუმენტს, სახელწოდებით Apache ნიშნული, რომელსაც მიუხედავად იმისა, რომ მას აქვს "apache", არა მხოლოდ Apache შესრულების გაზომვისთვის, არამედ ის შეიძლება გამოყენებულ იქნას Nginx და სხვებისთვის. სინამდვილეში, მე გამოვიყენებ მასზე მუშაობის გასაზომად ნინიქსი.

ჩვენ ასევე გამოვიყენებთ GNUPlot, რაც დაგვეხმარება გრაფიკების შედგენაში რამდენიმე სტრიქონით:

შედეგი

Apache Benchmark- ის და GNUPlot- ის ინსტალაცია

Apache Benchmark არის ინსტრუმენტი, რომლის გამოყენება შეგვიძლია Apache პაკეტის დაყენების შემდეგ, GNUPlot ხელმისაწვდომი იქნება ამავე სახელწოდების პაკეტის დაყენების შემდეგ. Ასე შემდეგ ...

ისეთ დისტროებზე, როგორიცაა Debian, Ubuntu ან მსგავსი:

sudo apt-get install apache2 gnuplot

დისტროში, როგორიცაა ArchLinux ან წარმოებულები:

sudo pacman -S apache gnuplot

ჩვენ მხოლოდ უნდა დავაინსტალიროთ Apache პაკეტი, არ უნდა დაგჭირდეთ მისი დაწყება ან სხვა რამის კონფიგურაცია, საკმარისი იქნება მხოლოდ მისი ინსტალაცია.

Apache ბენჩმარკის გამოყენება

რასაც ჩვენ გავაკეთებთ არის მოთხოვნათა კონკრეტული რაოდენობის გაგზავნა (100) რამდენიმეზე მეტი ჯგუფით (20 – დან 20 – მდე) კონკრეტულ საიტზე. ჩვენ დაზოგავთ შედეგს .csv ფაილში (result.csv) და შემდეგ ვამუშავებთ GNUPloit– ით, ხაზი იქნება:

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

ძალიან მნიშვნელოვანია გაზომვის ადგილის საბოლოო / URL- ის განთავსება.

ეს არის გამომავალი ან ჟურნალი, რომელიც მაჩვენებს, როდესაც ვცდი საიტს ჩემს ქსელში:

ეს არის ApacheBench, ვერსია 2.3 <$ რევიზია: 1638069 $> საავტორო უფლებები ადამ ტუისი, Zeus Technology Ltd, http://www.zeustech.net/ ლიცენზირებულია Apache Software Foundation– ზე, 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 [ms] (საშუალო) მოთხოვნის დრო: 1.007 [ms] (საშუალო, ყველა ერთდროული მოთხოვნის მიღმა) გადაცემის სიჩქარე: 12715.49 [Kbytes / sec] მიღებული კავშირის დრო (ms) min საშუალო [+/- 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 – ჯერ, ისე რომ შექმნათ მსგავსი ზღვარი, რადგან იშვიათად ზედიზედ ორი ტესტის შედეგი იდენტურია.

სხვა სასარგებლო Apache ბენჩმარკის პარამეტრები ან პარამეტრები:

-k -H 'მიღება-კოდირება: gzip, deflate' : ამ ab მიიღებს ქეშსა და კომპრესიას, რომელიც სერვერმა კონფიგურაცია მოახდინა, ასე რომ დრო უფრო დაბალი იქნება.

-ფ urls.txt : ასე რომ, საიტის ინდექსის შემოწმების ნაცვლად, ის განახორციელებს URL- ებზე, რომლებსაც ამ ფაილში ვათვლით.

ყოველ შემთხვევაში ... გადახედე კაცი აბ შენ რომ ნახო.

აჩვენეთ შედეგი გრაფაში:

ამ გამომავალი სურათის დასასმელად, უფრო ვიზუალურ გარემოში და ბევრჯერ, ყველაფრის გაგება ახერხებს მენეჯერებს ... ამისათვის გამოვიყენებთ, როგორც ადრე ვთქვი, GNUPlot

იმავე საქაღალდეში, სადაც გვაქვს ფაილი results.csv (გახსოვდეთ, ჩვენ მხოლოდ ზემოთ მოცემული ბრძანებით შევქმენით) ჩვენ შევქმნით ფაილს gnuplot.p:

nano plot.p

მასში ჩვენ შემდეგს დავდებთ:

მითითებული ტერმინალი png ზომა 600 მითითებული გამომავალი "შედეგები. png"მითითებული სათაური"100 თხოვნებს, 20 ერთდროული მოთხოვნები "მითითებული ზომის კოეფიციენტი 0.6 კომპლექტი ქსელი და მითითებული xlabel"თხოვნებს"მითითებული ylabel"რეაგირების დრო (წმ)"ნაკვეთი"შედეგები. CSV"9 გლუვი sbezier ხაზების სათაურის გამოყენებით"gutl.jovenclub.cu"

მე წითლად მოვინიშნე ის, რაც ყოველთვის უნდა შეამოწმოთ. ეს არის და ზემოდან ქვემოთ:

  1. წარმოქმნილი გამოსახულების ფაილის სახელი
  2. მთლიანი და ერთდროული მოთხოვნების რაოდენობა.
  3. იმ ფაილის სახელი, რომელიც ახლახანს შევქმენით.
  4. დომენზე, რომელზეც ვმუშაობთ.

მას შემდეგ, რაც ჩავუშვით, დაზოგეთ და გამოდით (Ctrl + O და შემდეგ Ctrl + X), ჩვენ შევასრულებთ შემდეგს:

gnuplot plot.p

და voila, ეს შექმნის გრაფას სასურველი სახელით, ჩემია:

შედეგები 2 Დასასრული!

Apache Benchmark– ს ბევრად მეტი ვარიანტი აქვს, ასევე არსებობს მრავალი კომბინაცია, რომელთა საშუალებითაც შეგვიძლია გამოვყოთ ჩვენი შესრულების ტესტი კიდევ უფრო სრულყოფილი.

მაგრამ აი, ეს იყო საფუძვლები

იხალისეთ!


სტატიის შინაარსი იცავს ჩვენს პრინციპებს სარედაქციო ეთიკა. შეცდომის შესატყობინებლად დააჭირეთ ღილაკს აქ.

9 კომენტარი დატოვე შენი

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

*

*

  1. მონაცემებზე პასუხისმგებელი: მიგელ ანგელ გატონი
  2. მონაცემთა მიზანი: სპამის კონტროლი, კომენტარების მართვა.
  3. ლეგიტიმაცია: თქვენი თანხმობა
  4. მონაცემთა კომუნიკაცია: მონაცემები არ გადაეცემა მესამე პირებს, გარდა სამართლებრივი ვალდებულებისა.
  5. მონაცემთა შენახვა: მონაცემთა ბაზა, რომელსაც უმასპინძლა Occentus Networks (EU)
  6. უფლებები: ნებისმიერ დროს შეგიძლიათ შეზღუდოთ, აღადგინოთ და წაშალოთ თქვენი ინფორმაცია.

  1.   Francisco დიჯო

    საინტერესო apache ნიშნული, მე არ ვიცოდი gnuplot– ის შესახებ, შესაძლებელია თუ არა გამომავალი სტილის შეცვლა? მე ვამბობ, რაც შეეხება ოფიციალურ მოხსენებას.

    მოგესალმებით ჩილედან.

    1.    KZKG ^ გაუარა დიჯო

      დიახ, gnuplot– ის ქსელში უამრავი კონფიგურაციაა, მოიძიეთ Google– ში, ხომ არ იპოვნეთ რაიმე სერიოზული თუ პროფესიონალი, რომ გამოიყენოთ, რადგან ეს ყველას გემოვნებაა.

  2.   Wolf119 დიჯო

    უჰმ, მე ახლავე გამოვამოწმებ ვირტუალურ აპაჩ სერვერზე, რომელიც მე მაქვს გაშვებული იმის სანახავად, თუ როგორ მიდის ეს, GUTL– ს მიმართ, რადგან ის ძალიან სწრაფად მუშაობს 80 მოთხოვნიდან, არა? ვნახოთ, რომ 100 ms არ ისინი არაფერია, მაგრამ ის ყურადღებას იპყრობს მაღალი, რომელიც კიდევ 10 თხოვნას იძლევა 70 – დან 80 – მდე 80 – დან 90 – მდე

    1.    KZKG ^ გაუარა დიჯო

      ეს უნდა იყოს რიგის ან მაქსიმალური თემათა რაოდენობის გამო, რომელსაც ერთდროულად უნდა ესწრებოდეს. ამასთან, მე გავაკეთე ტესტი gzip– ის გარეშე, დეფლატის გარეშე, ქეშის გარეშე ან რაიმე

  3.   Ჩარლი ბრაუნი დიჯო

    ძალიან საინტერესოა, განსაკუთრებით GNUPlot– ის გამოყენებისთვის. რასაც ვხედავ, მისი გამოყენება შესაძლებელია თითქმის ნებისმიერი მონაცემთა ნაკრებიდან გრაფიკის შესაქმნელად, არა? ...

    1.    KZKG ^ გაუარა დიჯო

      დიახ, რა თქმა უნდა, თქვენ გადასცემთ მონაცემებს ფაილით, რომელიც გამოყოფილია მძიმით ან მსგავსი რამ, ეუბნებათ როგორ უნდა დაამუშაოთ იგი კონფიგურაციის ფაილში და voila

  4.   Adolfo დიჯო

    გამარჯობა, მე ყოველთვის ვხარჯავ ამ ბლოგის კითხვას, მაგრამ არასდროს მიმიტოვებია კომენტარი არცერთ სტატიასთან დაკავშირებით, და ეს, როგორც ჩანს, კარგი შესაძლებლობაა.
    რა მინდა გაგიზიაროთ არის ის, რომ ამ ტიპის გრაფიკის არასწორად ინტერპრეტაცია შეიძლება მოხდეს, რადგან Apache Bench ალაგებს შედეგს ttime (მთლიანი დრო) თანმიმდევრული დროის ნაცვლად. მიუხედავად იმისა, რომ მონაცემები ჯერ კიდევ სიმართლეა, გრაფიკში, ალბათ, არ ჩანს ის, რაც ჩვენ გვინდა.
    აი ბმული სადაც წავიკითხე.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    ულოცავენ.

  5.   უგო დიჯო

    Apache Benchmark არ არის საუკეთესო ინსტრუმენტი, რათა გავზომოთ HTTP სერვერების მუშაობა მრავალ ბირთვიან კომპიუტერებზე, გარდა ამისა, მხოლოდ 100 მოთხოვნა 20 ერთდროული კავშირით არის ძალიან სუსტი ტესტი, უფრო რეალისტური იქნება 1,000 ან 10,000 მოთხოვნა 100 ერთდროული კავშირით (ცნობილია რომ Nginx არის ერთ – ერთი პროგრამა, რომელსაც შეუძლია წამში მოაწყოს 10,000 – ზე მეტი მოთხოვნა) და ამისათვის უმჯობესია გამოიყენოთ ინსტრუმენტი, როგორიცაა weighttp, რომელიც შექმნილია მრავალი ბირთვით გუნდისთვის და უფრო სწრაფად იყენებს epoll– ს, განსხვავებით Apache Bench– ისგან იყენებს ერთ ძაფს და მოვლენების მართვის ნაკლებად ეფექტურ მექანიზმს.

    ჩემი აზრით, სერვერს მხოლოდ 4 ბირთვი აქვს:

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

  6.   რწმენა დიჯო

    გაუმარჯოს ყველას,
    გრაფიკის (CSV– ​​დან) gnuplot– ით დახატვისას ეს მომცემს შემდეგ შეცდომას, შეგიძლიათ მითხრათ, როგორ გადავჭრათ ეს?

    "Plot.p", სტრიქონი 8: გაფრთხილება: მონაცემთა ფაილის გამოტოვება, მართებული წერტილების გარეშე

    ნაკვეთი «graph.csv» 9 გლუვი sbezier- ის გამოყენებით, ხაზების სათაურით «AB - localhost / web»
    ^
    "Plot.p", სტრიქონი 8: x დიაპაზონი არასწორია

    Gnuplot– ით, შემიძლია HTML გვერდების შექმნაც?