10Gbps LANの速度を測る
前回の記事の続き。
Cat6aのLANケーブルを自分で壁内に敷設したのはいいものの、終端処理なども自分でやっているので実際に期待した通りの通信速度が出ているのか不安である。というわけで実際に測ってみた。
環境整備
本当はケーブル敷設後すぐに測定したかったのだが、いろいろとハードルがあった。常用しているパソコンはMacBookPro 2016年モデルであるがこれにはそもそもLANケーブルの口はついていない。USB-Cに刺さるLANアダプタはたくさん売られているが、ほとんどは1000BASE-T(1Gbps)までしか対応していない。10G対応のものとなると2万円以上もする高価なものしかない。テストするためにはさらに通信先となるもう一つの端末も必要で、そいつにも10G対応のLANの口がついていなければならない。
2020年時点では10Gの速度が日常的に必要になることはあまりないので、テストのためだけに10G対応パーツを買いそろえるのが無駄な出費のように思えて躊躇していた。
そんなこんなで半年以上何もせず放置していたのだが、最近になって写真やら音楽のデータを整理するためにNASの運用を始めることにした。動画データなどもここに置くことにしたので、ここは速度が必要だろうということにして10Gの環境をある程度そろえることに踏み切った。
MacBookPro側はOWCのアダプタを買った。
通信テストの対向側となるマシン(NASになる予定のやつ)は2011年ごろ(たぶん)に組み立てたものの最近は物置部屋で眠っていた自作のLinuxマシンをひっぱり出すことにした。10年近く前のマシンであるがマザボの型番を調べてみるとPCIe(Gen2)のスロットがついている。10Gbps対応のNICを買ってつければ動きそうということで、ASUSのXG-C100Cというやつをドスパラで購入した。
測定
というわけで、10Gのインターフェースが2つそろったので実際に通信して速度を測る。前回の記事で通したCat6aのケーブルを通して2台のPCを直結して測定。
てきとうにファイルを転送して速度を見てもいいのだが、それだとほとんどのケースでディスクI/Oがボトルネックになると思われる。今回は自分で敷設したCat6aのケーブルがちゃんと動くかどうかを見たいので、限界近くまで負荷をかけたいということでベンチマークソフトを調べてみた。
ざっとググるとiperf3というのがいいらしい。macOSならhomebrewでサクッとインストールできる。
brew install iperf3
Linuxでもほとんどのディストリビューションにパッケージが用意されている模様。今回のマシンはUbuntuなのでaptでこれまたサクっとインストールできた。
apt install iperf3
いろいろオプションがあるようだが、とりあえず一番シンプルなやり方は、受信側のマシンで`-s`オプションをつけてiperf3を起動しておいて、送信側のマシンから`-c <受信側のip address>`とやればよいみたい。
Ubuntuを受信側にして測定
➜ ~ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.104, port 52675
[ 5] local 192.168.1.2 port 5201 connected to 192.168.1.104 port 52676
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.09 GBytes 9.33 Gbits/sec
[ 5] 1.00-2.00 sec 1.09 GBytes 9.38 Gbits/sec
[ 5] 2.00-3.00 sec 1.09 GBytes 9.37 Gbits/sec
[ 5] 3.00-4.00 sec 1.09 GBytes 9.36 Gbits/sec
[ 5] 4.00-5.00 sec 1.09 GBytes 9.38 Gbits/sec
[ 5] 5.00-6.00 sec 1.09 GBytes 9.38 Gbits/sec
[ 5] 6.00-7.00 sec 1.09 GBytes 9.38 Gbits/sec
[ 5] 7.00-8.00 sec 1.09 GBytes 9.36 Gbits/sec
[ 5] 8.00-9.00 sec 1.09 GBytes 9.37 Gbits/sec
[ 5] 9.00-10.00 sec 1.09 GBytes 9.38 Gbits/sec
[ 5] 10.00-10.00 sec 2.17 MBytes 9.33 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 10.9 GBytes 9.37 Gbits/sec receiver
なんとなく9.3Gbpsぐらいは出ている。10Gbpsには到達していないもののひとまず満足。
Macを受信側にして測定
➜ ~ iperf3 -c 192.168.1.104
Connecting to host 192.168.1.104, port 5201
[ 5] local 192.168.1.2 port 44340 connected to 192.168.1.104 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.02 GBytes 8.77 Gbits/sec 114 1.57 MBytes
[ 5] 1.00-2.00 sec 1.05 GBytes 9.06 Gbits/sec 0 2.00 MBytes
[ 5] 2.00-3.00 sec 1.05 GBytes 9.05 Gbits/sec 17 1.88 MBytes
[ 5] 3.00-4.00 sec 1.05 GBytes 9.00 Gbits/sec 77 1.81 MBytes
[ 5] 4.00-5.00 sec 1.06 GBytes 9.12 Gbits/sec 0 2.00 MBytes
[ 5] 5.00-6.00 sec 1.05 GBytes 9.05 Gbits/sec 106 1.88 MBytes
[ 5] 6.00-7.00 sec 1.05 GBytes 9.04 Gbits/sec 0 2.01 MBytes
[ 5] 7.00-8.00 sec 1.05 GBytes 9.00 Gbits/sec 93 1.85 MBytes
[ 5] 8.00-9.00 sec 1.05 GBytes 9.05 Gbits/sec 31 1.79 MBytes
[ 5] 9.00-10.00 sec 1.05 GBytes 9.04 Gbits/sec 0 2.01 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 10.5 GBytes 9.02 Gbits/sec 438 sender
[ 5] 0.00-10.00 sec 10.5 GBytes 9.01 Gbits/sec receiver
Ubuntuが受信側だったときよりも若干速度が落ちているもののだいたい9Gbpsは出ているのでまあよし。
というわけでだいたい10Gbpsの環境となった我が家であった。