Überwachen Sie die Leistung eines Apache-Servers

Wenn Sie a . überwachen möchten Apache-Server, wir müssen einige Aspekte kennen:

  • Wie viele Anfragen verträgt es
  • Geschwindigkeit, mit der auf Anfragen reagiert wird
  • Wie ist die Wartezeit
  • Welche Anwendungen oder Dienste können verbessert oder optimiert werden
Um die Leistung eines Servers zu messen, verwenden wir ein Tool namens Apache Benchmark oder ApacheBench.

ApacheBenchApacheBench Es handelt sich um eine Computersoftware, die auf der Befehlszeile ausgeführt wird, um die Leistung insbesondere von Webservern und http-Diensten zu messen. Diese Software wurde entwickelt, um den Apache HTTP-Server zu testen. Da es sich jedoch um ein Tool zum Testen von HTTP-Diensten handelt, können Sie damit jeden Webserver testen, z Nginx, Lighttpd.

Das Werkzeug ApacheBench es befindet sich in den Linux-Repositories und als Bibliothek auf dem Apache-Server und ist daher kostenlose Open-Source-Software und verwendet die Apache-Lizenz.

Diese Art von Test ist sehr einfach und schnell mit dem Apache Bench-Befehl ab durchzuführen.

Dieser Test wird uns schnell zeigen, ob es ein unmittelbares Problem mit der Apache-Installation gibt und es daher schlecht reagiert.

Es hilft uns auch bei folgender Frage Wie weit kann ich den Server und seine Webressourcen mit Apache, PHP und MySQL nutzen oder erzwingen? (mit gleichzeitigen Verbindungen und Ladeanforderungsseite), plus was wir in der Apache- und PHP-Konfiguration optimieren müssen, um eine bessere Leistung und beseitigen Sie die Probleme bei der Beantwortung von Besucheranfragen.

1. ApacheBench auf Linux-Servern installieren


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

Redhat / Centos

 yum installiere httpd-tools

Wir werden Tests mit verschiedenen Domains und IP durchführen. Wir beginnen mit dem Öffnen eines Terminalfensters und führen die folgenden Tests durch:

Lokaler Server oder localhost auch ip 127.0.0.1

 ab 127.0.0.1/
localhost

2. Anfragen


Sehen wir uns eine Abfrage mit Parametern an. Wir senden jeweils 100 Anfragen in Gruppen von 30 an google.com und speichern die erhaltenen Daten in einer CSV-Datei, der Code lautet wie folgt:
 ab -g data.csv -n 100 -c 30 google.com/

Wir analysieren das Ergebnis

 Serversoftware: GFE / 2.0 // Betriebsstandort Google Webserver basierend auf Linux Server Hostname: google.com Serverport: 80 Dokumentpfad: / Dokumentlänge: 262 Byte Parallelitätsgrad: 30 Zeitaufwand für Tests: 1.370 Sekunden Vollständige Anfragen: 100 Fehlgeschlagene Anfragen: 0 Nicht-2xx-Antworten: 100 Übertragene Gesamtzahl: 53100 Byte Übertragene HTML: 26200 Bytes Anfragen pro Sekunde: 73,01 [# / sec] (Mittelwert) // Durchschnitt pro Anfrage Zeit pro Anfrage: 410,899 [ms] (Mittelwert) / / Durchschnitt pro Anfrage Zeit pro Anfrage: 13.697 [ms] (Mittelwert über alle gleichzeitigen Anfragen) // Durchschnitt pro Gesamt Übertragungsrate: 37.86 [Kbytes / Sek.] empfangene Verbindungszeiten (ms) // Verbindungs-, Prozess- und Wartezeiten min Mittelwert [+/- sd] median max Connect: 42 81 53,0 73 446 Processing: 48 190 265,7 88 1286 Waiting: 46 114 148,2 86 1246 Total: 114 270 274,7 150 1369 Prozentsatz der innerhalb einer bestimmten Zeit (ms) bedienten Requests 50 % 150 66 % 203 75 % 222 80 % 243 90 % 844 95 % 953 98 % 1088 99 % 1369 100 % 1369 (längste Anfrage)

Wir sehen, dass es auf 73 Anfragen pro Sekunde mit einer durchschnittlichen Zeit pro Anfrage von 410.899 Millisekunden und einer Übertragungsrate von 37,86 Kbyte / s geantwortet hat, wir sehen auch, wie die Verbindung, der Prozess und die Wartezeit variieren.

Die CSV-Datendatei hat die folgende Struktur.

CSV-Struktur

 (Startzeit) Di 24. März 11:53:03 2015 - (Sekunden) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (warten) 66 (Startzeit) Di 24. März 11:53:03 2015 - (Sekunden) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (wait) 72 (starttime) Di 24. März 11:53:03 2015 - (Sekunden) 1427208783 - (ctime) 64 - (dtime) 56 - (ttime) 120 - (warten) 56

Als nächstes erstellen wir vom Terminal aus mit einem Texteditor eine Textdatei, um mehrere URLs derselben Domain auszuwerten. Das Werkzeug ApacheBench unterstützt bis zu 20.000 URLs wie die folgenden.

Die Datei wird folgende Struktur haben:

 http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/
Wir testen eine Anfrage nach der anderen:
 ab -g data.csv -n 1000 urls.txt
In diesem Fall, ApacheBench sammle die Adressen von urls.txt und Anfragen an den Server senden. Der Domänenname der URLs muss für alle URLs gleich sein.

Fall, bei dem 10 gleichzeitige Benutzer jeweils 10 Besuche auf der Website durchführen
Es sind ungefähr 100 Seiten, die von 10 verschiedenen gleichzeitigen und wiederkehrenden Benutzern geladen werden, jeder Benutzer erstellt 10 Seiten, die in jeder Anforderung geladen oder nacheinander angezeigt werden.

Wir prüfen:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
Dies stellt eine maximale Auslastung einer Website dar, die pro Monat rund 100.000 Besuche erhält, die vom Server unterstützt und beantwortet werden müssen.

Fall, in dem 50 Benutzer gleichzeitig dieselbe Webseite 20 Mal besuchenEs geht darum, dass der Server auf 1000 Seiten antwortet, d.h. 50 Benutzer für 20 Anfragen gleichzeitig, jeder Benutzer stellt nacheinander 20 Anfragen an Seiten:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
Dies kann verwendet werden, um einen Blog oder ein System zu testen, in dem Benutzer oder Besucher viel kommentieren, indem sie viele Anfragen senden, wie ein Chat- oder Kommentarsystem wie Facebook.

Diese Art von Test kann dem Traffic einer sehr aktiven Website oder eines sehr aktiven Blogs entsprechen.

Schneller PHP- und MySQL-TestWir erstellen eine beliebige MySQL-Datenbank oder wenn wir eine zum Testen haben, verwenden wir sie, dann erstellen wir das PHP-Skript namens absql.php

 AB Test PHP und MySQL 
Wir senden 10.000 Anfragen an das Skript und damit an MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analysieren Sie die Ergebnisse jedes Tests mit ApacheBench. Die wichtigsten Daten sind diejenigen, die uns Auskunft über Anfragen und Antworten des Servers geben:

Analysieren Sie ApacheBench-Ergebnisse1. Wie viele Anfragen pro Sekunde kann der Server durch Anzeigen bedienen? Die anderen Indikatoren sind nicht sehr nützlich, da sie in diesem Zusammenhang nicht für etwas Reales repräsentativ sind.

2. Gibt es Fehler auf der Apache-Webseite oder -Konfiguration? Wenn der Server Zeit braucht, um zu reagieren oder abstürzt, müssen wir analysieren, ob Speicherprobleme oder hoher Ressourcenverbrauch vorliegen.

3. Ab welcher Parallelitätsstufe wird der Apache-Server langsamer oder stürzt ab und wie lange dauert die Wartezeit? Wenn dies auf einer niedrigen Parallelitätsebene geschieht, stimmt etwas nicht, wir sollten wissen, was es ist und was für die Funktionsfähigkeit erforderlich ist, vielleicht mehr Serverressourcen.

3. Zu berücksichtigende Faktoren, um die Leistung in Apache zu verbessern


Apache-Leistung1. Mod_cache-Modul von Apache zur Anforderungs-/Ergebnis-Cache-Seite. Dies führt zu einer 5- bis 10-fachen Leistungsverbesserung gegenüber allen anderen kombinierten Methoden.

2. php_memcache verwaltet den Datencache für PHP-Skripte und -Abfragen. Dies kann zu einer Leistungssteigerung von 50 % bis 100 % auf Webseiten führen.

3. Cache-Plugins für Joomla, WordPress, PrestaShop und einige Frameworks oder CMS.

4. Mod_expires-Modul Apache, um den Cache des Besuchers zu verwenden und Seiten für eine bestimmte Zeit aufzubewahren, anstatt diese Seiten erneut anzufordern und neu zu laden, funktioniert es, wenn das Web seinen Inhalt nicht jede Minute ändert.

Ein weiterer Aspekt, der die Leistung von Apache stark beeinflusst, ist PHP und MySQL, Verbesserung der MySQL-Leistung durch Optimierung der Dateikonfiguration my.ini von xampp, wampp oder lampp und optimieren Sie die Abfragen oder Anfragen an das Web, das PHP verwendet und Inhalte aus MySQL generiert, und versuchen Sie, die Verwendung des langsamen Abfrageprotokolls von MySQL zu optimieren, um das Problem zu erkennen und die Leistung zu verbessern.

Wenn Sie weitere Informationen zur Verwendung wünschen AppacheBench.

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave