Pratite performanse Apache poslužitelja

Kada želite pratiti a apache poslužitelj, moramo znati neke aspekte:

  • Koliko zahtjeva može podnijeti
  • Brzina kojom odgovara na zahtjeve
  • Koje je vrijeme čekanja
  • Koje se aplikacije ili usluge mogu poboljšati ili optimizirati
Za mjerenje performansi poslužitelja koristit ćemo alat pod nazivom Apache Benchmark ili ApacheBench.

ApacheBenchApacheBench računalni softver radi na naredbenom retku za mjerenje performansi, osobito web poslužitelja i http usluge. Ovaj je softver razvijen za testiranje Apache HTTP poslužitelja, ali budući da je alat za testiranje http usluga, moguće ga je koristiti za testiranje bilo kojeg web poslužitelja, npr. Nginx, Lighttpd.

Alat ApacheBench nalazi se u spremištima Linuxa i kao knjižnica na poslužitelju Apache te je stoga besplatan softver otvorenog koda i koristi licencu Apache.

Ova vrsta testa vrlo je jednostavna za napraviti na brz način pomoću naredbe Apache Bench ab.

Ovaj test brzo će nam pokazati postoji li trenutni problem s instalacijom Apachea i stoga loše reagira.

Također nam pomaže u sljedećem pitanju Koliko daleko mogu koristiti ili forsirati poslužitelj i njegove web resurse s Apacheom, PHP -om i MySQL -om? (uz istovremene veze i stranicu sa zahtjevom za učitavanje), plus ono što trebamo optimizirati u Apache i PHP konfiguraciji da bismo dobili bolje performanse i eliminirati probleme odgovaranja na zahtjeve posjetitelja.

1. Instaliranje ApacheBencha na Linux poslužiteljima


Ubuntu / Debian
 sudo apt-get install -y apache2 sudo apt-get install apache2-utils

Redhat / Centos

 yum instalirajte httpd-tools

Provest ćemo testove s različitim domenama i ip -om. Počet ćemo s otvaranjem prozora terminala i izvršit ćemo sljedeće testove:

Lokalni poslužitelj ili localhost također ip 127.0.0.1

 ab 127.0.0.1/
localhost

2. Upiti


Pogledajmo upit s parametrima. Šaljemo 100 zahtjeva u grupama od 30 odjednom na google.com i spremamo podatke dobivene u csv datoteku, kôd je sljedeći:
 ab -g data.csv -n 100 -c 30 google.com/

Analiziramo rezultat

 Poslužiteljski softver: GFE / 2.0 // Operativno mjesto Google web poslužitelj temeljen na Linux poslužitelju Naziv hosta: google.com Port poslužitelja: 80 Put dokumenta: / Duljina dokumenta: 262 bajta Razina istodobnosti: 30 Vrijeme potrebno za testove: 1.370 sekundi Potpuni zahtjevi: 100 Neuspjeli zahtjevi: 0 Odgovori koji nisu 2xx: 100 Ukupno preneseno: 53100 bajtova HTML prenio: 26200 bajtova Zahtjeva u sekundi: 73,01 [# / sek] (prosjek) // prosjek po zahtjevu Vrijeme po zahtjevu: 410,899 [ms] (prosjek) / / prosjek po zahtjevu Vrijeme po zahtjevu: 13,697 [ms] (srednja vrijednost, za sve istodobne zahtjeve) // prosjek po ukupnoj brzini prijenosa: 37,86 [Kbytes / sec] primljeno Connection Times (ms) // Vrijeme povezivanja, procesa i čekanja min prosjek [+/- sd] medijan max Povezivanje: 42 81 53,0 73 446 Obrada: 48 190 265,7 88 1286 Čekanje: 46 114 148,2 86 1246 Ukupno: 114 270 274,7 150 1369 Postotak zahtjeva posluženih u određenom vremenu (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (najduži zahtjev)

Vidimo da je odgovorio na 73 zahtjeva u sekundi s prosječnim vremenom po zahtjevu 410 899 milisekundi i brzinom prijenosa od 37,86 Kbytes / sec. Također vidimo kako se povezivanje, proces i vrijeme čekanja razlikuju.

CSV datoteka s podacima imat će sljedeću strukturu.

CSV struktura

 (vrijeme početka) Uto Mar 24 11:53:03 2015 - (sekunde) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (čekanje) 66 (vrijeme početka) Tue Mar 24 11:53:03 2015 - (sekunde) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (wait) 72 (starttime) Tue Mar 24 11:53:03 2015 - (seconds) 1427208783 - (ctime) 64 - (dtime) 56 - (ttime) 120 - (čekaj) 56

Zatim ćemo s terminala s uređivačem teksta stvoriti tekstualnu datoteku za procjenu više URL -ova iste domene. Alat ApacheBench podržava do 20 tisuća URL -ova poput sljedećih.

Datoteka će imati sljedeću strukturu:

 http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/
Testiramo jedan po jedan zahtjev:
 ab -g data.csv -n 1000 urls.txt
U ovom slučaju, ApacheBench prikupiti adrese urls.txt i slati zahtjeve poslužitelju. Naziv domene URL -ova mora biti isti za sve URL -ove.

Slučaj u kojem 10 istovremenih korisnika posjećuju 10 web stranica
Radi se o 100 stranica koje učitava 10 različitih istovremenih i ponavljajućih korisnika, svaki korisnik izrađuje 10 stranica koje se učitavaju ili se prikazuju uzastopno u svakom zahtjevu.

Testiramo:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
To predstavlja maksimalno opterećenje web stranice koja primi oko 100.000 posjeta mjesečno, a koju poslužitelj mora podržati i odgovoriti na nju.

Slučaj u kojem 50 istovremenih korisnika posjećuje istu web stranicu 20 putaRadi se o poslužitelju koji odgovara na 1000 stranica, odnosno 50 korisnika na 20 zahtjeva istovremeno, svaki korisnik postavlja 20 upita stranicama u nizu:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
To se može koristiti za testiranje bloga ili sustava u kojem korisnici ili posjetitelji puno komentiraju slanjem mnogo zahtjeva poput sustava za chat ili komentara poput facebooka.

Ova vrsta testa može biti ekvivalentna prometu vrlo aktivne web stranice ili bloga.

Brzi PHP i MySQL testMi stvaramo bilo koju mysql bazu podataka ili ako je imamo za testiranje koristimo je, tada stvaramo php skriptu koja se naziva absql.php

 AB Test Php i MySQL 
Šaljemo 10.000 zahtjeva u skriptu, a time i u MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analizirajte rezultate svakog testa pomoću ApacheBench. Najvažniji podaci su oni koji nam pružaju informacije o zahtjevima i odgovorima poslužitelja:

Analizirajte rezultate ApacheBencha1. Koliko zahtjeva u sekundi poslužitelj može poslužiti gledanjem? Ostali pokazatelji nisu jako korisni jer u ovom kontekstu ne predstavljaju nešto stvarno.

2. Postoje li pogreške na web stranici ili konfiguraciji Apachea? Kad poslužitelju treba vremena da odgovori ili se sruši, moramo analizirati postoje li problemi s memorijom ili velika potrošnja resursa.

3. Na kojoj će se razini istodobnosti Apache poslužitelj početi usporavati ili rušiti i koliko će trajati vrijeme čekanja? Ako se to događa na niskoj razini istodobnosti, nešto nije u redu, trebali bismo znati što je to i što je potrebno za njegovo funkcioniranje, možda više resursa poslužitelja.

3. Čimbenici koje treba uzeti u obzir za poboljšanje performansi u Apacheu


Apache performanse1. Mod_cache modul s Apachea na stranicu s predmemorijom zahtjeva / rezultata. To će proizvesti 5-10x poboljšanje performansi u odnosu na sve ostale metode zajedno.

2. php_memcache upravlja predmemorijom podataka za PHP skripte i upite. To može proizvesti 50% -100% povećanje performansi na web stranicama.

3. Dodaci za predmemoriju za Joomla, WordPress, PrestaShop i neke okvire ili CMS.

4. Mod_expires modul Apache za korištenje predmemorije posjetitelja i zadržavanje stranica određeno vrijeme, umjesto da ponovno upućuje zahtjev na te stranice i mora se ponovno učitavati, funkcionira ako web ne mijenja svoj sadržaj svake minute.

Drugi aspekt koji uvelike utječe na performanse Apachea je PHP i MySQL, poboljšavajući performanse MySQL -a optimiziranjem konfiguracije datoteke moj.ini od xampp, wampp ili lampp te optimizirati upite ili zahtjeve na webu koji koristi php i generira sadržaj iz MySQL -a, pokušavajući optimizirati korištenje MySQL dnevnika sporih upita da vidi u čemu je problem i poboljšati performanse.

Ako želite više informacija o načinu uporabe AppacheBench.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave