iperf で負荷試験メモ

iperf というネットワークベンチツールを使ってみた。

とりあえず今回は負荷試験をしたいとのことなので、帯域を指定してトラフィックを発生させる設定。

iperf を入手

iperf で調べると linux 版は見つかるものの、Windows版が見当たらない。仕方ないので「iperf windows」でぐーぐる先生に聞いたら出てきたおフランスものをダウンロードした。

http://iperf.fr/

ダウンロードしたら適当なところに解凍する。iperf.exe というのが出てくるが、これをダブルクリックしても何も起こらない。また、iperf はトラフィックを送る側(クライアント)とトラフィックを受け取る側(サーバ)を起動する必要があり、単独では計測できないので注意。

使い方

コマンドプロンプトを開いてカレントフォルダに移動して…なんて毎回やるのも面倒なので、iperf.exe と同じ場所に bat ファイルを作ってダブルクリックしたほうが楽。iperf.exe と同じ場所に iperf-s.bat とiperf-c.bat を作成して、右クリック→編集。

・iperf-s.bat (サーバ側)

ipref -s
pause

-s オプションをつけるとサーバモードで起動。

・iperf-c.bat (クライアント側)

iperf -c 192.168.1.1
pause

-c でクライアントモード起動し、トラフィックを受け取る端末(サーバ側)の IP アドレスを指定します。

まずトラフィックを受け取る側の端末(サーバ)で、iperf-s.bat をダブルクリックして実行。以下のような待受画面がでます。

C:\iperf>iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------

Windows からブロックするとか何とか怒られるかもしれないけど、許可してあげて。
オプションを指定しない場合、デフォルトでは 5001/tcp で動作します。

次に、トラフィックを送る側の端末(クライアント側)で iperf-c.bat をダブルクリックして起動します。以下のように結果が表示されれば成功です。

C:\iperf>iperf -c 192.168.1.1
------------------------------------------------------------
Client connecting to 192.168.1.1, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.2 port 1212 connected with 192.168.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.2 sec  10.5 MBytes  8.61 Mbits/sec

C:\iperf>pause
続行するには何かキーを押してください . . .


スループットが計測できました。なお、プログラムを終了するときは Ctrl + C をタイプします。

帯域を指定して負荷試験

これだけだと楽しくないので、いろいろオプションをつけてネットワークに一定の負荷をかけてみます。また、ファイアウォール環境を考慮して、NAT できるようポートを指定します。それぞれ bat ファイルを書き換えます。

・iperf-s.bat (サーバ側)

ipref -s -u -p 8080 -i 1 
pause

-u … UDP を使います
-p … 待受ポートを指定します
-i … 実行/測定結果を 1秒おきに表示します

iperf -u -c 192.168.1.1 -p 8080 -i 1 -b 2097154 -t 5
pause

-u … UDP を使います。
-p … サーバの待ち受けポートを指定します
-i … 実行/測定結果を 1秒おきに表示します
-b … 帯域幅を指定します(bps)
-t … 指定した秒数のあいだ送受信します

プロトコルとポートは iperf-s.bat と同じにすること。また、サーバアドレスより先にオプションを書くとうまく動かないかも。
ここでは利用する帯域(-b –bandwidth) を 2097154bps(2Mbps) に指定しています。

同じくサーバ側で iperf-s.bat を起動してから、クライアント側で iperf-c.bat を起動します。

C:\iperf>iperf -u -c
192.168.1.1 -p 8080 -b 2097154 -i 1 -t 5
------------------------------------------------------------
Client connecting to 192.168.1.1, UDP port 8080
Sending 1470 byte datagrams
UDP buffer size: 64.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.2 port 1208 connected with 192.168.1.1 port 8080
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   257 KBytes  2.11 Mbits/sec
[  3]  1.0- 2.0 sec   256 KBytes  2.09 Mbits/sec
[  3]  2.0- 3.0 sec   257 KBytes  2.11 Mbits/sec
[  3]  3.0- 4.0 sec   256 KBytes  2.09 Mbits/sec
[  3]  4.0- 5.0 sec   256 KBytes  2.09 Mbits/sec
[  3]  0.0- 5.0 sec  1.25 MBytes  2.09 Mbits/sec
[  3] Sent 893 datagrams
[  3] Server Report:
[  3]  0.0- 5.0 sec  1.25 MBytes  2.11 Mbits/sec   0.726 ms    0/  892 (0%)
[  3]  0.0- 5.0 sec  1 datagrams received out-of-order

C:\iperf>pause
続行するには何かキーを押してください . . .

こんなふうに表示されれば成功…だと思います。あとは秒数を 60秒とか 1800秒とか。。。(;゚д゚)ゴクリ…


カテゴリー: IT・インターネット, その他   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*