スイッチをギガビット化
GbE対応のNICを備えたマシンが三台になったので,家のスイッチをギガビット化した. どれだけ変わるものか,before と after で測定してみた.
- スイッチ: Corega CG-SW08GTR
- ケーブル: Cat. 5e のフラットケーブル
試験環境
以下のような構成.
netperf-2.1p1 (client) netperf-2.3-4 (server)
[Windows XP] ----------------------[SW]------------------[Linux kernel 2.6.23.9]
Realtek RTL8110SB Intel Pro1000
ギガビット化以前
netperf
のサーバが動いている Linux Box のインターフェースの状態.
root@Pete:/tmp$ ethtool eth0
Settings for eth0:
....
Speed: 100Mb/s
Duplex: Full
....
netperf
での測定結果.とりあえず 100 Mbps 近くは出ている.
C:\netperf>netperf-2.1pl1.exe -H pete -l 20
TCP STREAM TEST to pete
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 8192 8192 20.00 90.97
ギガビット化以降
ギガビットスイッチに変えたあとの NIC の状態. ちゃんとスピードが '1000Mb/s' になっている.
root@Pete:/tmp$ ethtool eth0
Settings for eth0:
....
Speed: 1000Mb/s
Duplex: Full
....
netperf
の測定結果.思ったより速度が出ない.
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 8192 8192 20.00 390.39
Jumbo Frame
Corega の CG-SW08GTR は 9.7KB までの Jumbo Frame に対応しているので,これを有効にしてみる. クライアントが動いている Windows XP のドライバ設定で MTU を 7KB にすると,若干速度が改善した.
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 8192 8192 20.00 422.28
同様にサーバ側が動いている Linux マシンの MTU も 7KB に設定してみると・・・なぜか スループットが大幅に低下した.
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 8192 8192 20.00 241.22
ここ を読むと Jumbo Frame は 諸刃の剣っぽいので,使わないほうが無難だろうか.
スイッチをギガビット化してみたはいいものの,実際のスループットは400Mbps出れば良いという程度. NICもケーブルもスイッチも安物ではしかたないかも.
(追記: 2007/12/17)
Realtek のドライバが古かったので最新版に更新してみたところ,かなりパフォーマンスが向上した.
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 8192 8192 20.00 541.56