Intel e1000 on Linux
If you're using e1000 chips (Intel 1GE, often integrated into
motherboards) the driver defaults to 256 Rx and 256 Tx
descriptors. This is because early versions of the chipset only
supported this. All recent versions have 4096, but the driver doesn't
autodetect this.
To check if you are using an e1000 driver, do this:
ethtool -i eth0
To increase the number of descriptors, add this to /etc/modprobe.conf:
alias eth0 e1000
options e1000 RxDescriptors=4096,4096 TxDescriptors=4096,4096
and then reboot.
To verify that this worked, run (as root): ethtool -g eth0
Chelsio 10Gig NIC, Linux and FreeBSD
It has been reported that both TCP Segmentation Offloading (TSO) and
TCP Offload Engine (TOE) on the Chelsio NIC radically
hurt performance on a WAN (they do help reduce CPU load without affecting throughput on a LAN).
To turn off TSO do this:
ethtool -K interface tso off
To disable TOE requires using the Chelsio "nic" driver instead of the "toe" driver.
See the README file that comes with the driver source code available at http://service.chelsio.com/
for more information.
Chelsio also provides a script called 'perftune.sh' to tune a variety
of settings on Linux.