Apache Benchmark / Stress Test (ab.exe) : Was bedeuten die Zahlen ?

Wie interpretiert man die Ergebnisse des Apache Benchmark / Stress Tests ?

Siehe auch hier.

Hier ein Ergebnis eines realen Tests. Der Apache Server hat sehr langsam geantwortet.

Document Path:          /stress.html
Document Length:        145 bytes
Concurrency Level:      10
10 gleichzeitige Anfragen wurden gestartet

Time taken for tests:   95.861 seconds
Zeit, die der komplette Test benötigt hatte

Complete requests:      100
Alle abgeschlossenen beauftragten Anfragen.

Failed requests:        0
Write errors:           0
Total transferred:      42800 bytes
HTML transferred:       14500 bytes

Requests per second:    1.04 [#/sec] (mean)
Anzahl der Antworten, die der Server pro Sekunde liefern kann. Die besten Werte liefert eine einfache kleine HTML Datei. Etwas mehr Zeit braucht der Server, um eine PHP Datei zusammenzustellen – evtl. auch mit Hilfe einer MYSQL Datenbank.

Niedrige Werte können also komplett unterschiedliche Ursachen haben.

Time per request:       9586.122 [ms] (mean)
Time per request:       958.612 [ms] (mean, across all concurrent requests)

Transfer rate:          0.44 [Kbytes/sec] received

Connection Times (ms)
Verbindungszeiten

             min      mean   [+/-sd]  median     max
          Minimum   Mittel   ???      Mittel
Connect:        0       29   292.2         0    2922
Processing:  8000     9351   917.8      9188   13844
Waiting:     8000     9351   917.8      9188   13844
Total:       8000     9380   1010.2     9188   13844

zum Unterschied zwischen Mean und Median

Die Summe auf Connect und Processing ergibt dann Total.

Percentage of the requests served within a certain time (ms)

Die Tabelle am Schluss der Auswertung wird oft falsch interpretiert.  Man darf nicht versuchen die Prozentzahlen irgendwie zusammenzuzählen um auf 100 % zu kommen.

Am besten versteht man die Tabelle, wenn man bei 100 % anfängt und sich nach oben durcharbeitet. Die längste Antwortzeit lag also bei 13,844 Sekunden und  alle (100%) Antworten waren gleich oder darunter.

Zugriff in Prozent, die innerhalb einer Zeit beantwortet wurden.
50%   9188  50 % wurden innerhalb 9,1 Sekunden beantwortet
66%   9500  66 % wurden innerhalb 9,5 Sekunden beantwortet
75%   9969
80%  10094 80 % wurden innerhalb 10,094 Sekunden beantwortet
90%  10735
95%  10922
98%  13844
99%  13844
100%  13844 (longest request)
Die längste Antwortzeit lag bei 13,844 Sekunden. Daher wurden
alle Antworten innerhalb dieser Zeit beantwortet.

Hier ist ein „gutes“ Ergebnis , der Server antwortete schnell.

Concurrency Level:      10
Time taken for tests:   0.406 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      428000 bytes
HTML transferred:       145000 bytes
Requests per second:    2461.50 [#/sec] (mean)
Time per request:       4.063 [ms] (mean)
Time per request:       0.406 [ms] (mean, across all concurrent requests)
Transfer rate:          1028.83 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   2.1      0      16
Processing:     0    4   6.6      0      16
Waiting:        0    2   5.3      0      16
Total:          0    4   6.7      0      16

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%     16
  90%     16
  95%     16
  98%     16
  99%     16
 100%     16 ( longest request)

Weiterführende Links :

http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html

http://www.go2linux.org/linux/2010/04/how-benchmark-stress-your-apache-nginx-or-iis-server-718