Die Ergebnisse von ab.exe (ApacheBench) interpretieren

apache
apachebench
Tags: #<Tag:0x00007fb1ca9b2ca0> #<Tag:0x00007fb1ca9b2b38>

#1

Die Ergebnisse von ApacheBench schauen teilweise etwas unübersichtlich aus:

Ergebnis-Anzeige

Server Software:        Microsoft-IIS/8.5
Server Hostname:        example.org
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        ECDH P-256 256 bits
TLS Server Name:        example.org

Document Path:          /foo/bar
Document Length:        148680 bytes

Concurrency Level:      5
Time taken for tests:   2.696 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      14917600 bytes
HTML transferred:       14868000 bytes
Requests per second:    37.09 [#/sec] (mean)
Time per request:       134.812 [ms] (mean)
Time per request:       26.962 [ms] (mean, across all concurrent requests)
Transfer rate:          5403.07 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       10   13   2.8     12      22
Processing:    22   97 247.7     28    1089
Waiting:       10   13   3.6     12      32
Total:         34  110 248.0     40    1101

Percentage of the requests served within a certain time (ms)
  50%     40
  66%     45
  75%     49
  80%     54
  90%    110
  95%   1059
  98%   1099
  99%   1101
 100%   1101 (longest request)

Linksammlung

Es gibt einige interessante Ressourcen mit Erklärungen, wie diese Ergebnisse zu interpretieren sind:

Interpretation

Mir hat diese Erklärung für diese drei Ergebniswerte gut geholfen:

Time taken for tests:   2.696 seconds
Time per request:       134.812 [ms] (mean)
Time per request:       26.962 [ms] (mean, across all concurrent requests)

Demnach ist in obigem Beispiel:

  • der Wert 134.812 ms hilfreich für die Messung der Verzögerung eines einzelnen Requests.
  • der Wert 26.962 ms hilfreich für die Messung der Performance.

Die ausführlichste, ganzheitliche Erklärung ist sicherlich in diesem Blog-Artikel aufgeführt.

Der Autor hat im Artikel wohl einen Fehler gemacht:

Statt der angegebenen 560 ms für unterhalb des zweiten Screenshots in seinem Artikel, sind das nur 56 ms (“0.056” im Screenshot).

Deshalb ist auch die Summierung von 589 ms falsch: Er addiert die 29 ms aus dem ersten Screenshot zu den (falschen) 560 ms vom zweiten Screenshot und kommt dann auf die 589 ms.

Eigentlich sollten es 29 ms + 56 ms = 85 ms sein, nach meinem Verständnis.