While performing some network throughput testing, I wanted to see how much additional throughput could be gained by using Ethernet jumbo frames. Before beginning my testing, I checked the compatibility matrix to make sure my switch (Cisco Catalyst) and NIC (Sun CE gigabit Ethernet adaptor) supported jumbo frames. Once I knew jumbo frames were supported, I logged into my Solaris server and used the ndd(1m) and ifconfig(1m) utilities to enable jumbo frame support on ce instance 0:
$ ifconfig ce0 unplumb
$ ndd -set /dev/ce instance 0
$ ndd -set /dev/ce accept-jumbo 1
$ ifconfig ce0 plumb
The ce device drivers “accept-jumbo” option will enable jumbo frames and instruct the upper layer protocols that the device is capable of processing jumbo frames. The documentation indicates that some older releases of Solaris will not set the mtu (maximum transmission size) when jumbo frame support is enabled. When these conditions occur, the ifconfig(1m) utility can be used to increase the MTU to a higher value:
$ ifconfig ce0 inet 1.2.3.4 netmask 255.255.255.0 mtu 9194
The ndd(1m) and ifconfig(1m) configuration will not be persisted through system reboot. To make the configuration persistent, the ce device drivers configuration file (ce.conf) needs to be updated to enable jumbo frame support (this is documented in the ce device driver manual) when the device driver is initialized at system boot time. In addition to configuring the host to support jumbo frames, the Ethernet switch port that will be passing jumbo frames needs to be configured*. To enable jumbo frames on a CatOS-based Cisco switch, “set port jumbo” can be executed in privileged exec mode:
switch1> (enable) **set port jumbo 1/1 enable**
Jumbo frames enabled on port 1/1.
To verify that jumbo frames were enabled, “show port” can be run:
switch1> (enable) **show port jumbo**
Jumbo frames MTU size is 9216 bytes.
Jumbo frames enabled on port(s) 1/1.
From my limited testing, jumbo frames make a significant difference with backup throughput. If I get time, I will post the ttcp output, and the list of reasons for not enabling jumbo frames (the list of reasons not to use jumbo frames is somewhat lengthy!).
From what I can tell from the available documentation, very few vendors enable jumbo frames by default for compatibility reasons.