2010年10月

2010年10月31日

Angel Beatsではありません。
Apache Benchmarkです。
そういえばAngel Beats2話以降見てないなぁ。まぁいい。

Apache Benchmarkということで
HTTPの性能試験に使うツールです。
Apacheをインストールすると合わせて入るらしいです。

使い方はこんな感じ。
# ab -n <リクエスト数> -c <同時接続数> <URL>

<URL>の部分は<host>/<path>でも指定できます。
ただ、その場合<path>の部分は必須のようです。
なんですが、実は<host>/とかでも良いようです。

結果はこんな感じ。
ab -n 1000 -c 100 172.16.1.1/ [~/work/nanodayo/perf/ab]
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.16.1.1 (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.2.14
Server Hostname: 172.16.1.1
Server Port: 80

Document Path: /
Document Length: 177 bytes

Concurrency Level: 100
Time taken for tests: 2.964 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 454260 bytes
HTML transferred: 177885 bytes
Requests per second: 337.44 [#/sec] (mean)
Time per request: 296.353 [ms] (mean)
Time per request: 2.964 [ms] (mean, across all concurrent requests)
Transfer rate: 149.69 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 142 361.8 19 2029
Processing: 3 73 154.2 20 1209
Waiting: 3 54 119.7 20 883
Total: 19 215 391.6 40 2487

Percentage of the requests served within a certain time (ms)
50% 40
66% 45
75% 62
80% 323
90% 946
95% 1008
98% 1366
99% 2001
100% 2487 (longest request)


リクエスト数が151を超えると、
Completed 100 requests
のように進捗状況が出力されます。

他には認証やPOSTメソッドにも対応しているようですが
それはまた次回にでも。



nanodayo at 14:34コメント(0)トラックバック(0) 
UNIX 
最近、計測系ツールも調べています。
思えばこの手のツールをちゃんと使ったことがなかったです。

iperfはネットワークのパフォーマンスを測定するツールで
このプログラム一つでサーバにもクライアントにも出来ます。

サーバとして使う場合は
# iperf -s -p <待ち受けポート>

のように実行する。

クライアントとして実行する場合は
# iperf -c <サーバのアドレス> -p <サーバのポート> -t <測定時間>

のように実行します。
測定時間の単位は秒です。

なお、測定時間の代わりにデータのサイズを指定することも出来ます。
両方で指定した場合は後ろにつけた方が優先されるようです。
# iperf -c <サーバのアドレス> -p <サーバのポート> -n <データサイズ>

サイズを指定できます。何も付けないとByte単位、KでKByte、MでMByte単位になります。
指定自体は自由にできますが、8KByteの倍数に調整されるようです。
#defaultのバッファサイズが8KByteなため

他には-uでUDPになります。

出力結果はこんな感じ。
# iperf -c 127.0.0.1 -p 10000 -n 1M -u
------------------------------------------------------------
Client connecting to 127.0.0.1, UDP port 10000
Sending 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[1828] local 127.0.0.1 port 4587 connected with 127.0.0.1 port 10000
[ ID] Interval Transfer Bandwidth
[1828] 0.0- 1.3 sec 167 KBytes 1.04 Mbits/sec
[1828] Server Report:
[1828] 0.0- 1.3 sec 167 KBytes 1.04 Mbits/sec 0.000 ms 0/ 116 (0%)
[1828] Sent 116 datagrams


また-iで途中経過を出力することができて、間隔を指定できます。
単位は秒単位です。0.5とかやると1秒より短く出来ますが
0.5秒が最小のようです。

# iperf -c 127.0.0.1 -p 10000 -n 1M -i 0.05 -u
WARNING: interval too small, increasing from 0.05 to 0.5 seconds.
------------------------------------------------------------
Client connecting to 127.0.0.1, UDP port 10000
Sending 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[1828] local 127.0.0.1 port 4625 connected with 127.0.0.1 port 10000
[ ID] Interval Transfer Bandwidth
[1828] 0.0- 0.5 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 0.5- 1.0 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 1.0- 1.5 sec 63.2 KBytes 1.03 Mbits/sec
[1828] 1.5- 2.0 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 2.0- 2.5 sec 63.2 KBytes 1.03 Mbits/sec
[1828] 2.5- 3.0 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 3.0- 3.5 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 3.5- 4.0 sec 63.2 KBytes 1.03 Mbits/sec
[1828] 4.0- 4.5 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 4.5- 5.0 sec 63.2 KBytes 1.03 Mbits/sec
[1828] 5.0- 5.5 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 5.5- 6.0 sec 63.2 KBytes 1.03 Mbits/sec
[1828] 6.0- 6.5 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 6.5- 7.0 sec 64.6 KBytes 1.06 Mbits/sec
[1828] 7.0- 7.5 sec 63.2 KBytes 1.03 Mbits/sec
[1828] 0.0- 8.0 sec 1.00 MBytes 1.05 Mbits/sec
[1828] Server Report:
[1828] 0.0- 8.0 sec 1.00 MBytes 1.05 Mbits/sec 0.000 ms 0/ 714 (0%)
[1828] Sent 714 datagrams


その他、バッファサイズなども指定できますが
今回は基本的な部分だけで。

結果を取り出して、グラフ用の値にする方法も考えていますが
第一段階としてはgrep secしておけば良さそうです。



nanodayo at 12:40コメント(6)トラックバック(0) 
UNIX 

2010年10月06日

2010/10/06 13:29:11 @ マクドナルド 相模原古淵店

マクドナルド 相模原古淵店にタッチ!

住所:神奈川県相模原市南区古淵6-3-12



nanodayo at 13:29 
ライフログ | ロケタッチ