WEB開発備忘録

abでapacheのベンチマークを取得

Apacheの性能を測るベンチマークテスト用のツール「ab」についてのメモ書きです。

構文

[prompt] # ab -オプション 対象URL

abのオプション

-n 数値  発行するリクエスト回数
-c 数値 同時発行するリクエストの数
-t 数値 サーバからのレスポンス待ち時間(秒)
-p ファイル名 サーバへ送信するファイル
-T コンテンツタイプ サーバへ送信するコンテンツヘッダ
-v タイプ数値 動作情報表示タイプの指定
-w HTMLによる結果出力
-C ‘クッキー名=値’ クッキーの値を渡してリクエスト
-A ユーザ名:パスワード basic認証/digest認証の必要なページへ
-P ユーザ名:パスワード プロキシ認証用
-k HTTP/1.1のKeepAlive有効
-h ヘルプ表示

 

Basic認証/Digest認証をかけてテスト中のページへabによるベンチマークテストを行う例

[prompt] # ab -n 1000 -c 10 -A ユーザ名:パスワード http://対象URL

現在のオンライン環境の同時接続数を目安にテストをしてみましょう。

実行例

[prompt]# ab -n 1000 -c 10 -A ユーザ名:パスワード http://192.168.0.0
This is ApacheBench, Version 2.x <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.0 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

Server Software: Apache/2.x.x
Server Hostname: 192.168.0.0
Server Port: 80

Document Path: /index.php
Document Length: 481 bytes

Concurrency Level: 10
Time taken for tests: 0.139 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1002
Total transferred: 833664 bytes
HTML transferred: 481962 bytes
Requests per second: 7180.50 [#/sec] (mean)
Time per request: 1.393 [ms] (mean)
Time per request: 0.139 [ms] (mean, across all concurrent requests)
Transfer rate: 5845.83 [Kbytes/sec] received

Connection Times (ms)
 min mean[+/-sd] median max
Connect: 0 0 0.3 0 2
Processing: 0 1 0.4 1 3
Waiting: 0 1 0.3 1 3
Total: 1 1 0.4 1 4

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

結果の勘所

Completed requests リクエストの成否。Failed requestsが発生していたら処理能力の限界を超えている
Requests per second 1秒間で処理したリクエスト数。大きいほど性能が良い