Home / WebServer / Apache / Webserver Geschwindigkeit messen mit Apache Benchmark (ab) – Performance Test
apache logo

Webserver Geschwindigkeit messen mit Apache Benchmark (ab) – Performance Test

In Zeiten wie diesen wird es immer wichtiger die Ladezeiten einer Webseite zu optimieren. Natürlich in erster Linie, um dem User die beste Experience zu gewährleisten. Und in weiterer Instanz natürlich für Google, da die Website-Performance auch in das Suchmaschinen Ranking einfließt.

Doch bevor man anfängt wild „herumzuoptimieren“ und diverse Tools auszuprobieren, sollte man sich im ersten Schritt Gedanken machen wie man die Performance eigentlich messen kann.

  • Wieviele Anfragen kann mein Webserver gleichzeitig verarbeiten?
  • Welche Geschwindigkeit hat mein Webserver bei einem Aufruf einer Webseite?

Apache liefert bei der Serverinstallation ein tolles Tool mit, welches sich „Apache HTTP server benchmarking tool“ (kurz: „ab“ oder „ab2“) nennt. Dieses kann verwendet werden um mehrere und vor allem gleichzeitige Anfragen auf Webservern zu simulieren. Man könnte jetzt viele Worte darüber verlieren was das Programm macht und kann, aber am besten sieht man es an einem Praxisbeispiel.

Apache Benchmark (ab) installieren:

Der Apache Benchmark wird mit dem Webserver mit installiert. Wer auf einem System den Webserver nicht extra installieren möchte, kann die apache2-utils verwenden.

apt-get install apache2-utils

Webseiten Performance messen mit Apache Benchmark

Was gibt es zu beachten?

1) Der Server, welcher den Benchmark durchführt, sollte ein anderen sein, als der, der die Webseite hosted. Idealerweise ein dedizierter Root Server mit ordentlich Power.
2) Ihr solltet bei den Tests eine gute Internet Bandbreite zur Verfügung haben.
3) Die Tests sollten immer von dem selben Server/Rechner durchgeführt werden.
4) Macht mehrere Durchläufe (mind. 5, besser 10) und errechnet den Durchschnittswert.

Ich verwende für den Apache Benchmark folgenden Befehl:

ab -c 20 -n 200 http://www.sysadminslife.com/

-c Anzahl der gleichzeitigen Verbindungen (20)
-n Anzahl der Anfragen, welche ausgeführt werden (200)
http://www.sysadminslife.com/ gibt die Webseite an, welche getestet wird 😉

ab hat viele weitere Einstellungsmöglichkeiten die hier sehr detailliert beschrieben sind.

TIPP: Beobachtet bei eurem Server, der die Webseite ausliefert, die CPU Last mit dem Befehl „top“ während der Benchmark läuft und seht euch die Veränderung an.

Apache Benchmark im Praxisbeispiel

Getestet wird mein Webserver (SysADMINsLife Startseite) mit den oben beschrieben Werten. Dabei erhalte ich folgendes Ergebnis:

Server Software:        Apache
Server Hostname: www.sysadminslife.com
Server Port: 80

Document Path: /
Document Length: 69197 bytes

Concurrency Level: 20
Time taken for tests: 15.558 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 13908800 bytes
HTML transferred: 13839400 bytes
Requests per second: 12.86 [#/sec] (mean)
Time per request: 1555.802 [ms] (mean)
Time per request: 77.790 [ms] (mean, across all concurrent requests)
Transfer rate: 873.04 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 24 155 312.3 107 3236
Processing: 776 1332 296.5 1280 2651
Waiting: 47 227 210.2 148 1081
Total: 851 1487 449.5 1405 4976

Percentage of the requests served within a certain time (ms)
50% 1405
66% 1511
75% 1605
80% 1665
90% 1882
95% 2061
98% 2589
99% 4692
100% 4976 (longest request)

Damit wir jetzt auch drastische Auswirkungen sehen können schalte ich bei meinem WordPress vorübergehen das WP-SuperCache Plugin aus. WP-Supercache ist, wie der Name schon sagt, ein sehr mächtiges Caching Plugin für WordPress, welches mir schon seit geraumer Zeit tolle Dienste erweist.

Server Software:        Apache
Server Hostname:        www.sysadminslife.com
Server Port:            80

Document Path:          /
Document Length:        69051 bytes

Concurrency Level:      20
Time taken for tests:   36.224 seconds
Complete requests:      200
Failed requests:        0
Write errors:           0
Total transferred:      13859000 bytes
HTML transferred:       13810200 bytes
Requests per second:    5.52 [#/sec] (mean)
Time per request:       3622.408 [ms] (mean)
Time per request:       181.120 [ms] (mean, across all concurrent requests)
Transfer rate:          373.62 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       24  396 1049.5     63    4460
Processing:  1079 3126 730.9   3195    5560
Waiting:      604 2518 619.8   2597    3777
Total:       1154 3522 1183.3   3344    8638

Percentage of the requests served within a certain time (ms)
  50%   3344
  66%   3602
  75%   3787
  80%   3977
  90%   4673
  95%   5984
  98%   8052
  99%   8156
 100%   8638 (longest request)

Ich denke die Zahlen sprechen absolut für sich selbst, wenn man die „Time taken for tests“, „Requests per second“ und „Time per request“ Werte miteinander vergleicht.

Hier sieht ma wie wichtig Caching Plugins für die Performance von Webseiten sind, gerade wenn diese eine MySQL oder ähnliche Datenbanken im Hintergrund haben.

Eine Optimierung und viele Tests verschiedener Caching Plugins können sich also sehr positiv auf die Geschwindigkeit einer Webseite und somit auf die SERPs auswirken.

Ich werde die nächsten Wochen verschiedene Kombinationen an Caching Plugins testen und die Ergebnisse hier veröffentlichen.

Webserver Geschwindigkeit messen mit Apache Benchmark (ab) – Performance Test
4.22 (84.44%) 9 Bewertungen

Über Patrick

Auch cool

Google Analytics Zugriffe von semalt.com und buttons-for-website.com

Wahrscheinlich kennt gerade jeder, der Google Analytics oder eine andere Webtracking Software wie Piwik einsetzt …

3 Kommentare

  1. sehr informativ! sowas habe ich schon seit längerem gesucht. 🙂

  2. Wenn ich mit folgendem Befehl die Geschwindigkeit Teste, sind beide Kerne mit 100% Ausgelasastet, ist das normal?
    – Ein Cache Plugin wird nicht verwendet.

    ab -c 20 -n 200 http://meinewebsite/

  3. Vielen Dank für die kurze Erläuterung. Mir ist noch nicht ganz klar was genau der Unterschied zwischen den beiden Parametern -c und -n ist. Mal angenommen meine Website hat in Spitzenzeiten 500 Besucher zur gleichen Zeit. Und jeder Besucher tätigt 30 Anfragen. Wäre dies dann -c 500 und -n 30.
    Vielen Dank
    Marvin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.