2012年1月29日

ネットワークのスループットを知るために iperf

カリフォルニアアシカ(加利福尼亜海驢、California Sea Lion) Zalophus californianus (Lesson, 1828) 動物界(Animalia) 脊索動物門(Chordata) 哺乳綱(Mammalia) ネコ目(食肉目)(Carnivora) アシカ科(Otariidae) アシカ属(Zalophus)   アドベンチャーワールドのアシカショーにて

家庭内LANのネットワークのパフォーマンスを向上させるため AirMac ExtremeのWAN側のLANを100Base-Tから1000Base-Tに経路変更を行った。その効果を確認しようと思って色々と方法を探していると、iperf というツールを利用すると実現できるそうなので早速導入。

我が家のPCは殆どUbuntuなので、sudo apt-get install iperf でさくっとインストール。バージョンを確認すると、iperf version 2.0.5 (08 Jul 2010) pthreads と表示される。情報を手繰っていくと、2008年頃に更新が止まっている(開発終了?)らしい。Ubuntuでインストールされるバージョンは本家では見つからないので???

使い方は簡単で、計測したいネットワークを跨ぐPCに iperf をそれぞれインストールし、相手先をサーバモードで、自分をクライアントモードでサーバのIPアドレスを指定して実行するだけだ。

1000Base-Tで接続したPCで計測する場合はこんな感じ。使っているスイッチングハブはアライドテレシス社製のものだがなかなか優秀なのかも。

サーバ側
$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.5 port 5001 connected with 192.168.1.50 port 52535
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.07 GBytes    921 Mbits/sec

クライアント側
$ iperf -c 192.168.1.5
------------------------------------------------------------
Client connecting to 192.168.1.5, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.50 port 52535 connected with 192.168.1.5 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.07 GBytes   922 Mbits/sec


無線LANを経由する場合は5001番ポートへのアプセスができないことがあるようなので。そういう場合は -p オプションを利用することで使用するポートを変更することができる。

サーバ側
$ iperf -s -p 8080

クライアント側
$ iperf -c 192.168.1.5 -p 8080
------------------------------------------------------------
Client connecting to 192.168.1.5, TCP port 8080
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.11 port 37019 connected with 192.168.1.5 port 8080
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  58.2 MBytes  48.6 Mbits/sec

今回、スループットを計測する主目的は Macbook のパフォーマンスアップのため。MacOS Ⅹ 用には JPerf.dmg というアプリがあるのでそれを利用。iperf3というiperfをフルスクラッチで描き直したものもある(2系への互換性もある筈なのだが、snow leopard ではサーバへの接続後にだんまり状態になってしまい利用できませんでした)。JPerfはGUIで利用できるなかなか良いソフトです。

iperf -c 192.168.1.5 -P 1 -i 1 -p 8080 -f m -t 10
------------------------------------------------------------
Client connecting to 192.168.1.5, TCP port 8080
TCP window size: 0.13 MByte (default)
------------------------------------------------------------
[  3] local 192.168.1.6 port 49418 connected with 192.168.1.5 port 8080
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  8.38 MBytes  70.3 Mbits/sec
[  3]  1.0- 2.0 sec  8.12 MBytes  68.2 Mbits/sec
[  3]  2.0- 3.0 sec  8.38 MBytes  70.3 Mbits/sec
[  3]  3.0- 4.0 sec  8.12 MBytes  68.2 Mbits/sec
[  3]  4.0- 5.0 sec  7.88 MBytes  66.1 Mbits/sec
[  3]  5.0- 6.0 sec  8.62 MBytes  72.4 Mbits/sec
[  3]  6.0- 7.0 sec  8.12 MBytes  68.2 Mbits/sec
[  3]  7.0- 8.0 sec  8.38 MBytes  70.3 Mbits/sec
[  3]  8.0- 9.0 sec  8.25 MBytes  69.2 Mbits/sec
[  3]  9.0-10.0 sec  8.38 MBytes  70.3 Mbits/sec
[  3]  0.0-10.0 sec  82.8 MBytes  69.4 Mbits/sec
Done.

我が家のMacbookは802.11nに対応していない筈なのですが、何故か802.11gの規格 58Mbpsを超える速度が出ていました。

iperfにはAndroidアプリもあるのでこれも折角なのでインストールしてスループットを確認。

Motorola Defyをサーバモードで稼動し計測
$ iperf -c 192.168.1.3 -p 8080
------------------------------------------------------------
Client connecting to 192.168.1.3, TCP port 8080
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.50 port 39768 connected with 192.168.1.3 port 8080
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  19.6 MBytes  16.5 Mbits/sec

か、かなり悲しい結果ですね。アンテナが小さいからでしょうか。

0 件のコメント: