Httperf

From EIK wiki

Mis on Httperf?

Httperf on vahend mõõtmiseks veebiserveri jõudlust. See annab paindlikku võimaluse mõõta serveri jõudlust ja genereerida erinevaid HTTP töökoormusi. Httperf eesmärk pole rakendamisel kasutada ühte konkreetset direktiivi vaid pakkuda suure jõudlusega vahendit, mis hõlbustab nii mikro-ja makrotasandi raamide ehitamisel. Kolm iseloomulikku joont HTTPRFil on tema töökindlus, mis hõlmab oskust luua ja säilitada serveri ülekoormus toetust HTTP/1.1 ja SSL protokolli ja selle laiendatavus uute töökoormus generaatori ja talitlusvõime mõõtmiseks.

Toetatud platvormid

httperf 0.9.0 on edukalt katsetatud järgmistel platvormidel:

  • HP-UX 11i (64-bit PA-RISC ja IA-64)
  • Red Hat Enterprise Linux AS (AMD64 ja IA-64)
  • SUSE Linux 10.1 / openSUSE 10.2 (i386)
  • OpenBSD 4.0 (i386)
  • FreeBSD 6.0 (AMD64)
  • Solaris 8 (UltraSPARC 64-bit)

HTTPERF ehitamine

Httperf algkasutas võib sisestada järgmised käsud, et tööriist üles ehitada

$ mkdir build
$ cd build
$ SRCDIR/configure
$ make
$ make install

Selles näites SRCDIR viitab Httperf allikas kataloogi. Viimase sammuna täidetakse kui "root".

Httperf autorid

  • David Mosberger kes töötas suurema osa Httperfist.
  • Stephane Eranian panustas URI generaatoril põhineva logifaili.
  • Dick Carter panustas –wsesslog tööjõudluse generaatori –period valiku toetuse ja vigade parandused.

Lihtsamad näited

httperf --hog --server www

See käsk käsib Httperf luua ühendus host www-ga, saata taotlus root dokumendile, saada vastus, katkestada ühendus, ning printida mõned statistilised tulemused.

httperf --hog --server www --num-conn 100 --ra 10 --timeout 5

Nagu ülemine , aga kokku on ühendusi loodud 100 ühendust ja fikseeritud määr on 10 sekundis.

httperf --hog --server=www --wsess=10,5,2 --rate 1 --timeout 5

Httperf tekitab kokku 10 sessiooni, mille määr on 1 sessioon sekundis. Iga seanss koosneb 5 kõnest, mille vahe on 2 sekundit

httperf --hog --server=www --wsess=10,5,2 --rate=1 --timeout=5 --ssl

Nagu ülemine, aga httperf ühendab www serverisse läbi SSLi pordt 443 (433 on vaikimisi SSL ühenduse port).

httperf --hog --server www --wsess=10,5,2  --rate=1  --timeout=5 --ssl  --ssl-ciphers=EXP-RC4-MD5:EXP-RC2-CBC-MD5   --ssl-no-reuse  --http-version=1.0

Nagu ülemine, ainult et Httperf teavitab serverile, et ta saab valida ainult kahe šiffer sviiti vahel (EXP-RC4-MD5 või EXP-RC2-CBC-MD5). Lisaks kasutab Httperf versiooni 1.0, mis vajab iga uue TCP ühenduse jaoks eraldi taotlust. Samuti SSL tunnuseid ei kasutata uuesti ning seansi alustamise protsess (nö SSL handshake) esineb iga uue ühenduse puhul.

Generaatorid

Default

Tekitab kindla arvu HTTP GET taotlused ja meetmete määra ja mitmeid vastuseid

--wlog=B,F
  • kordab taotlused üle nimekirja URI aadressid (nt replay server log)
  • parameeter F on tee fail ASCII NUL '\ 0' URI aadressite eraldatud nimekiri
  • Kui parameeter B = n, httperf peatub eksperimendis nimekirja lõppu või pärast N kõned (vt - num-Ühendusi = N), olenevalt sellest, kumb on lühem
  • Kui parameeter B = y, httperf see murtakse algusega faili, kui ulatudes nimekirja lõppu (nii URI nimekiri on külastatud korduvalt)
--wsess=N1,N2,X
  • mõõdab sessioone mitte üksikuid taotlusi.
  • Puhangud on järgmised:
    • 1. Üks kõne on välja antud.
    • 2. Pärast saadud vastuse, kõik ülejäänud kõne puhangud antakse välja samaaegselt.
  • Parameeter N1 on kogu sessioonide arv genereerida.
  • Parameeter N2 on kõnede arv sessiooni kohta.
  • Parameeter X on kasutaja think-time (sekundites) kutsumis puhangute vahel.
  • Kaaluge näiteks võimalust - wsess = 100,50,10 - purune-length = 5:
    • Test sisaldab 100 seanssi kokku iga seanss 50 kõnet.
    • Iga puhangu pikkus on 5 kõnet, seega 10 kõne puhangut sessioonis.
    • Kasutaja Think-time kõnede puhangute vahel on 10 sekundit
  • Eksperiment lõpeb pärast N1 sessiooni kui on kas ebaõnnestunud või lõpetanud.
--wsesslog=N,X,F
  • Määrab sessioonil sarnase töökoormus generaatori nagu --wsess
  • Parameeter N on kogu sessioonide arv, mida genereerida
  • Parameeter X on puhangust puhanguni kasutaja think-time
  • Sisendfail F määrab järgnevalt:
    • URI-de arv ja järjekord
    • päringu meetodit
    • think-time (enne puhangut)
    • puhangu pikkus
--wset=N,X
  • Käib läbi URI nimekirja määratud kiirusel, kasutatakse, et luua prognoositav koormus I / O serveri allsüsteemile, failid peaks olema suuremad kui server puhveri vahemälu suurus.
  • Parameeter N täpsustatakse mitut erinevat URI, mis peaksid olema loodud.
  • Parameeter X määrab kiirust, millega uued URI on külastatakse.

Kasutatud materjalid

http://www.hpl.hp.com/research/linux/httperf/ Ametlik kodulehekülg

http://www.hpl.hp.com/research/linux/httperf/httperf-man-0.9.txt Httperf ametlik info fail

http://www.comlore.com/redist_files/httperf-quickstart-guide.pdf Dokument mis kirjutati WWW 2007 Konverents Banff (mai 8-12, 2007) ettevalmistamiseks. Põhineb peamiselt ametliku info faili alusel.

Autor

Kalju Hõbemäe A22 2011