fasterdata.es.netfasterdata.es.netESnet 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.
  • UDP Tuning Since current network interface cards do not have hardware support for UDP acceleration the way they do for TCP, it is even more inportant to tune the host and application for UDP-based tools such as UDR or Aspera. Packet size The optimal data payload size is the MTU size minus IP and UDP header size, or 1472 for a 1500 byte MTU and 8972 for a 9000 byte MTU. The use of Jumbo frames for UDP typically improves performance by about 5x. See https://kb.wisc.edu/ns/page.php?id=9777 for more…
  • 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…