ipelfでデータ転送速度測定

日経Linux 2011年3月号に、Iperfというものを使うと、ネットワーク帯域測定ができるとあったので、試してみた。もともとの記事はVPSと自宅間の転送速度を測定するということだったが、LAN内のPC間での転送速度を知りたかったからだ。

iperfについては、下記からソースコードはダウンロードできる。

gcc-c++があれば、コンパイルとインストールはできるようですが、もしパッケージの方がいいという場合は、下記から入手可能なようだ。たとえばCentOS5用のパッケージは iperf-2.0.4-1.el5.rf.i386.rpm となる。

ソースコードからのインストール手順は簡単に書くと、次のようになる。CentOSでgcc-c++のインストールをするところから書いてある。また、最初に/usr/local/src/にtar.gzアーカイブファイルがおいてある前提。この結果、/usr/local/bin/iperf へインストールされる。

sudo yum install gcc-c++
cd /usr/local/src/
sudo tar xzf iperf-2.0.5.tar.gz 
cd iperf-2.0.5
sudo ./configure
sudo make
sudo make install

これで、/usr/local/bin/ipref が用意される。なお、計測にあたっては、LANG=C sudo setup (CentOSの場合)などとして、ファイアーウォールでTCPの5001ポート(CentOSでは5001:tcp を追加)をあけておく必要がある。

まず、サーバ側は下記のようにして待機。

$ sudo /usr/local/bin/iperf -s

クライアント側は普通に実行すれば計測できる。仮想マシンから100Mbpsの有線環境で測定しましたが、遅いですね。ネットワーク転送が遅いのでギガビット環境にしたくなっているところです。

■転送速度10秒(初期値)

$ sudo /usr/local/bin/iperf -c 192.168.0.2
------------------------------------------------------------
Client connecting to 192.168.0.2, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.3 port 51525 connected with 192.168.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  48.5 MBytes  40.7 Mbits/sec

■転送速度20秒

$ sudo /usr/local/bin/iperf -c 192.168.0.2 -t 20
------------------------------------------------------------
Client connecting to 192.168.0.2, TCP port 5001
TCP window size: 62.3 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.3 port 51526 connected with 192.168.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-20.0 sec  96.2 MBytes  40.3 Mbits/sec

■転送速度20秒、5スレッド同時実行

$ sudo /usr/local/bin/iperf -c 192.168.0.2 -t 20 -P 5
------------------------------------------------------------
Client connecting to 192.168.0.2, TCP port 5001
TCP window size: 58.6 KByte (default)
------------------------------------------------------------
[  7] local 192.168.0.3 port 51532 connected with 192.168.0.2 port 5001
[  3] local 192.168.0.3 port 51528 connected with 192.168.0.2 port 5001
[  5] local 192.168.0.3 port 51530 connected with 192.168.0.2 port 5001
[  4] local 192.168.0.3 port 51529 connected with 192.168.0.2 port 5001
[  6] local 192.168.0.3 port 51531 connected with 192.168.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-20.2 sec  19.9 MBytes  8.25 Mbits/sec
[  5]  0.0-20.3 sec  12.6 MBytes  5.23 Mbits/sec
[  6]  0.0-20.3 sec  18.9 MBytes  7.78 Mbits/sec
[  7]  0.0-20.4 sec  11.5 MBytes  4.73 Mbits/sec
[  4]  0.0-20.5 sec  15.9 MBytes  6.50 Mbits/sec
[SUM]  0.0-20.5 sec  78.8 MBytes  32.3 Mbits/sec

より詳しい内容をしりたい人は、こちらを購入して読んでみてください。

ちなみに、jperfというiperfのGUI版もあるそうで、「Iperf – Browse /jperf/jperf 2.0.0 at SourceForge.net」から入手できるようだ。

ipelfでデータ転送速度測定」への2件のフィードバック

  1. EPEL便利そうですね。基本的にデフォルト環境で作業したり、必要な物はソースコードからコンパイルしていたりするので、EPELのようなアドオンリポジトリは使っていないのですが、今度使ってみます。

    自宅環境内での最適化を考えると、まずはギガですね。Thunderboltはまだまだ高くつきそうな気がします。

  2. iperf なら、EPEL を有効にして yum install iperf で一発で入りますよ!
    今なら、ギガよりも Thunderbolt な環境にするべきですw

コメントは停止中です。

同じカテゴリの記事: Linux