Wenn Sie ein Webmaster sind, machen Sie sich vielleicht oft Gedanken über die Leistung Ihrer Webanwendungen. Sie könnten Fragen stellen wie:„Wie führe ich Lasttests für meine Anwendung durch?“ oder „wird meine Anwendung viele Benutzer bewältigen können?“ In diesen Fällen kann Apache Bench eine große Hilfe sein. Apache Bench ist ein kostenloses Open-Source-Tool zum Messen der Leistung eines Webservers mit einer einfachen, benutzerfreundlichen Befehlszeilenschnittstelle. Es kann Ihnen helfen, die Leistung Ihrer aktuellen Apache-Installation zu verstehen.
In diesem Tutorial zeigen wir Ihnen, wie Sie Apache Bench unter Linux installieren und verwenden.
Voraussetzungen
- Ein frisches Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – Apache Bench installieren
Apache Bench ist Teil des Apache-Webserver-Pakets, sodass Sie Apache Bench nicht installieren müssen, wenn der Apache-Webserver auf Ihrem System installiert ist.
Installieren Sie für das Betriebssystem Ubuntu/Debian das Apache Bench-Tool mit dem folgenden Befehl:
apt-get install apache2-utils -y
Installieren Sie für das RHEL/CentOS-Betriebssystem das Apache Bench-Tool mit dem folgenden Befehl:
yum install httpd-tools -y
Mit dem folgenden Befehl können Sie alle mit dem Apache Bench-Tool verfügbaren Optionen anzeigen:
ab
Sie sollten den folgenden Bildschirm sehen:
Nachfolgend finden Sie eine kurze Erläuterung der am häufigsten verwendeten Optionen:
- -n: Geben Sie die Anzahl der Verbindungsanfragen an, die an den Webserver gesendet werden.
- -c: Geben Sie die Anzahl gleichzeitiger Verbindungsanfragen an, die an den Webserver gesendet werden.
- -t: Geben Sie die Anzahl der Sekunden an, die der Befehl ab mit dem Senden von Anfragen fortfahren soll.
Hinweis: Manchmal erhalten Sie möglicherweise den Fehler „Zeitüberschreitung der Verbindung“. Der Grund dafür ist, dass Ihre Verbindungsanfrage von einer Firewall blockiert wurde oder der Apache-Webserver keine weiteren Anfragen verarbeiten konnte.
Schritt 3 – Ausführen eines Stresstests
An dieser Stelle wird das Apache Bench-Tool installiert. Jetzt können Sie einen Belastungstest gegen Ihren Webserver lokal oder unter Verwendung des Domainnamens durchführen.
Führen wir einen Belastungstest für Ihren Apache-Webserver durch, indem wir 800 Anfragen über 300 gleichzeitige Verbindungen senden.
ab -n 800 -c 300 http://your-domain-name/
Dies funktioniert für 800 Anfragen mit einer Gleichzeitigkeit von 300, wie unten gezeigt:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: Apache/2.4.29 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.459 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8953600 bytes HTML transferred: 8734400 bytes Requests per second: 1743.53 [#/sec] (mean) Time per request: 172.064 [ms] (mean) Time per request: 0.574 [ms] (mean, across all concurrent requests) Transfer rate: 19056.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 6 7.8 0 20 Processing: 8 92 124.3 44 437 Waiting: 4 92 124.4 43 437 Total: 22 98 128.9 44 453 Percentage of the requests served within a certain time (ms) 50% 44 66% 50 75% 53 80% 56 90% 435 95% 445 98% 450 99% 452 100% 453 (longest request)
In der obigen Ausgabe sehen Sie, dass Apache 1743,53 Anfragen pro Sekunde bearbeitet hat und es insgesamt 0,459 Sekunden gedauert hat, um die gesamten Anfragen zu bedienen.
Lassen Sie uns einen weiteren Belastungstest für Ihren Nginx-Webserver durchführen und ihn mit dem Apache-Ergebnis vergleichen, indem wir 800 Anfragen über 300 gleichzeitige Verbindungen senden.
ab -n 800 -c 300 http://your-domain-name/
Sie sollten die folgende Ausgabe sehen:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: nginx/1.14.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.184 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8930400 bytes HTML transferred: 8734400 bytes Requests per second: 4354.95 [#/sec] (mean) Time per request: 68.887 [ms] (mean) Time per request: 0.230 [ms] (mean, across all concurrent requests) Transfer rate: 47474.91 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 12 7.5 9 32 Processing: 5 33 12.8 30 56 Waiting: 4 26 12.9 22 49 Total: 15 46 13.6 46 70 Percentage of the requests served within a certain time (ms) 50% 46 66% 56 75% 58 80% 60 90% 64 95% 66 98% 70 99% 70 100% 70 (longest request)
In der obigen Ausgabe sehen Sie, dass Apache 4354,95 Anfragen pro Sekunde verarbeitet hat und es insgesamt 0,184 Sekunden gedauert hat, um die gesamten Anfragen zu bedienen.
Sie können sehen, dass Nginx mehr Anfragen verarbeiten kann als Apache. Nachdem Sie das Ergebnis beider Server verglichen haben, erhalten Sie eine Vorstellung davon, welchen Sie für Ihre Webanwendung auswählen sollten.
Fazit
In der obigen Anleitung haben wir gelernt, wie man die Webserverleistung mit Apache Bench testet. Sie können jetzt das Apache Bench-Tool erkunden und es mit verschiedenen Optionen ausführen, um die Leistung Ihres Webservers zu messen. Probieren Sie es noch heute auf dem VPS-Hosting von Atlantic.Net aus!