MTUを変更するには
1回の転送で送信できるデータの最大値を示す値であるMTUのサイズを変更することで、転送速度を向上させることができます。
今回はローカル環境のあるセグメントにおいて、大きなデータを取り扱うため、そのセグメントでの通信においてMTUを大きくすることで転送速度の向上を図ります。
#安定した通信環境でない場合は、MTUを大きくすると逆に転送速度が低下してしまう可能性があるため、ご利用は計画的に。
事前確認
MTUを大きくするには以下のことを確認しておいてください
- LinuxサーバのNICおよびスイッチがJumboフレーム(※1)に対応していること
※1 Jumboフレームとは、Ethernet標準の最大フレームサイズである1518Byteを超えるフレームサイズのことです。
ifconfigで一時的にMTUを変更
以下のifconfigコマンドを発行します。
# ifconfig eth0 mtu 9000
設定されたかどうかを確認するためには、
# ifconfig eth0
これでMTUが9000になっていればOKです。
MTUを固定する方法
ifconfigコマンドでMTUを変更した場合は、サーバの再起動やnetworkの再起動でデフォルト値(1500)にリセットされてしまいます。
ではこのMTUを固定するにはどうしたらよいでしょうか。
各インタフェースを起動する際に実行されるスクリプトである /etc/sysconfig/network-scripts/ifup を見ると、以下のように書いてあります。
・・・(略)
if [ -n "${MTU}" ]; then
ip link set dev ${DEVICE} mtu ${MTU}
fi
・・・(略)
${MTU}に値を設定すればよいため、/etc/sysconfig/network-scripts/ifcfg-eth0 で
MTU=9000
を追記すればサーバ再起動後もMTUを9000にすることができるようになります。
さてこれでLinux側の設定は終了です。
しかしながら、LinuxサーバのMTUが9000になっていたとしてもスイッチのMTUが1500のままだと、スイッチで1500x6にフレームが分割されてしまうため、スイッチのMTUもJumboフレームに対応させなければなりません。
今回はCISCOのL2スイッチ(Catalyst 2960)で以下の設定を追加することでJumboフレームに対応させました。
Switch(config)# system jumbo mtu 9000
設定の確認は以下のコマンドで。
Switch(config)# show system mtu
Linuxサーバとスイッチの両方を設定しなければ、頻繁に分割が発生し、転送速度を向上させることはできませんので、注意してくださいね。