- なんかネットワークが遅いから調べたい。
- あのLANケーブルひょっとして100Mbps用じゃない?1Gbpsじゃないかも。
- 試験的にネットワーク帯域を絞ったから通信速度を確認したい。
こういった時、通信する両端末にiperf3をインストールすると簡単に通信速度が分かるようになります。
目次
iperf3を使ったネットワーク速度計測
iperfサーバとiperfクライアントで通信を行い速度を計測、表示してくれます。
iperfは3になった時に下位互換がなくなり、明確にiperf3というコマンドになりました。iperf2サーバにiperf3クライアントで接続したり、その逆をすることは出来ないのでiperf3で揃えます。
今回は以下のようにCentOSに立てたiperf3サーバに、Mac、Windowsのiperf3クライアントから接続します。
-c、-sを切り替えればクライアント、サーバの変更が出来ます。
CentOSにiperf3インストール、サーバモードで起動
yumでインストールした後、5201ポートを開放。
(iperf2までは5001ポート使用でしたがiperf3では5201ポートに変更されています)
# yum install iperf3
# firewall-cmd --zone=public --add-port=5201/tcp --permanent
success
# firewall-cmd --reload
success
iperf3をサーバモードで起動。クライアントが接続してくるまで待機状態になります。
# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Windowsにiperf3インストール、クライアントモードで起動
iperf公式サイトからWindows用zipファイル(iperf-3.1.3-win64.zip)をダウンロード。
https://iperf.fr/iperf-download.php
解凍して適当なディレクトリに配置したらコマンドプロンプトを開き、クライアントモードで起動してサーバに接続します。
C:\tmp\iperf-3.1.3-win64>iperf3 -c 192.168.0.4
Connecting to host 192.168.0.4, port 5201
[ 4] local 192.168.0.5 port 55199 connected to 192.168.0.4 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 106 MBytes 891 Mbits/sec
[ 4] 1.00-2.00 sec 112 MBytes 936 Mbits/sec
[ 4] 2.00-3.00 sec 111 MBytes 931 Mbits/sec
[ 4] 3.00-4.00 sec 112 MBytes 940 Mbits/sec
[ 4] 4.00-5.00 sec 112 MBytes 942 Mbits/sec
[ 4] 5.00-6.00 sec 111 MBytes 935 Mbits/sec
[ 4] 6.00-7.00 sec 113 MBytes 944 Mbits/sec
[ 4] 7.00-8.00 sec 112 MBytes 943 Mbits/sec
[ 4] 8.00-9.00 sec 112 MBytes 937 Mbits/sec
[ 4] 9.00-10.00 sec 113 MBytes 944 Mbits/sec
[ 4] 10.00-10.05 sec 5.38 MBytes 927 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.05 sec 0.00 Bytes 0.00 bits/sec sender
[ 4] 0.00-10.05 sec 1.09 GBytes 934 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
秒間100Mバイト転送出来ているので1Gbps出ていることが確認できます。
MacOS Xにiperf3インストール、クライアントモードで起動
HomeBrewで入れる方法があるのでそちらを使います。
http://macappstore.org/iperf3/
brewコマンドが必要なのでwhich brewして出てこない場合は入れておきましょう。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brewでiperf3をインストール。
brew install iperf3
iperf3サーバに接続。古めのWiFiルータなので100Mbpsでした。
$ iperf3 -c 192.168.0.4
Connecting to host 192.168.0.4, port 5201
[ 5] local 192.168.0.203 port 60217 connected to 192.168.0.4 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 11.9 MBytes 99.4 Mbits/sec
[ 5] 1.00-2.00 sec 11.9 MBytes 99.9 Mbits/sec
[ 5] 2.00-3.00 sec 11.8 MBytes 99.0 Mbits/sec
[ 5] 3.00-4.00 sec 12.0 MBytes 101 Mbits/sec
[ 5] 4.00-5.00 sec 10.5 MBytes 87.7 Mbits/sec
[ 5] 5.00-6.00 sec 12.2 MBytes 102 Mbits/sec
[ 5] 6.00-7.00 sec 11.3 MBytes 94.6 Mbits/sec
[ 5] 7.00-8.00 sec 11.3 MBytes 95.0 Mbits/sec
[ 5] 8.00-9.00 sec 12.0 MBytes 100 Mbits/sec
[ 5] 9.00-10.00 sec 11.9 MBytes 99.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 117 MBytes 97.8 Mbits/sec sender
[ 5] 0.00-10.00 sec 117 MBytes 97.8 Mbits/sec receiver
iperf Done.
拠点間のネットワーク性能測定ができました。
2000年代初頭くらいまでは、全国に散らばるシステムだと「あの拠点はISDNで128Kbpsしか出ないからシミュレーションしておかないと」とか結構あるあるなニーズでした。
tc qdiscで帯域を絞ってiperf3で確認して疑似環境を作り、開発システムを結合テストしてみるとか。回線速度上げればいいのに、と思ったものです。
今後1Gbpsが遅いと言われる時代になっても障害原因追及には使えると思うので覚えておきたいところです。