ABコマンド(Apache Bench)を試してみる

WEBサーバーの性能測定を行いたいと思い、ひさびさにABコマンドを使ってみることにしました。

久しぶりに使うとなんだったか忘れてしまいますね。

 

基本的には下記の記述になります。

ab -n <総リクエスト数> -c <同時リクエスト数> <URL>

例えば、100ユーザがhttp://exampleに10リクエストを発行した場合を想定。

ab -n 1000 -c 100 http://example/

 

・結果

Server Software:        nginx : WEBサーバーのソフト名
Server Hostname:        <ホスト名> :サーバーホスト名
Server Port:            80:サーバーのポート番号

Document Path:          / : ドキュメントパス
Document Length:        27411 bytes : ドキュメント容量

Concurrency Level:      100
Time taken for tests:   8.418 seconds
Complete requests:      1000 :リクエストの成功回数
Failed requests:        0 : リクエストの失敗回数
Total transferred:      27771000 bytes
HTML transferred:       27411000 bytes
Requests per second:    118.79 [#/sec] (mean) : 1秒間で処理されたリクエスト数
Time per request:       841.816 [ms] (mean)
Time per request:       8.418 [ms] (mean, across all concurrent requests)
Transfer rate:          3221.62 [Kbytes/sec] received:1秒間で受信したデータ数

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   8.2      0      65
Processing:   104  811 124.2    824    1084
Waiting:       39  810 124.6    824    1084
Total:        113  812 124.2    824    1107 : 合計でどれくらいかかったかの時間

Percentage of the requests served within a certain time (ms)
  50%    824 : 50%リクエストが0.824秒以内に返ってくる
  66%    847
  75%    860
  80%    869
  90%    901
  95%    964
  98%   1013
  99%   1034
 100%   1107 (longest request)

 

で、何がいいんだか悪いんだか分らん…いろいろと見比べながら…

 

目次

Time taken for tests

試験にかかった時間。数値が低いのが良い

 

 

Failed requests

処理に失敗したリクエストの数。数値がひくのが良い。基本0で考えるのかな

 

 

Requests per second

1秒で処理できるリクエスト数。数値が高い方が良い

 

Time per request

1リクエストにつき処理に要した時間。数値が低い方が良い

 

Transfer rate

1秒間で受け取ったデータの大きさ。数値が高い方が良い

 

Connection Times (ms)

数値が低いほうが良い

 

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

リクエストを完了するにかかっている時間なので数値が低いほうが良い。

 

ってな感じです。わかったようなわからないような…