Cum să efectuați benchmark-ul de performanță al serverului web?

Cunoașteți timpul mediu de răspuns al site-ului dvs.? Știți câți utilizatori concurenți pot trata site-ul dvs.?


Testarea încărcării este esențială pentru ca aplicațiile web să cunoască site-ul capacitate. Dacă doriți să alegeți serverul web, atunci unul dintre primele lucruri pe care doriți să le faceți este să efectuați testarea de încărcare și să vedeți care dintre ele funcționează bine pentru dvs..

Marcarea comparativă vă poate ajuta să decideți;

  • Care server web funcționează cel mai bine
  • Numărul de servere pe care trebuie să le servești x numărul de solicitări
  • Ce configurație vă oferă cele mai bune rezultate

Există mai multe instrumente online pentru a efectua un test de stres; cu toate acestea, dacă căutați o soluție internă sau doriți să comparați doar performanța serverului web, atunci puteți utiliza ApacheBench și, alternativ, unele dintre instrumentele enumerate mai jos.

Am folosit Apache & Serverul web Nginx găzduit DigitalOcean pentru a-l testa.

ApacheBench

ApacheBench (ab) este un program de linie de comandă open source care funcționează cu orice server web. În această postare, vă voi explica cum să instalați acest mic program și să efectuați testul de încărcare pentru a analiza rezultatele.

Apache

Să instalăm ApacheBench folosind o comandă yum.

yum instala httpd-tools

Dacă aveți deja instrumente httpd, atunci puteți ignora acest lucru.

Acum, să vedem cum funcționează pentru 5000 de solicitări cu o concurentă de 500.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Este vorba despre ApacheBench, versiunea 2.3 <$ Revizuire: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licențiat la The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (ai răbdare)
A completat 500 de solicitări
A completat 1000 de solicitări
Completate 1500 de solicitări
Completate 2000 de solicitări
A completat 2500 de solicitări
Completat 3000 de solicitări
A completat 3500 de solicitări
A completat 4000 de solicitări
A completat 4500 de solicitări
A completat 5000 de solicitări
A finalizat 5000 de solicitări
Software de server: Apache / 2.2.15
Nume gazdă server: localhost
Port server: 80
Calea documentului: /
Lungimea documentului: 4961 octeți
Nivel de concurenta: 500
Timpul necesar testelor: 13.389 secunde
Cereri complete: 5000
Cereri eșuate: 0
Erori de scriere: 0
Răspunsuri non-2xx: 5058
Total transferat: 26094222 octeți
Transferat HTML: 25092738 octeți
Cereri pe secundă: 373,45 [# / sec] (medie)
Timp pe cerere: 1338.866 [ms] (medie)
Timp pe cerere: 2.678 [ms] (medie, pentru toate cererile concurente)
Rata de transfer: 1903.30 [Kbytes / sec] primite
Timpuri de conectare (ms)
media medie [+/- sd] mediană max
Conectați: 0 42 20.8 41 1000
Prelucrare: 0 428 2116,5 65 13310
Așteptare: 0 416 2117,7 55 13303
Total: 51 470 2121,0 102 13378
Procentul cererilor difuzate într-un anumit timp (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (cea mai lungă cerere)
[[Email protected] ~] #

Așa cum vedeți, Apache s-a ocupat 373 cereri pe secundă, și a fost nevoie de un număr total de 13.389 de secunde pentru a satisface cererile totale.

Acum știți că configurația implicită poate răspunde acestor numeroase solicitări, astfel încât atunci când faceți orice modificare de configurare, puteți face din nou testul pentru a compara rezultatele și a alege Cel mai bun unu.

Nginx

Să facem testul pe care l-am făcut pentru Apache, astfel încât să puteți compara care dintre ele funcționează mai bine.

[[Email protected] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Este vorba despre ApacheBench, versiunea 2.3 <$ Revizuire: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licențiat la The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (ai răbdare)
A completat 500 de solicitări
A completat 1000 de solicitări
Completate 1500 de solicitări
Completate 2000 de solicitări
A completat 2500 de solicitări
Completat 3000 de solicitări
A completat 3500 de solicitări
A completat 4000 de solicitări
A completat 4500 de solicitări
A completat 5000 de solicitări
A finalizat 5000 de solicitări
Software pentru server: nginx / 1.10.1
Nume gazdă server: localhost
Port server: 80
Calea documentului: /
Lungimea documentului: 3698 octeți
Nivel de concurenta: 500
Timpul necesar testelor: 0,758 secunde
Cereri complete: 5000
Cereri eșuate: 0
Erori de scriere: 0
Total transferat: 19660000 octeți
Transferat HTML: 18490000 bytes
Cereri pe secundă: 6593,48 [# / sec] (medie)
Timp pe cerere: 75.832 [ms] (medie)
Timp pe cerere: 0,152 [ms] (medie, pentru toate cererile concurente)
Rata de transfer: 25317,93 [Kbytes / sec] primite
Timpuri de conectare (ms)
media medie [+/- sd] mediană max
Conectați: 0 6 11.0 2 53
Prelucrare: 5 19 8,2 17 53
Așteptare: 0 18 8,2 16 47
Total: 10 25 17.4 18 79
Procentul cererilor difuzate într-un anumit timp (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (cea mai lungă solicitare)
[[Email protected] ~] #

WOW! Ai văzut asta? Nginx se ocupa 6593 cereri pe secundă! Un castigator.

Așa că vedeți doar să comparați cu două servere web, veți avea o idee pe care să o alegeți pentru aplicația dvs. web.

Testul de mai sus este pe CentOS 6.8, 64 biți. Puteți încerca mai multe combinații de sistem de operare & Versiunea Web Server pentru rezultate optime.

ASEDIU

ASEDIU este acceptată utilitatea de testare a încărcării HTTP pe UNIX. Puteți introduce mai multe URL-uri într-un fișier text pentru a încărca testul. Puteți instala asediu folosind yum.

# yum instalați asediul

Să executăm testul cu 500 de solicitări concomitente timp de 5 secunde.

[[Email protected] ~] # asediu -q -t 5S -c 500 http: // localhost /
Ridicarea asediului serverului … terminată.
Tranzacții: 4323 accesări
Disponibilitate: 100,00%
Timp scurs: 4,60 sec
Date transferate: 15,25 MB
Timp de răspuns: 0.04 sec
Rata de tranzacție: 939,78 trans / sec
Debit: 3,31 MB / sec
Concurenta: 37,97
Tranzacții de succes: 4323
Tranzacții eșuate: 0
Cea mai lungă tranzacție: 1.04
Cea mai scurtă tranzacție: 0,00
[[Email protected] ~] #

Pentru a descompune parametrii.

-q – să-l executați în liniște (nu afișează detaliile cererii)

-t – rulați timp de 5 secunde

-c – 500 de solicitări concomitente

Așa cum puteți vedea, disponibilitatea este de 100%, iar timpul de răspuns este de 0,04 secunde. Puteți regla parametrul testului de încărcare în funcție de obiectivul dvs..

Gobench

Gobench este scris în limba Go și utilitare simplă de testare a încărcării pentru a compara performanța serverului web. Acesta acceptă mai mult de 20.000 de utilizatori simultan pe care ApacheBench nu îi are.

Apache JMeter

JMeter este unul dintre cele mai populare instrumente open source pentru a măsura performanța aplicațiilor web. JMeter este o aplicație bazată pe java și nu numai pe serverul web, dar o puteți folosi împotriva PHP, Java. ASP.net, SOAP, REST, etc.

JMeter are o GUI decentă, iar cea mai recentă versiune 3.0 necesită Java 7 sau o versiune superioară pentru a lansa aplicația. Trebuie să încercați JMeter dacă obiectivul dvs. este să optimizați performanța aplicației web.

wrk

wrk este un alt instrument modern de măsurare a performanței pentru a pune o sarcină pe serverul dvs. web și a vă oferi latență, solicitare pe secundă, transfer pe secundă etc. detalii.

Cu wrk, puteți specifica să rulați un test de încărcare cu un număr de fire.

Să luăm un exemplu de rulare a unui test timp de 5 minute cu 500 de utilizatori simultan cu 8 fire.

wrk –t8 –c500 -d300s http: // localhost

HTTPLoad

Httpload poate citi mai multe adrese URL din fișier sau îl puteți specifica în argumentul de comandă. Cea mai recentă versiune acceptă SSL / TLS, ceea ce înseamnă că puteți interoga adresa URL a paginii web activate HTTPS (SSL).

Când testați URL-ul activat SSL, aveți o opțiune pentru a specifica cifrarea, iar comanda simplă de testare va arăta astfel.

httpload -ciferă AES256-SHA-paralel 200-secunde 120 URL_LIST.txt

Pentru a-l înțelege mai bine, mai sus va rula testul împotriva a 200 de utilizatori concurenți timp de 2 minute.

Curl-loader

curl-încărcător este scris în C pentru a simula încărcarea aplicației și acceptă SSL / TLS. Împreună cu testarea paginilor web, puteți utiliza și acest instrument open source pentru a efectua încărcarea pe serverele FTP.

Puteți crea un plan de testare cu un mix de HTTP, HTTPS, FTP și FTPS într-o configurație de un singur lot.

httperf

httperf este un instrument de înaltă performanță, care se concentrează pe etalonul de nivel micro și macro. Acceptă protocoale HTTP / 1.1 și SSL.

Dacă vă așteptați un număr de utilizatori simultan și doriți să testați dacă o serie de solicitări pot fi furnizate de serverul dvs. web, puteți utiliza următoarea comandă.

httperf – server localhost –port 80 – numar-conns 1000 – rata 100

Comanda de mai sus va testa cu 100 de solicitări pe secundă pentru 1000 de solicitări HTTP.

Tsung

Tsung este un instrument de testare a stresului distribuit multi-protocol pentru a stresa serverul HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL. Acceptă HTTP / 1.0, HTTP / 1.1, iar cookie-urile sunt gestionate automat.

Generarea unui raport este realizabilă cu Tsung.

Concluzie

Sper mai sus instrumente de evaluare comparativă vă oferă o idee despre performanța serverului dvs. web și ajutați să decideți ce funcționează cel mai bine pentru proiectul dvs..

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map