Monitorizați performanța unui server Apache

Când doriți să monitorizați un server apache, trebuie să cunoaștem câteva aspecte:

  • Câte cereri poate suporta
  • Viteza cu care răspunde la solicitări
  • Care este timpul de așteptare
  • Ce aplicații sau servicii pot fi îmbunătățite sau optimizate
Pentru a măsura performanța unui server vom folosi un instrument numit Apache Benchmark sau ApacheBench.

ApacheBenchApacheBench este un software de calculator care rulează pe linia de comandă pentru a măsura performanța în special a serverelor web și a serviciului http. Acest software a fost dezvoltat pentru a testa serverul HTTP Apache, dar fiind un instrument pentru testarea serviciilor http, este posibil să îl utilizați pentru a testa orice server web, cum ar fi Nginx, Lighttpd.

Unealta ApacheBench se află în depozitele Linux și ca bibliotecă pe serverul Apache și, prin urmare, este software gratuit, open source și folosește licența Apache.

Acest tip de test este foarte ușor de făcut într-un mod rapid folosind comanda Apache Bench ab.

Acest test ne va arăta rapid dacă există o problemă imediată cu instalarea Apache și, prin urmare, răspunde prost.

De asemenea, ne ajută cu următoarea întrebare Cât de departe pot folosi sau forța serverul și resursele sale web cu Apache, PHP și MySQL? (cu conexiuni simultane și pagină de solicitare de încărcare), plus ceea ce trebuie să optimizăm în configurația Apache și PHP pentru a obține un performanță mai bună și să elimine problemele de răspuns la solicitările vizitatorilor.

1. Instalarea ApacheBench pe serverele Linux


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

Redhat / Centos

 yum instalați instrumentele httpd

Vom efectua teste cu diferite domenii și ip. Vom începe prin deschiderea unei ferestre de terminal și vom efectua următoarele teste:

Server local sau localhost, de asemenea, ip 127.0.0.1

 ab 127.0.0.1/
gazdă locală

2. Întrebări


Să analizăm o interogare cu parametri. Trimitem 100 de cereri în grupuri de câte 30 pe google.com și salvăm datele obținute într-un fișier CSV, codul este după cum urmează:
 ab -g data.csv -n 100 -c 30 google.com/

Analizăm rezultatul

 Software de server: GFE / 2.0 // Site de operare Server web Google bazat pe Linux Server Nume gazdă: google.com Port server: 80 Calea documentului: / Lungimea documentului: 262 octeți Nivel concurențial: 30 Timpul necesar testelor: 1.370 secunde Cereri complete: 100 Solicitări nereușite: 0 Răspunsuri non-2xx: 100 Total transferate: 53100 octeți HTML transferați: 26200 octeți Cereri pe secundă: 73,01 [# / sec] (medie) // medie pe cerere Timp pe cerere: 410,899 [ms] (medie) / / medie pe cerere Timp pe cerere: 13.697 [ms] (medie, la toate cererile concurente) // medie pe rata totală de transfer: 37,86 [Kbyte / sec] primite Timpi de conexiune (ms) // Conexiune, proces și timpi de așteptare [+/- sd] mediană maximă Conectare: 42 81 53,0 73 446 Procesare: 48 190 265,7 88 1286 În așteptare: 46 114 148,2 86 1246 Total: 114 270 274,7 150 1369 Procentajul cererilor furnizate într-un anumit timp (ms) 50% 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (cea mai lungă cerere)

Vedem că a răspuns la 73 de solicitări pe secundă cu un timp mediu pe cerere 410.899 milisecunde și o rată de transfer de 37,86 Kbytes / sec, vedem, de asemenea, cum variază conexiunea, procesul și timpul de așteptare.

Fișierul de date CSV va avea următoarea structură.

Structura CSV

 (ora de începere) Mar 24 Mar 11:53:03 2015 - (secunde) 1427208783 - (ctime) 46 - (ora) 68 - (ora) 114 - (așteptați) 66 (ora de începere) Mar 24 Mar 11:53:03 2015 - (secunde) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (așteptați) 72 (starttime) Mar 24 Mar 11:53:03 2015 - (secunde) 1427208783 - (ctime) 64 - (dtime) 56 - (ora) 120 - (așteptați) 56

Apoi de la terminal cu un editor de text vom crea un fișier text pentru a evalua mai multe adrese URL din același domeniu. Unealta ApacheBench acceptă până la 20 de mii de adrese URL, precum următoarele.

Fișierul va avea următoarea structură:

 http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/
Testăm câte o cerere la rând:
 ab -g data.csv -n 1000 urls.txt
În acest caz, ApacheBench colectează adresele de urls.txt și trimiteți cereri către server. Numele de domeniu al adreselor URL trebuie să fie același pentru toate adresele URL.

Caz în care câte 10 utilizatori simultani fac câte 10 vizite pe site
Este vorba despre 100 de pagini care sunt încărcate de 10 utilizatori simultani și recurenți, fiecare utilizator realizează 10 pagini care se încarcă sau sunt afișate secvențial în fiecare solicitare.

Testăm:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
Aceasta reprezintă o încărcare maximă pe un site web care primește în jur de 100.000 de vizite pe lună, la care serverul trebuie să fie sprijinit și la care să răspundă.

Caz în care 50 de utilizatori simultani vizitează aceeași pagină web de 20 de oriEste vorba despre serverul care răspunde la 1000 de pagini, adică 50 de utilizatori pentru 20 de cereri în același timp, fiecare utilizator face 20 de interogări către pagini în ordine:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
Aceasta poate fi utilizată pentru a testa un blog sau un sistem în care utilizatorii sau vizitatorii comentează foarte mult, trimițând o mulțime de solicitări, cum ar fi un chat sau un sistem de comentarii precum Facebook.

Acest tip de test poate fi echivalent cu traficul unui site sau blog foarte activ.

Test rapid PHP și MySQLCreăm orice bază de date mysql sau dacă avem una de testat o folosim, atunci creăm scriptul php numit absql.php

 AB Test Php și MySQL 
Trimitem 10.000 de cereri către script și, prin urmare, către MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analizați rezultatele fiecărui test cu ApacheBench. Cele mai importante date sunt cele care ne oferă informații despre cereri și răspunsuri de la server:

Analizați rezultatele ApacheBench1. Câte cereri pe secundă poate servi serverul vizualizând? Ceilalți indicatori nu sunt foarte utili deoarece nu sunt reprezentativi pentru ceva real în acest context.

2. Există erori pe pagina web sau configurație Apache? Când serverul are nevoie de timp pentru a răspunde sau se blochează, trebuie să analizăm dacă problemele de memorie sau consumul mare de resurse.

3. La ce nivel de concurență va începe serverul Apache să încetinească sau să se blocheze și cât va dura timpul de așteptare? Dacă acest lucru se întâmplă la un nivel scăzut de concurență, ceva nu este în regulă, ar trebui să știm ce este și ce este necesar pentru ca acesta să funcționeze, poate mai multe resurse de server.

3. Factori de luat în considerare pentru a îmbunătăți performanța în Apache


Performanța Apache1. Modul cache_mod de la Apache la pagina cache cerere / rezultate. Aceasta va produce o îmbunătățire a performanței de 5-10 ori față de toate celelalte metode combinate.

2. php_memcache gestionează cache-ul de date pentru scripturi și interogări PHP. Acest lucru poate produce o creștere de performanță de 50% -100% pe paginile web.

3. Pluginuri pentru cache pentru Joomla, WordPress, PrestaShop și unele cadre sau CMS.

4. Modul expiră modulul Apache pentru a utiliza memoria cache a vizitatorilor și păstra paginile pentru o anumită perioadă de timp, în loc să facă din nou o cerere către acele pagini și să trebuiască să se reîncarce, funcționează dacă web-ul nu își modifică conținutul în fiecare minut.

Un alt aspect care afectează foarte mult performanța Apache este PHP și MySQL, îmbunătățind performanța MySQL prin optimizarea configurației fișierului my.ini de xampp, wampp sau lampp și optimizați interogările sau solicitările către web care utilizează php și generează conținut din MySQL, încercând să optimizați utilizarea jurnalului de interogare lent MySQL pentru a vedea care este problema și a îmbunătăți performanța.

Dacă doriți mai multe informații despre modul de utilizare AppacheBench.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave