最近のパソコンでは、ほぼすべてギガビットイーサネット対応になっているので、そろそろジャンボフレームを有効にしちゃおうかな、と思って・・・あれ?と思うことが。
ASUSのとあるマザーボードで、FreeBSDだと、if_reというドライバを使うのですが、
ifconfig re0 mtu 9000
とかやってもエラーになるので、変だと思い、マニュアルを見てみますと
RE(4) FreeBSD Kernel Interfaces Manual RE(4)
NAME
re -- RealTek 8139C+/8169/816xS/811xS/8101E PCI/PCIe Ethernet adapter driver
~ 略 ~
The 8169, 8169S and 8110S also support jumbo frames, which can be configured via the interface MTU setting. The MTU is limited to 7422, since the chip cannot transmit larger frames. Selecting an MTU larger than 1500 bytes with the ifconfig(8) utility configures the adapter to receive and transmit jumbo frames.
ここに名前が載っていないネットワークコントローラだったので、ジャンボフレームが使えない、というオチでした。
う~ん、昔、安いギガビットスイッチングハブで、ジャンボフレームが使えないというのはありましたが、NIC側で対応していなかったとは・・・
☆
ほかにも、たとえば、if_aleだと
The AR8121 also supports Jumbo Frames (up to 8132 bytes), which can be configured via the interface MTU setting.
という具合で、サイズが若干小さめ、とかいう場合もあったりしました。
☆
MTUは、ifconfigで変更するだけでなく、routeコマンドでも変更する必要があるようです。経路ごとにMTUを記憶する仕組みになっているから。
たとえばこんな感じ。
現在の設定を調べるには:
% route get -net 192.168.0.0/24
route to: 192.168.0.0
destination: 192.168.0.0
mask: 255.255.255.0
interface: re0
flags: <UP,DONE,CLONING>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 -6467496
MTUの設定を変更するには:
# route change -net 192.168.0.0/24 -mtu 9000
change net 192.168.0.0
# route get -net 192.168.0.0/24
route to: 192.168.0.0
destination: 192.168.0.0
mask: 255.255.255.0
interface: re0
flags: <UP,DONE,CLONING>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 9000 -10
元に戻しておきますね[E:coldsweats01]
# route change -net 192.168.0.0/24 -mtu 1500
change net 192.168.0.0
☆
ざっくり速度を調べてみましたが、劇的に速くなるわけじゃないですねぇ、やっぱり。
昔、ワークステーションで計測したときと、あまり変わらなかったです。
ところで、近頃、iSCSIをたまにお試し程度に使ってみているんですが、あれ~?っていうような速度だったりすることも。
写真は本文とは関係ありません。
0 件のコメント:
コメントを投稿