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.
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
sudo apt-get install -y apache2 sudo apt-get installiert apache2-utils
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
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/
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.
Die CSV-Datendatei hat die folgende 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.
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.
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.
Diese Art von Test kann dem Verkehr einer Website oder eines sehr aktiven Blogs entsprechen.
<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:
¿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.
3. Zu berücksichtigende Faktoren zur Verbesserung der Leistung in Apache
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 .