Network Performance Knowledge Base

Host Tuning

Here you will find information on how to tune Linux, Mac OSX, and FreeBSD hosts connected at speeds of 1Gbps or higher for maximum I/O performance for wide area network transfers. Note that several of the tuning settings described here will actually decrease performance of hosts connected at rates of OC3 (155 Mbps) or less, such as home users.

  • Background Information Proper host tuning can lead to up to 100x performance increases. Here are the reasons why.
  • Linux Tuning This page contains a quick reference guide for Linux 2.6 tuning, TCP Tuning, NIC tuning, and more for Linux 2.6. See also in this category, the Linux Tuning Expert page and Measurement Host Tuning.
  • Mac OSX Tuning Tuning settings for Mac OSX.
  • FreeBSD Tuning Tuning settings for FreeBSD.
  • MS Windows Tuning settings for Microsoft Windows.
  • Other Operating Systems Tuning Information on Solaris and other OSes.
  • NIC Tuning Vendor specific NIC tuning information.
  • Interrupt Binding On a system with multiple 10G NICS, a 20-30% performance increase can be obtained by ensuring that the NIC driver interrupts are handled by the same CPU core as the read process/thread. This page shows you how.
  • Virtual Machines We don't have a lot of experience tuning virtual machines for network throughput, but here are a few points that people have told us. Please send us updates/corrections to the information on this page. To get the best network performance on a Linux VM running on a native Linux host, increase txqueuelen in host OS, and set all other tuning parameters in the guest OS. For more information see: KVM Tuning XEN Tuning…
  • Packet Pacing When sending from a 10G host to a 1G host, it is easy to overrun the reciever, leading to packet loss and TCP backing off. Similar problems occur when a 10G host sends data to a sub-10G virtual circuit. Methods to control the burst behavior of an application or OS can be introduced at the host.  Tools such as Linux's tc and FreeBSD's ipfw offer a robust and predictable way to introduce QoS behavior at the source of traffic, which helps avoid packet loss. Our testing on Linux has shown that…