Overvåg ydeevnen på en Apache -server

Når du vil overvåge a apache server, vi skal kende nogle aspekter:

  • Hvor mange anmodninger kan den bære
  • Hastighed, hvormed den reagerer på anmodninger
  • Hvad er ventetiden
  • Hvilke applikationer eller tjenester kan forbedres eller optimeres
For at måle ydelsen på en server vil vi bruge et værktøj kaldet Apache Benchmark eller ApacheBench.

ApacheBenchApacheBench det er computersoftware, der kører på kommandolinjen for at måle ydeevnen, især for webservere og http -service. Denne software blev udviklet til at teste Apache HTTP -serveren, men som et værktøj til at teste http -tjenester er det muligt at bruge den til at teste enhver webserver som f.eks. Nginx, Lighttpd.

Værktøjet ApacheBench det er i Linux -arkiverne og som et bibliotek på Apache -serveren og er derfor gratis open source -software og bruger Apache -licensen.

Denne form for test er meget let at udføre hurtigt ved at bruge kommandoen Apache Bench ab.

Denne test viser os hurtigt, hvis der er et øjeblikkeligt problem med Apache -installationen, og derfor reagerer den dårligt.

Det hjælper os også med følgende spørgsmål Hvor langt kan jeg bruge eller tvinge serveren og dens webressourcer med Apache, PHP og MySQL? (med samtidige forbindelser og side med anmodning om indlæsning), plus hvad vi skal optimere i Apache og PHP -konfiguration for at få en bedre ydeevne og fjerne problemerne med at besvare anmodninger fra besøgende.

1. Installation af ApacheBench på Linux -servere


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

Redhat / Centos

 yum installer httpd-værktøjer

Vi skal udføre tests med forskellige domæner og ip. Vi starter med at åbne et terminalvindue og udføre følgende tests:

Lokal server eller localhost også ip 127.0.0.1

 ab 127.0.0.1/
lokal vært

2. Forespørgsler


Lad os se på en forespørgsel med parametre. Vi sender 100 anmodninger i grupper på 30 ad gangen til google.com og gemmer de data, der er indhentet i en csv -fil, koden er som følger:
 ab -g data.csv -n 100 -c 30 google.com/

Vi analyserer resultatet

 Serversoftware: GFE / 2.0 // Operationssted Google webserver baseret på Linux Server Værtsnavn: google.com Serverport: 80 Dokumentsti: / Dokumentlængde: 262 bytes Samtidsniveau: 30 Tid taget til test: 1.370 sekunder Komplette anmodninger: 100 Mislykkede anmodninger: 0 Ikke-2xx svar: 100 Overført i alt: 53100 bytes HTML overført: 26200 bytes Anmodninger pr. Sekund: 73,01 [# / sek] (middelværdi) // gennemsnit pr. Anmodning Tid pr. Anmodning: 410,899 [ms] (middelværdi) / / gennemsnit pr. anmodning Tid pr. anmodning: 13.697 [ms] (middelværdi på tværs af alle samtidige anmodninger) // gennemsnit pr. samlet overførselshastighed: 37,86 [Kbytes / sek] modtaget Forbindelsestider (ms) // Forbindelse, proces og ventetider min. gennemsnit [+/- sd] median max Connect: 42 81 53,0 73 446 Behandling: 48190265,7 88 1286 Venter: 46 114 148,2 86 1246 I alt: 114 270 274,7 150 1369 Procentdel af anmodninger, der er betjent inden for en bestemt tid (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369100% 1369 (længste anmodning)

Vi ser, at det reagerede på 73 anmodninger pr. Sekund med en gennemsnitlig tid pr. Anmodning 410,899 millisekunder og en overførselshastighed på 37,86 Kbytes / sek. Vi ser også, hvordan forbindelsen, processen og ventetiden varierer.

CSV -datafilen har følgende struktur.

CSV -struktur

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

Næste fra terminalen med en tekstredigerer opretter vi en tekstfil til evaluering af flere webadresser for det samme domæne. Værktøjet ApacheBench understøtter op til 20 tusinde URL'er som følgende.

Filen har følgende struktur:

 http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/
Vi tester en anmodning ad gangen:
 ab -g data.csv -n 1000 urls.txt
I dette tilfælde, ApacheBench indsamle adresserne til urls.txt og sende anmodninger til serveren. Domænenavnet på webadresserne skal være det samme for alle webadresser.

Tilfælde, hvor 10 samtidige brugere hver især foretager 10 besøg på webstedet
Det er omkring 100 sider, der indlæses af 10 forskellige samtidige og tilbagevendende brugere, hver bruger laver 10 sider, der indlæses eller vises i rækkefølge i hver anmodning.

Vi tester:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
Dette repræsenterer en maksimal belastning på et websted, der modtager omkring 100.000 besøg pr. Måned, som serveren skal understøtte og svare på.

Tilfælde, hvor 50 samtidige brugere besøger den samme webside 20 gangeDet handler om, at serveren reagerer på 1000 sider, det vil sige 50 brugere til 20 anmodninger på samme tid, hver bruger foretager 20 forespørgsler til sider i rækkefølge:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
Dette kan bruges til at teste en blog eller et system, hvor brugere eller besøgende kommenterer meget ved at sende mange anmodninger som en chat eller et kommentarsystem som facebook.

Denne type test kan svare til trafikken på et meget aktivt websted eller en blog.

Hurtig PHP og MySQL testVi opretter enhver mysql -database, eller hvis vi har en til at teste, bruger vi den, så opretter vi php -scriptet kaldet absql.php

 AB Test Php og MySQL 
Vi sender 10.000 anmodninger til scriptet og derfor til MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analyser resultaterne af hver test med ApacheBench. De vigtigste data er dem, der giver os oplysninger om anmodninger og svar fra serveren:

Analyser ApacheBench -resultater1. Hvor mange anmodninger pr. Sekund kan serveren betjene ved visning? De andre indikatorer er ikke særlig nyttige, da de ikke er repræsentative for noget reelt i denne sammenhæng.

2. Er der nogen fejl på Apache -websiden eller konfigurationen? Når serveren tager tid at reagere eller går ned, skal vi analysere, om hukommelsesproblemer eller højt ressourceforbrug.

3. På hvilket niveau af samtidighed vil Apache -serveren begynde at bremse eller gå ned, og hvor lang vil ventetiden være? Hvis dette sker ved et lavt niveau af samtidighed, er der noget galt, vi bør vide, hvad det er, og hvad der er nødvendigt for at det kan fungere, måske flere serverressourcer.

3. Faktorer, der skal overvejes for at forbedre ydeevnen i Apache


Apache ydeevne1. Mod_cache modul fra Apache til siden for anmodning / resultater cache. Dette vil give en 5-10x forbedring af ydeevnen i forhold til alle andre metoder tilsammen.

2. php_memcache administrerer datacachen for PHP -scripts og forespørgsler. Dette kan give en forbedring af ydeevnen på 50% -100% på websider.

3. Cache -plugins til Joomla, WordPress, PrestaShop og nogle Frameworks eller CMS.

4. Mod_udløber modul Apache for at bruge den besøgendes cache og beholde sider i et bestemt tidspunkt, i stedet for at anmode om disse sider igen og skulle genindlæse, virker det, hvis internettet ikke ændrer sit indhold hvert minut.

Et andet aspekt, der i høj grad påvirker Apache -ydeevnen, er PHP og MySQL, forbedring af MySQL -ydeevne ved at optimere filkonfigurationen min.ini af xampp, wampp eller lampp og optimere forespørgsler eller anmodninger til internettet, der bruger php og genererer indhold fra MySQL, og forsøger at optimere brugen af ​​MySQL slow query log for at se, hvad problemet er og forbedre ydeevnen.

Hvis du vil have mere information om, hvordan du bruger AppacheBench.

Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave