autobench/実行


autobenchの実行

コマンドはインストールの所でも紹介したが、以下の様な物になる。
# autobench --single_host --host1 www.example.com --uri1 / --low_rate 1000 --high_rate 1000 \
  --num_conn 1000 --num_call 1 --timeout 10 --file /tmp/results.tsv
単品で実行した場合はhttperfの結果が出ることになるが、その場合はそれなりに詳細な表示がされる。
結果表示については下の方に記載します。

全部ではないが代表的なオプションを、英語どころか日本語すら不自由な自分が読み解いてみる。
--single_host
単体サーバをテストする時に使う
autobench(というかhttperfは)2台のサーバに向けて同時にテストできるのも特徴
--host1
1台目のサーバのFQDN
--uri1
1台目のサーバのコンテンツパス
--host2
2台目のサーバのFQDN
--uri2
2台目のサーバのコンテンツパス
--low_rate
全テスト開始時の1秒間あたりの接続数
--high_rate
全テスト終了時の1秒間あたりの接続数
--rate_step
low_rateからhigh_rateに至るまでに、毎回どのぐらいの数ずつ接続数を増やしていくか
(high_rate - low_rate) / rate_step + 1 = テスト回数
--num_conn
テスト1回あたりの接続回数
--num_call
1接続あたりのリクエスト回数
KeepAliveがOnになっていないとエラーが返ることになる
num_conn * num_call = テスト1回あたりの総リクエスト回数
--const_test_time
リクエストの上限を回数ではなく秒数で指定する
--num_connの代わりに使う
--timeout
レスポンスが返るまでに最大で何秒待つか
この秒数が過ぎてもレスポンスが返らない場合そのリクエストはエラーになる
--file
結果ファイルの出力先
そしていろいろ不自由な私がパラメータの勘所などを記述してみる
#blockquote(){
--low_rate --high_rate
この2つを同じ数字にすればテストを1周のみで終わらせられる。
--rate_step
↑の数字を変えながら何周もテストする場合に使える。
自分の場合は様子見ながら手動でやるのであんまり意味無いかも。
↑の数字が2つ同じなら、これは設定しなくて良い。
--num_conn
これかconst_test_timeでリクエスト数などが決まるので最も重要な数字。
--num_call
通常は1で、KeepAlive時の性能を確かめる場合には任意の数字で。
--const_test_time
--num_connとどちらかその時に適した方を使う。
--timeout
何秒以内にレスポンスが欲しいかを記述するのが良いかと。

httperfの結果表示は以下の様な感じになる。
manから丸パクりですが。
Total: connections 30000 requests 29997 replies 29997 test-duration  299.992s

Connection rate: 100.0 conn/s (10.0 ms/conn, <=14 concurrent connections)
Connection time [ms]: min 1.4 avg 3.0 max 163.4 median 1.5 stddev 7.3
Connection time [ms]: connect 0.6
Connection length [replies/conn]: 1.000

Request rate: 100.0 req/s (10.0 ms/req)
Request size [B]: 75.0

Reply rate [replies/s]: min 98.8 avg 100.0 max 101.2 stddev 0.3 (60 samples)
Reply time [ms]: response 2.4 transfer 0.0
Reply size [B]: header 242.0 content 1010.0 footer 0.0 (total 1252.0)
Reply status: 1xx=0 2xx=29997 3xx=0 4xx=0 5xx=0

CPU time [s]: user 94.31 system 205.26 (user 31.4% system 68.4% total 99.9%)
Net I/O: 129.6 KB/s (1.1*10^6 bps)

Errors: total 3 client-timo 0 socket-timo 0 connrefused 3 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0
全体的に特に分かりにくい箇所は無いと思うが、個人的に引っかかった部分を記載
stddev
処理結果のバラつき(標準偏差)
これがあまりにも大きい場合はWebサーバが安定していないかも。
Reply time
リクエストを送った瞬間からレスポンスが返った瞬間までの平均時間(ms)
connreset
KeepAliveがOffなのに--num_callを1以外にするとこのエラーになりました。
fd-unavail
クライアントのリソースが足りない場合にこのエラーになるらしい。
CPUやメモリだけではなく、作れるTCPソケット数の制限も気にする必要がある。
クライアントの性能限界以上のテストをしたい場合は次回書くautobench_adminを使うことになる。
単発で使うならabの方が分かりやすいですな。

  • 最終更新:2016-01-27 10:02:45

このWIKIを編集するにはパスワード入力が必要です

認証パスワード