Overvåk ytelsen til en Apache -server

Når du vil overvåke a apache -server, må vi kjenne noen aspekter:

  • Hvor mange forespørsler kan den bære
  • Hastigheten den reagerer på forespørsler
  • Hva er ventetiden
  • Hvilke applikasjoner eller tjenester som kan forbedres eller optimaliseres
For å måle ytelsen til en server vil vi bruke et verktøy som heter Apache Benchmark eller ApacheBench.

ApacheBenchApacheBench Det er dataprogramvare som kjører på kommandolinjen for å måle ytelsen, spesielt for webservere og http -tjenester. Denne programvaren ble utviklet for å teste Apache HTTP -serveren, men som et verktøy for å teste http -tjenester er det mulig å bruke den til å teste hvilken som helst webserver som f.eks. Nginx, Lighttpd.

Verktøyet ApacheBench den er i Linux -depotene og som et bibliotek på Apache -serveren, og er derfor gratis, åpen kildekode -programvare og bruker Apache -lisensen.

Denne typen test er veldig lett å gjøre på en rask måte ved å bruke kommandoen Apache Bench ab.

Denne testen vil raskt vise oss om det er et umiddelbart problem med Apache -installasjonen, og derfor reagerer den dårlig.

Det hjelper oss også med følgende spørsmål Hvor langt kan jeg bruke eller tvinge serveren og dens webressurser med Apache, PHP og MySQL? (med samtidige tilkoblinger og side med forespørsel om last), pluss det vi trenger for å optimalisere i Apache og PHP -konfigurasjon for å få en bedre ytelse og eliminere problemene med å svare på besøkende forespørsler.

1. Installere ApacheBench på Linux -servere


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

Redhat / Centos

 yum installer httpd-tools

Vi skal utføre tester med forskjellige domener og ip. Vi starter med å åpne et terminalvindu og utføre følgende tester:

Lokal server eller localhost også ip 127.0.0.1

 ab 127.0.0.1/
lokal vert

2. Forespørsler


La oss se på en forespørsel med parametere. Vi sender 100 forespørsler i grupper på 30 om gangen til google.com og lagrer dataene hentet i en csv -fil, koden er som følger:
 ab -g data.csv -n 100 -c 30 google.com/

Vi analyserer resultatet

 Serverprogramvare: GFE / 2.0 // Operasjonssted Google webserver basert på Linux Server Vertsnavn: google.com Serverport: 80 Dokumentbane: / Dokumentlengde: 262 byte Samtidig nivå: 30 Tid tatt for tester: 1370 sekunder Fullfør forespørsler: 100 Mislykkede forespørsler: 0 Ikke-2xx svar: 100 Totalt overført: 53100 byte HTML overført: 26200 byte Forespørsler per sekund: 73,01 [# / sek] (gjennomsnitt) // gjennomsnitt per forespørsel Tid per forespørsel: 410,899 [ms] (gjennomsnitt) / / gjennomsnitt per forespørsel Tid per forespørsel: 13.697 [ms] (gjennomsnitt, på tvers av alle samtidige forespørsler) // gjennomsnittlig per total overføringshastighet: 37,86 [Kbytes / sek] mottatt tilkoblingstid (ms) // Tilkobling, prosess og ventetid min gjennomsnitt [+/- sd] median maks Koble til: 42 81 53,0 73 446 Behandling: 48190 265,7 88 1286 Venter: 46 114 148,2 86 1246 Totalt: 114 270 274,7 150 1369 Prosentandel av forespørslene som er levert innen en viss tid (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369100% 1369 (lengste forespørsel)

Vi ser at den svarte på 73 forespørsler per sekund med en gjennomsnittlig tid per forespørsel 410 899 millisekunder og en overføringshastighet på 37,86 Kbytes / sek. Vi ser også hvordan tilkoblingen, prosessen og ventetiden varierer.

CSV -datafilen vil ha følgende struktur.

CSV -struktur

 (starttid) tirsdag 24. mars 11:53:03 2015 - (sekunder) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (vent) 66 (starttid) tirsdag 24. mars 11:53:03 2015 - (sekunder) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (ventetid) 72 (starttid) tirsdag 24. mars 11:53:03 2015 - (sekunder) 1427208783 - (ctime) 64 - (dtime) 56 - (ttime) 120 - (vent) 56

Neste fra terminalen med et tekstredigeringsprogram vil vi lage en tekstfil for å evaluere flere nettadresser for samme domene. Verktøyet ApacheBench støtter opptil 20 tusen nettadresser som følgende.

Filen vil ha følgende struktur:

 http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/
Vi tester en forespørsel om gangen:
 ab -g data.csv -n 1000 urls.txt
I dette tilfellet, ApacheBench samle adressene til urls.txt og sende forespørsler til serveren. Domenenavnet til nettadressene må være det samme for alle nettadressene.

Tilfelle der 10 samtidige brukere hver gjør 10 besøk på nettstedet
Det er omtrent 100 sider som er lastet inn av 10 forskjellige samtidige og gjentagende brukere, hver bruker lager 10 sider som lastes inn eller vises i rekkefølge i hver forespørsel.

Vi tester:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
Dette representerer en maksimal belastning på et nettsted som mottar rundt 100 000 besøk per måned som serveren må støtte og svare på.

Tilfelle der 50 samtidige brukere besøker den samme nettsiden 20 gangerDet handler om at serveren svarer på 1000 sider, det vil si 50 brukere for 20 forespørsler samtidig, hver bruker gjør 20 spørringer til sider i rekkefølge:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
Dette kan brukes til å teste en blogg eller et system der brukere eller besøkende kommenterer mye ved å sende mange forespørsler som en chat eller et kommentarsystem som facebook.

Denne typen tester kan svare til trafikken til et veldig aktivt nettsted eller en blogg.

Rask PHP og MySQL testVi oppretter en hvilken som helst mysql -database, eller hvis vi har en å teste, bruker vi den, så lager vi php -skriptet kalt absql.php

 AB Test Php og MySQL 
Vi sender 10 000 forespørsler til skriptet og derfor til MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analyser resultatene av hver test med ApacheBench. De viktigste dataene er de som gir oss informasjon om forespørsler og svar fra serveren:

Analyser ApacheBench -resultater1. Hvor mange forespørsler per sekund kan serveren betjene ved å se? De andre indikatorene er lite nyttige, da de ikke er representative for noe virkelig i denne sammenhengen.

2. Er det noen feil på Apache -nettsiden eller konfigurasjonen? Når serveren tar tid å svare eller krasjer, må vi analysere om minneproblemer eller høyt ressursforbruk.

3. På hvilket nivå av samtidighet vil Apache -serveren begynne å bremse eller krasje, og hvor lang vil ventetiden være? Hvis dette skjer på et lavt nivå av samtidighet, er det noe galt, vi bør vite hva det er og hva som trengs for at det skal fungere, kanskje flere serverressurser.

3. Faktorer du bør vurdere for å forbedre ytelsen i Apache


Apache -ytelse1. Mod_cache -modul fra Apache til forespørselen / resultatbuffer -siden. Dette vil gi en 5-10x ytelsesforbedring i forhold til alle andre metoder tilsammen.

2. php_memcache administrerer databufferen for PHP -skript og spørringer. Dette kan gi en ytelsesøkning på 50% -100% på nettsider.

3. Cache -plugins for Joomla, WordPress, PrestaShop og noen Frameworks eller CMS.

4. Mod_expires modul Apache for å bruke den besøkendes hurtigbuffer og beholde sider i en viss tid, i stedet for å sende en forespørsel til disse sidene igjen og måtte laste inn på nytt, fungerer det hvis nettet ikke endrer innholdet hvert minutt.

Et annet aspekt som i stor grad påvirker Apache -ytelsen er PHP og MySQL, forbedrer MySQL -ytelsen ved å optimalisere filkonfigurasjonen min.ini av xampp, wampp eller lampp og optimalisere søk eller forespørsler til nettet som bruker php og genererer innhold fra MySQL, og prøver å optimalisere bruken av MySQL slow query log for å se hva problemet er og forbedre ytelsen.

Hvis du vil ha mer informasjon om hvordan du bruker AppacheBench.

Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave