Überwachen Sie die Leistung oder die Leistung eines Apache-Servers

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

  • Wie viele Anfragen können Sie unterstützen?
  • Geschwindigkeit, mit der Anfragen beantwortet werden
  • Was 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.

ApacheBench
ApacheBench ist eine Computersoftware, die auf der Befehlszeile ausgeführt wird, um die Leistung insbesondere von Webservern und dem http-Dienst zu messen. Diese Software wurde zum Testen des Apache-HTTP-Servers entwickelt. Als Tool zum Testen von HTTP-Diensten kann sie jedoch zum Testen beliebiger Webserver wie Nginx und Lighttpd verwendet werden .

Das ApacheBench- Tool befindet sich in den Linux-Repositories und als Apache- Serverbibliothek und ist daher kostenlose Open-Source-Software und verwendet die Apache-Lizenz.

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

Dieser Test zeigt uns schnell, ob es ein unmittelbares Problem mit der Apache-Installation gibt, und aus diesem Grund reagiert er schlecht.

Es hilft uns auch bei der folgenden Frage: Inwieweit kann ich den Server und seine Webressourcen mit Apache, PHP und MySQL verwenden oder erzwingen? (mit gleichzeitigen Verbindungen und Ladeanforderungsseite) sowie was wir in der Konfiguration von Apache und PHP optimieren sollten, um eine bessere Leistung zu erzielen und die Probleme der Reaktion auf die Anforderungen der Besucher zu beseitigen.

1. Installation von ApacheBench auf Linux-Servern

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

Redhat / Centos
 yum installiere httpd-tools 

Wir werden Tests mit verschiedenen Domains und IP durchführen. Wir öffnen zunächst ein Terminalfenster und führen die folgenden Tests durch:

Lokaler Server oder localhost auch ip 127.0.0.1

 ab 127.0.0.1/ 

localhost

apache.jpg

2. Konsultationen

Sehen wir uns eine Abfrage mit Parametern an. Wir senden jeweils 100 Anfragen in 30er-Gruppen an google.com und speichern die erhaltenen Daten in einer CSV-Datei. Der Code lautet wie folgt:

 ab -g datos.csv -n 100 -c 30 google.com/ 

apache2.jpg

Wir analysieren das Ergebnis
 Serversoftware: GFE / 2.0 // Betriebssystem Google Webserver basierend auf Linux Server-Hostname: google.com Server-Port: 80 Dokumentpfad: / Dokumentlänge: 262 Bytes Nebenläufigkeitsstufe: 30 Testdauer: 1.370 Sekunden Komplette Anfragen: 100 Fehlgeschlagene Anfragen: 0 Nicht-2xx-Antworten: 100 Insgesamt übertragen: 53100 Bytes Übertragenes HTML: 26200 Bytes Anfragen pro Sekunde: 73,01 [# / Sek.] (Mittelwert) // Durchschnitt pro Anfrage Zeit pro Anforderung: 410,899 [ms] (Mittelwert) // Durchschnitt pro Anforderung Zeit pro Anforderung: 13.697 [ms] (Mittelwert für alle gleichzeitigen Anforderungen) // Durchschnitt pro Gesamtmenge Übertragungsrate: 37,86 [KB / s] empfangen Verbindungszeiten (ms) // Verbindungs-, Prozess- und Wartezeiten min mittel [+/- sd] median max Verbinden: 42 81 53.0 73 446 Verarbeitung: 48 190 265,7 88 1286 Warten: 46 114 148,2 86 1246 Gesamt: 114 270 274,7 150 1369 Prozentsatz der Anfragen, die innerhalb einer bestimmten Zeit (ms) bearbeitet wurden 50% 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (längste Anfrage) 

Wir sehen, dass 73 Anfragen pro Sekunde mit einer durchschnittlichen Zeit pro Anfrage von 410,899 Millisekunden und einer Übertragungsrate von 37,86 KByte / s beantwortet wurden. Wir sehen auch, wie sich die Verbindungszeit, der Prozess und die Wartezeit unterscheiden.

See also  CRUD-Operationen für MongoDB in PHP

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 - (wait) 66 (Startzeit) Di 24. März 11:53:03 2015 - (Sekunden) 1427208783 - (Uhrzeit) 46 - (Uhrzeit) 74 - (Uhrzeit) 120 - (Wartezeit) 72 (Startzeit) Di 24 Mrz 11:53:03 2015 - (Sekunden) 1427208783 - (Uhrzeit) 64 - (Uhrzeit) 56 - (Uhrzeit) 120 - (Wartezeit) 56 

Dann erstellen wir vom Terminal aus mit einem Texteditor eine Textdatei, um mehrere URLs aus derselben Domain auszuwerten. Das ApacheBench- Tool unterstützt bis zu 20.000 URLs wie die folgenden.

Die Datei hat die folgende Struktur:

 http://example.com/index.html/ http://example.com/noticias.html/ http://subdomain.example.com/ 

Wir testen jeweils eine Anfrage:

 ab -g datos.csv -n 1000 urls.txt 

In diesem Fall sammelt ApacheBench die urls.txt- Adressen und sendet Anforderungen an den Server. Der Domainname der URLs muss für alle URLs gleich sein.

In diesem Fall besuchen 10 Benutzer gleichzeitig die Website
Es besteht aus 100 Seiten, die von 10 gleichzeitigen und wiederkehrenden Benutzern geladen werden. Jeder Benutzer erstellt 10 Seiten, die bei jeder Anforderung nacheinander geladen oder angezeigt werden.

Wir testen:

 ab -l -r -n 100 -c -k 10 http://www.ejemplo.com/clientes/ 

Dies stellt eine maximale Auslastung einer Website dar, die pro Monat rund 100.000 Besuche erhält, die der Server unterstützen und beantworten muss.

In diesem Fall besuchen 50 gleichzeitige Benutzer dieselbe Webseite 20 Mal
Es geht darum, dass der Server 1000 Seiten beantwortet, dh 50 Benutzer für 20 Anfragen gleichzeitig. Jeder Benutzer stellt 20 Anfragen an aufeinanderfolgende Seiten:

 ab -l -r -n 1000 -c -k50 http://www.example.com/chat/ 

Dies kann zum Testen eines Blogs oder eines Systems verwendet werden, in dem Benutzer oder Besucher häufig Kommentare abgeben, indem viele Anfragen als Chat- oder Kommentarsystem wie Facebook gesendet werden.

See also  Migrieren von Windows Server 2008 R2 auf den Domänencontroller 2016

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

PHP und MySQL Schnelltest
Wir erstellen entweder eine MySQL-Datenbank oder, wenn wir eine zum Testen haben, erstellen wir das PHP-Skript mit dem Namen absql.php

 <html> <head> <title> AB Test PHP und MySQL </ title> </ head> <body> <? php $ link = mysql_connect ("localhost", "user", "password"); mysql_select_db ("bdventas"); $ query = "SELECT * FROM clients"; $ result = mysql_query ($ query); while ($ line = mysql_fetch_array ($ result)) { foreach ($ line als $ value) { print "$ value  n"; } } mysql_close ($ link); ?> </ body> </ html> 

Wir senden 10000 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 Informationen über Anforderungen und Antworten vom Server liefern:

Analysieren Sie die ApacheBench-Ergebnisse
¿Cuántas peticiones por segundo puede atender el servidor viendo? 1. Wie viele Anfragen pro Sekunde kann der Server überwachen? Die anderen Indikatoren sind nicht sehr nützlich, da sie nicht repräsentativ für etwas Reales in diesem Zusammenhang sind.

¿Hay algún error en la página web o de configuración de Apache? 2. Liegt ein Fehler in der Webseite oder Konfiguration von Apache vor? Wenn der Server verzögert reagiert oder ausfällt, müssen wir analysieren, ob Speicherprobleme oder ein hoher Ressourcenverbrauch vorliegen.

¿A qué nivel de concurrencia comenzara a ponerse lento la capacidad de respuesta o colapsara el servidor Apache y cuanto sera el tiempo de espera? 3. Ab welcher Stufe der Parallelität verlangsamt sich die Antwortkapazität oder der Apache-Server bricht zusammen und wie lange wird die Wartezeit dauern? Wenn dies auf einer niedrigen Nebenläufigkeitsebene geschieht, stimmt etwas nicht, wir sollten wissen, was es ist und was benötigt wird, damit möglicherweise mehr Serverressourcen funktionieren.

See also  Deaktivieren Sie Windows-Benachrichtigungen in Windows 10

3. Zu berücksichtigende Faktoren zur Verbesserung der Leistung in Apache

Apache-Leistung
Módulo mod_cache de Apache a la página del caché de peticiones / resultados. 1. Modul mod_cache von Apache zur Cache-Seite der Anfragen / Ergebnisse. Dies führt zu einer 5- bis 10-mal besseren Leistung gegenüber allen anderen kombinierten Methoden.

php_memcache gestiona la caché de datos para scripts PHP y consultas. 2. php_memcache verwaltet den Datencache für PHP-Skripte und Abfragen. Dies kann zu einer Leistungssteigerung von 50% bis 100% auf den Webseiten führen.

Los plugins caché para Joomla, WordPress, PrestaShop y algunos Frameworks o CMS. 3. Cache-Plugins für Joomla, WordPress, PrestaShop und einige Frameworks oder CMS.

Modulo mod_expires de Apache para hacer usar la caché del visitante y mantener páginas un tiempo determinado, en lugar de volver a realizar una petición a esas páginas y tener que volver a cargar, sirve si la web no cambia su contenido a cada minuto. Modulo mod_expires von Apache nutzt den Cache des Besuchers und pflegt die Seiten eine bestimmte Zeit, anstatt eine Anfrage an diese Seiten zu richten und neu zu laden. Es ist nützlich, wenn das Web seinen Inhalt nicht jede Minute ändert.

Ein weiterer Aspekt, der die Leistung von Apache stark beeinflusst, ist PHP und MySQL. Dadurch wird die Leistung von MySQL verbessert, indem die Konfiguration der Datei my.ini von xampp, wampp oder lampp optimiert und die Abfragen oder Anforderungen an das Web optimiert werden, das PHP verwendet und Inhalte aus MySQL generiert versuchen, die Verwendung des langsamen MySQL-Abfrageprotokolls zu optimieren, um das Problem zu erkennen und die Leistung zu verbessern.

Wenn Sie mehr Informationen über AppacheBench verwenden möchten .

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *