Stebėkite „Apache“ serverio našumą

Kai norite stebėti a apache serveris, mes turime žinoti kai kuriuos aspektus:

  • Kiek prašymų jis gali priimti
  • Greitis, kuriuo jis reaguoja į užklausas
  • Koks yra laukimo laikas
  • Kokias programas ar paslaugas galima patobulinti ar optimizuoti
Norėdami įvertinti serverio našumą, naudosime įrankį „Apache Benchmark“ arba „ApacheBench“.

„ApacheBench“„ApacheBench“ tai kompiuterinė programinė įranga, kuri veikia komandinėje eilutėje, kad būtų galima įvertinti, ypač žiniatinklio serverių ir http paslaugos našumą. Ši programinė įranga buvo sukurta „Apache“ HTTP serveriui išbandyti, tačiau, būdama http paslaugų testavimo priemonė, ją galima naudoti bet kuriam žiniatinklio serveriui, pvz. „Nginx“, „Lighttpd“.

Įrankis „ApacheBench“ jis yra „Linux“ saugyklose ir kaip „Apache“ serverio biblioteka, todėl yra nemokama, atviro kodo programinė įranga ir naudoja „Apache“ licenciją.

Tokį testą labai lengva atlikti greitai, naudojant komandą „Apache Bench ab“.

Šis testas greitai parodys mums, ar iš karto kyla problemų dėl „Apache“ diegimo, ir todėl jis blogai reaguoja.

Tai taip pat padeda mums atsakyti į šį klausimą Kiek galiu naudoti ar priversti serverį ir jo žiniatinklio išteklius naudojant „Apache“, PHP ir „MySQL“? (su vienu metu prisijungus ir įkėlimo užklausos puslapiu), taip pat tai, ką turime optimizuoti „Apache“ ir PHP konfigūracijoje, kad gautume geresnis našumas ir pašalinti atsakymo į lankytojų prašymus problemas.

1. „ApacheBench“ diegimas „Linux“ serveriuose


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

Redhat / Centos

 yum įdiegti httpd-tools

Mes ketiname atlikti bandymus su skirtingais domenais ir IP. Pradėsime atidarę terminalo langą ir atliksime šiuos bandymus:

Vietinis serveris arba localhost taip pat ip 127.0.0.1

 ab 127.0.0.1/
vietinis šeimininkas

2. Užklausos


Pažvelkime į užklausą su parametrais. Vienu metu siunčiame 100 užklausų grupėmis po 30 į google.com ir išsaugome gautus duomenis csv faile, kodas yra toks:
 ab -g data.csv -n 100 -c 30 google.com/

Mes analizuojame rezultatą

 Serverio programinė įranga: GFE / 2.0 // Operacinė svetainė „Google“ žiniatinklio serveris, pagrįstas „Linux“ serveriu Prieglobos serverio pavadinimas: google.com Serverio prievadas: 80 Dokumento kelias: / Dokumento ilgis: 262 baitai Lygiagretumo lygis: 30 Bandymų laikas: 1370 sekundžių Užbaigti prašymai: 100 Nepavyko užklausų: 0 Ne 2xx atsakymų: 100 Iš viso perduota: 53100 baitų HTML perduota: 26200 baitų Užklausų per sekundę: 73,01 [# / sek.] (Vidurkis) // vidutinis užklausos laikas Užklausos laikas: 410,899 [ms] (vidurkis) / / vidutinis užklausos laikas Vienos užklausos laikas: 13,697 [ms] (vidurkis, iš visų lygiagrečių užklausų) // vidutinis bendras perdavimo greitis: 37,86 [Kbaitai / sek.] gautas Ryšio laikas (ms) // Ryšio, proceso ir laukimo laikas min. vidurkis [+/- sd] mediana max Prisijungti: 42 81 53,0 73 446 Apdorojama: 48 190 265,7 88 1286 Laukiama: 46 114 148,2 86 1246 Iš viso: 114 270 274,7 150 1369 Per tam tikrą laiką pateiktų užklausų procentinė dalis (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (ilgiausia užklausa)

Matome, kad ji atsakė į 73 užklausas per sekundę, vidutiniškai užklausos laikas buvo 410 899 milisekundės, o perdavimo sparta - 37,86 Kb / s, taip pat matome, kaip skiriasi ryšys, procesas ir laukimo laikas.

CSV duomenų failo struktūra bus tokia.

CSV struktūra

 (pradžios laikas) Antradienis kovo 24 d. 11:53:03 - (sekundės) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (laukti) 66 (starttime) 2015 m. kovo 24 d. 11:53:03 - (sekundės) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (laukti) 72 (starttime) Antradienis kovo 24 d. 11:53:03 2015 - (sekundės) 1427208783 - (ctime) 64 - (dtime) 56 - (laikas) 120 - (palaukite) 56

Toliau iš terminalo su teksto redaktoriumi sukursime teksto failą, kad įvertintume kelis to paties domeno URL. Įrankis „ApacheBench“ palaiko iki 20 tūkstančių URL, kaip nurodyta toliau.

Failas turės tokią struktūrą:

 http://example.com/index.html/ http://example.com/news.html/ http://pubdomain.example.com/
Mes tikriname vieną užklausą vienu metu:
 ab -g data.csv -n 1000 URL.txt
Tokiu atveju, „ApacheBench“ rinkti adresus urls.txt ir siųsti užklausas į serverį. Visų URL adresų domeno pavadinimas turi būti vienodas.

Atvejis, kai 10 vartotojų vienu metu apsilanko svetainėje
Tai yra apie 100 puslapių, kuriuos įkelia 10 skirtingų vienu metu ir pasikartojančių vartotojų, kiekvienas vartotojas sukuria 10 puslapių, kurie įkeliami arba rodomi nuosekliai kiekvienoje užklausoje.

Mes išbandome:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
Tai reiškia maksimalią svetainės apkrovą, kuri per mėnesį sulaukia apie 100 000 apsilankymų ir kurią turi palaikyti serveris.

Atvejis, kai 50 vartotojų vienu metu lanko tą patį tinklalapį 20 kartųKalbama apie tai, kad serveris atsako į 1000 puslapių, tai yra, 50 vartotojų 20 užklausų vienu metu, kiekvienas vartotojas pateikia 20 užklausų puslapiams iš eilės:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
Tai gali būti naudojama norint išbandyti tinklaraštį ar sistemą, kurioje vartotojai ar lankytojai daug komentuoja siunčiant daug užklausų, pvz., Pokalbių ar komentarų sistemos, pvz., „Facebook“.

Šio tipo bandymai gali prilygti labai aktyvios svetainės ar tinklaraščio srautui.

Greitas PHP ir MySQL testasMes sukuriame bet kurią „mysql“ duomenų bazę arba, jei turime ją išbandyti, mes ją naudojame, tada sukuriame „php“ scenarijų, vadinamą absql.php

 AB testas Php ir MySQL 
Mes siunčiame 10 000 užklausų į scenarijų, taigi ir į „MySQL“.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analizuokite kiekvieno bandymo rezultatus naudodami „ApacheBench“. Svarbiausi duomenys yra tie, kurie suteikia mums informacijos apie serverio užklausas ir atsakymus:

Analizuokite „ApacheBench“ rezultatus1. Kiek užklausų per sekundę gali aptarnauti serveris? Kiti rodikliai nėra labai naudingi, nes jie neatspindi kažko tikro šiame kontekste.

2. Ar „Apache“ tinklalapyje ar konfigūracijoje yra klaidų? Kai serveris užtrunka, kol reaguoja arba sugenda, turime išanalizuoti, ar yra atminties problemų, ar daug išteklių.

3. Kokiu lygiagrečiu lygiu „Apache“ serveris pradės sulėtėti arba suges ir kiek laiko teks laukti? Jei tai vyksta esant žemam lygiagrečių lygiui, kažkas negerai, turėtume žinoti, kas tai yra ir ko reikia, kad jis veiktų, galbūt daugiau serverio išteklių.

3. Veiksniai, į kuriuos reikia atsižvelgti norint pagerinti „Apache“ našumą


„Apache“ pasirodymas1. Mod_cache modulis iš „Apache“ į užklausos / rezultatų talpyklos puslapį. Tai pagerins 5-10 kartų efektyvumą, palyginti su visais kitais metodais kartu.

2. php_memcache tvarko PHP scenarijų ir užklausų duomenų talpyklą. Dėl to tinklalapių našumas gali padidėti 50–100%.

3. Talpyklos papildiniai skirta „Joomla“, „WordPress“, „PrestaShop“ ir kai kurioms sistemoms ar TVS.

4. Mod_expires modulis „Apache“ naudoja lankytojo talpyklą ir tam tikrą laiką saugo puslapius, užuot dar kartą pateikusi užklausą tiems puslapiams ir turinti iš naujo įkelti, ji veikia, jei žiniatinklis nekeičia savo turinio kiekvieną minutę.

Kitas aspektas, labai veikiantis „Apache“ našumą, yra PHP ir MySQL, pagerinti „MySQL“ našumą optimizuojant failo konfigūraciją my.ini iš „xampp“, „wampp“ arba „lampp“ ir optimizuokite užklausas ar užklausas žiniatinklyje, kuris naudoja „php“ ir generuoja turinį iš „MySQL“, bandydamas optimizuoti lėto „MySQL“ užklausų žurnalo naudojimą, kad pamatytų, kokia yra problema, ir pagerintų našumą.

Jei norite gauti daugiau informacijos apie naudojimą „AppacheBench“.

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave