Bewaak de prestaties van een Apache-server

Wanneer u een wilt controleren apache-server, moeten we enkele aspecten kennen:

  • Hoeveel verzoeken kan het verdragen?
  • Snelheid waarmee het reageert op verzoeken
  • Wat is de wachttijd?
  • Welke applicaties of services kunnen worden verbeterd of geoptimaliseerd
Om de prestaties van een server te meten, gebruiken we een tool genaamd Apache Benchmark of ApacheBench.

ApacheBenchApacheBench het is computersoftware die op de opdrachtregel wordt uitgevoerd om de prestaties te meten, met name van webservers en http-service. Deze software is ontwikkeld om de Apache HTTP-server te testen, maar omdat het een hulpmiddel is om http-services te testen, is het mogelijk om het te gebruiken om elke webserver te testen, zoals Nginx, Lighttpd.

Het gereedschap ApacheBench het bevindt zich in de Linux-repositories en als een bibliotheek op de Apache-server en is daarom gratis, open source-software en maakt gebruik van de Apache-licentie.

Dit soort test is heel eenvoudig op een snelle manier uit te voeren met behulp van het Apache Bench ab-commando.

Deze test zal ons snel laten zien of er een direct probleem is met de Apache-installatie en daarom reageert deze slecht.

Het helpt ons ook bij de volgende vraag: Hoe ver kan ik de server en zijn webbronnen gebruiken of forceren met Apache, PHP en MySQL? (met gelijktijdige verbindingen en laadverzoekpagina), plus wat we moeten optimaliseren in Apache- en PHP-configuratie om een betere prestatie en de problemen van het reageren op verzoeken van bezoekers te elimineren.

1. ApacheBench installeren op Linux-servers


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

Redhat / Centos

 yum installeer httpd-tools

We gaan testen doen met verschillende domeinen en ip. We beginnen met het openen van een terminalvenster en voeren de volgende tests uit:

Lokale server of localhost ook ip 127.0.0.1

 vanaf 127.0.0.1/
localhost

2. Vragen


Laten we eens kijken naar een query met parameters. We sturen 100 verzoeken in groepen van 30 tegelijk naar google.com en slaan de verkregen gegevens op in een csv-bestand, de code is als volgt:
 ab -g data.csv -n 100 -c 30 google.com/

We analyseren het resultaat

 Serversoftware: GFE / 2.0 // Besturingssite Google-webserver gebaseerd op Linux Server Hostnaam: google.com Serverpoort: 80 Documentpad: / Documentlengte: 262 bytes Gelijktijdigheidsniveau: 30 Tijd nodig voor tests: 1.370 seconden Voltooide verzoeken: 100 Mislukte verzoeken: 0 Non-2xx reacties: 100 Totaal overgedragen: 53100 bytes HTML overgedragen: 26200 bytes Verzoeken per seconde: 73,01 [# / sec] (gemiddeld) // gemiddelde per aanvraag Tijd per aanvraag: 410.899 [ms] (gemiddeld) / / gemiddeld per verzoek Tijd per verzoek: 13.697 [ms] (gemiddeld, over alle gelijktijdige verzoeken) // gemiddeld per totaal Overdrachtssnelheid: 37,86 [Kbytes / sec] ontvangen Verbindingstijden (ms) // Verbindings-, proces- en wachttijden min gemiddeld [+/- sd] mediaan max Connect: 42 81 53,0 73 446 Verwerking: 48 190 265,7 88 1286 Wachten: 46 114 148,2 86 1246 Totaal: 114 270 274,7 150 1369 Percentage van de verzoeken dat binnen een bepaalde tijd (ms) is afgehandeld 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (langste verzoek)

We zien dat het reageerde op 73 verzoeken per seconde met een gemiddelde tijd per verzoek 410.899 milliseconden en een overdrachtssnelheid van 37,86 Kbytes/sec, ook zien we hoe de verbinding, het proces en de wachttijd varieert.

Het CSV-gegevensbestand heeft de volgende structuur.

CSV-structuur

 (starttijd) di 24 mrt 11:53:03 2015 - (seconden) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (wacht) 66 (starttijd) di 24 mrt 11:53:03 2015 - (seconden) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (wacht) 72 (starttijd) di 24 maart 11:53:03 2015 - (seconden) 1427208783 - (ctime) 64 - (dtime) 56 - (ttijd) 120 - (wacht) 56

Vervolgens zullen we vanaf de terminal met een teksteditor een tekstbestand maken om meerdere url's van hetzelfde domein te evalueren. Het gereedschap ApacheBench ondersteunt tot 20 duizend URL's zoals de volgende.

Het bestand zal de volgende structuur hebben:

 http://example.com/index.html/ http://example.com/news.html/ http://subdomein.example.com/
We testen één verzoek tegelijk:
 ab -g data.csv -n 1000 urls.txt
In dit geval, ApacheBench verzamel de adressen van urls.txt en stuur verzoeken naar de server. De domeinnaam van de URL's moet voor alle URL's hetzelfde zijn.

Geval waarbij 10 gelijktijdige gebruikers elk 10 bezoeken aan de website brengen
Het zijn ongeveer 100 pagina's die worden geladen door 10 verschillende gelijktijdige en terugkerende gebruikers, elke gebruiker maakt 10 pagina's die worden geladen of opeenvolgend worden weergegeven in elk verzoek.

Wij testen:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
Dit vertegenwoordigt een maximale belasting van een website die ongeveer 100.000 bezoeken per maand ontvangt en die door de server moet worden ondersteund en beantwoord.

Geval waarbij 50 gelijktijdige gebruikers dezelfde webpagina 20 keer bezoekenHet gaat over de server die reageert op 1000 pagina's, dat wil zeggen, 50 gebruikers voor 20 verzoeken tegelijkertijd, elke gebruiker doet 20 achtereenvolgens naar pagina's:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
Dit kan worden gebruikt om een ​​blog of een systeem te testen waar gebruikers of bezoekers veel reageren door veel verzoeken te verzenden, zoals een chat- of reactiesysteem zoals Facebook.

Dit type test kan gelijk zijn aan het verkeer van een zeer actieve website of blog.

Snelle PHP- en MySQL-testWe maken elke mysql-database of als we er een hebben om te testen, gebruiken we die, dan maken we het php-script met de naam absql.php

 AB Test Php en MySQL 
We sturen 10.000 verzoeken naar het script en dus naar MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analyseer de resultaten van elke test met: ApacheBench. De belangrijkste gegevens zijn de gegevens die ons informatie geven over verzoeken en reacties van de server:

ApacheBench-resultaten analyseren1. Hoeveel verzoeken per seconde kan de server bedienen door te bekijken? De andere indicatoren zijn niet erg nuttig omdat ze in deze context niet representatief zijn voor iets reëels.

2. Zijn er fouten op de Apache-webpagina of -configuratie? Wanneer de server tijd nodig heeft om te reageren of crasht, moeten we analyseren of er geheugenproblemen zijn of dat er veel bronnen worden gebruikt.

3. Op welk niveau van gelijktijdigheid begint de Apache-server te vertragen of crasht en hoe lang zal de wachttijd zijn? Als dit gebeurt op een laag niveau van gelijktijdigheid, is er iets mis, we moeten weten wat het is en wat er nodig is om het te laten werken, misschien meer serverbronnen.

3. Factoren waarmee u rekening moet houden om de prestaties in Apache te verbeteren


Apache-prestaties1. Mod_cache-module van Apache naar de cachepagina voor aanvragen / resultaten. Dit levert een prestatieverbetering van 5-10x op ten opzichte van alle andere gecombineerde methoden.

2. php_memcache beheert de gegevenscache voor PHP-scripts en -query's. Dit kan een prestatieverbetering van 50% -100% opleveren op webpagina's.

3. Cache-plug-ins voor Joomla, WordPress, PrestaShop en sommige Frameworks of CMS.

4. Mod_expires-module Apache om de cache van de bezoeker te gebruiken en pagina's een bepaalde tijd bij te houden, in plaats van die pagina's opnieuw op te vragen en opnieuw te moeten laden, werkt het als het web zijn inhoud niet elke minuut verandert.

Een ander aspect dat de prestaties van Apache enorm beïnvloedt, is: PHP en MySQL, het verbeteren van de MySQL-prestaties door de bestandsconfiguratie te optimaliseren mijn.ini van xampp, wampp of lampp en optimaliseert de zoekopdrachten of verzoeken naar het web dat php gebruikt en inhoud van MySQL genereert, waarbij wordt geprobeerd het gebruik van het trage querylogboek van MySQL te optimaliseren om te zien wat het probleem is en de prestaties te verbeteren.

Als u meer informatie wilt over het gebruik AppacheBench.

Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave