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)
リクエストを完了するにかかっている時間なので数値が低いほうが良い。
ってな感じです。わかったようなわからないような…