När du vill övervaka a apache -server, vi måste känna till några aspekter:
- Hur många förfrågningar kan den tål
- Hastigheten som den svarar på förfrågningar
- Vad är väntetiden
- Vilka applikationer eller tjänster kan förbättras eller optimeras
ApacheBenchApacheBench det är datorprogramvara som körs på kommandoraden för att mäta prestanda, särskilt för webbservrar och http -tjänst. Denna programvara utvecklades för att testa Apache HTTP -servern, men som ett verktyg för att testa http -tjänster är det möjligt att använda den för att testa alla webbserver som t.ex. Nginx, Lighttpd.
Verktyget ApacheBench det finns i Linux -lagren och som ett bibliotek på Apache -servern och är därför gratis, öppen källkodsprogramvara och använder Apache -licensen.
Denna typ av test är mycket lätt att göra på ett snabbt sätt med hjälp av kommandot Apache Bench ab.
Detta test visar oss snabbt om det finns ett omedelbart problem med Apache -installationen och därför svarar det dåligt.
Det hjälper oss också med följande fråga Hur långt kan jag använda eller tvinga servern och dess webbresurser med Apache, PHP och MySQL? (med samtidiga anslutningar och laddningsförfrågningssida), plus vad vi behöver optimera i Apache- och PHP -konfiguration för att få en bättre prestanda och eliminera problemen med att svara på besöksförfrågningar.
1. Installera ApacheBench på Linux -servrar
Ubuntu / Debian
sudo apt-get install -y apache2 sudo apt-get install apache2-utils
Redhat / Centos
yum installera httpd-tools
Vi ska genomföra tester med olika domäner och ip. Vi börjar med att öppna ett terminalfönster och utföra följande tester:
Lokal server eller localhost också ip 127.0.0.1
ab 127.0.0.1/lokal värd
2. Frågor
Låt oss titta på en fråga med parametrar. Vi skickar 100 förfrågningar i grupper om 30 åt gången till google.com och sparar data som erhållits i en csv -fil, koden är följande:
ab -g data.csv -n 100 -c 30 google.com/
Vi analyserar resultatet
Serverprogramvara: GFE / 2.0 // Operationssajt Googles webbserver baserad på Linux Server Värdnamn: google.com Serverport: 80 Dokumentväg: / Dokumentlängd: 262 byte Samtidsnivå: 30 Tid som tagits för tester: 1370 sekunder Kompletta förfrågningar: 100 Misslyckade förfrågningar: 0 Non-2xx-svar: 100 Totalt överförda: 53100 byte HTML överförda: 26200 bytes Förfrågningar per sekund: 73,01 [# / sek] (medelvärde) // genomsnitt per begäran Tid per begäran: 410,899 [ms] (medelvärde) / / genomsnitt per förfrågan Tid per förfrågan: 13.697 [ms] (medelvärde, för alla samtidiga begäranden) // genomsnitt per total överföringshastighet: 37,86 [Kbyte / sek] mottagen Anslutningstider (ms) // Anslutning, process och väntetider min medelvärde [+/- sd] median max Anslutning: 42 81 53,0 73 446 Bearbetning: 48190265,7 88 1286 Väntar: 46 114 148,2 86 1246 Totalt: 114 270 274,7 150 1369 Procentandel av förfrågningar som skickats inom en viss tid (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369100% 1369 (längsta begäran)
Vi ser att den svarade på 73 förfrågningar per sekund med en genomsnittlig tid per begäran 410 899 millisekunder och en överföringshastighet på 37,86 Kbytes / sek, vi ser också hur anslutningen, processen och väntetiden varierar.
CSV -datafilen kommer att ha följande struktur.
CSV -struktur
(starttid) tis mar 24 11:53:03 2015 - (sekunder) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (vänta) 66 (starttid) tis 24 mar 11:53:03 2015 - (sekunder) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (vänta) 72 (starttid) tis mar 24 11:53:03 2015 - (sekunder) 1427208783 - (ctime) 64 - (dtime) 56 - (ttime) 120 - (vänta) 56
Nästa från terminalen med en textredigerare skapar vi en textfil för att utvärdera flera webbadresser för samma domän. Verktyget ApacheBench stöder upp till 20 tusen webbadresser som följande.
Filen kommer att ha följande struktur:
http://example.com/index.html/ http://example.com/news.html/ http://subdomän.example.com/Vi testar en förfrågan i taget:
ab -g data.csv -n 1000 urls.txtI detta fall, ApacheBench samla in adresserna till urls.txt och skicka förfrågningar till servern. Webbadressernas domännamn måste vara samma för alla webbadresser.
Fall där 10 samtidiga användare var och en gör 10 besök på webbplatsen
Det handlar om 100 sidor som laddas av 10 olika samtidiga och återkommande användare, varje användare gör 10 sidor som laddas eller visas i följd i varje begäran.
Vi testar:
ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/Detta representerar en maximal belastning på en webbplats som tar emot cirka 100 000 besök per månad som måste stödjas och besvaras av servern.
Fall där 50 samtidiga användare besöker samma webbsida 20 gångerDet handlar om att servern svarar på 1000 sidor, det vill säga 50 användare för 20 förfrågningar samtidigt, varje användare gör 20 frågor till sidor i följd:
ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/Detta kan användas för att testa en blogg eller ett system där användare eller besökare kommenterar mycket genom att skicka många förfrågningar som en chatt eller ett kommentarsystem som facebook.
Denna typ av test kan motsvara trafiken på en mycket aktiv webbplats eller blogg.
Snabbt PHP och MySQL testVi skapar en mysql -databas eller om vi har en att testa använder vi den, då skapar vi php -skriptet som heter absql.php
AB Test Php och MySQLVi skickar 10 000 förfrågningar till skriptet och därför till MySQL.
ab -n 1000 -c 5 http://190.165.210.108/absql.php
Analysera resultaten av varje test med ApacheBench. De viktigaste uppgif.webpterna är de som ger oss information om förfrågningar och svar från servern:
Analysera ApacheBench -resultat1. Hur många förfrågningar per sekund kan servern betjäna genom att titta på? De andra indikatorerna är inte särskilt användbara eftersom de inte är representativa för något verkligt i detta sammanhang.
2. Finns det några fel på Apache -webbsidan eller konfigurationen? När servern tar tid att svara eller kraschar måste vi analysera om minnesproblem eller hög resursförbrukning.
3. På vilken nivå av samtidighet kommer Apache -servern att börja sakta ner eller krascha och hur lång kommer väntetiden att vara? Om detta händer på en låg nivå av samtidighet, är något fel, vi borde veta vad det är och vad som behövs för att det ska fungera, kanske fler serverresurser.
3. Faktorer att tänka på för att förbättra prestanda i Apache
Apache -prestanda1. Mod_cache -modul från Apache till cache -sidan för begäran / resultat. Detta kommer att ge en 5-10x prestandaförbättring jämfört med alla andra metoder tillsammans.
2. php_memcache hanterar datacachen för PHP -skript och frågor. Detta kan ge en prestandaökning på 50% -100% på webbsidor.
3. Cache -plugins för Joomla, WordPress, PrestaShop och några Frameworks eller CMS.
4. Mod_expires modul Apache för att använda besökarens cacheminne och behålla sidor under en viss tid, istället för att göra en förfrågan till dessa sidor igen och behöva ladda om, fungerar det om webben inte ändrar innehållet varje minut.
En annan aspekt som starkt påverkar Apache -prestanda är PHP och MySQL, förbättrar MySQL -prestanda genom att optimera filkonfigurationen min.ini av xampp, wampp eller lampp och optimera frågor eller förfrågningar till webben som använder php och genererar innehåll från MySQL, försöker optimera användningen av MySQL slow query log för att se vad problemet är och förbättra prestanda.
Om du vill ha mer information om hur du använder AppacheBench.
Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng