スイッチをギガビット化

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