GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man die Leistung von Webservern mit Apache Bench bewertet

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!


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. So konfigurieren Sie mehrere Websites mit dem Apache-Webserver

  3. So installieren Sie den Apache-Webserver unter CentOS 7

  4. So installieren Sie Apache Webserver auf Centos 8

  5. So installieren Sie den Apache-Webserver unter Ubuntu

So richten Sie WordPress Multisite mit Apache Web Server auf Ubuntu ein

So installieren Sie den Apache-Webserver unter Debian 11

So installieren Sie den Apache-Webserver unter Ubuntu 18.04

Wie optimiere ich den Apache-Webserver?

So installieren Sie Drupal auf einem Ubuntu 20.04-Server mit Apache

So richten Sie die Passwortauthentifizierung mit Apache unter Ubuntu 18.04 ein