Interface queue lengths
txqueuelen parameter of an interface in the Linux kernel. It limits the number of packets in the transmission queue in the interface's device driver. In 2.6 series and e.g., RHEL3 (2.4.21) kernel, the default is 1000. In earlier kernels, the default is 100. '100' is often too low to support line-rate transfers over Gigabit Ethernet interfaces, and in some cases, even '1000' is too low.
For Gigabit Ethernet interfaces, it is suggested to use at least a
txqueuelen of 1000. (values of up to 8000 have been used successfully to further improve performance), e.g.,
If a host is low performance or has slow links, having too big
txqueuelen may disturb interactive performance.
net.core.netdev_max_backlog defines the queue sizes for received packets. In recent kernels (like 2.6.18), the default is 1000; in older ones, it is 300. If the interface receives packets (e.g., in a burst) faster than the kernel can process them, this could overflow. A value in the order of thousands should be reasonable for GE, tens of thousands for 10GE.
- Yee-Ting Li has published a Web page on the <i>Effect of TxqueueLen on High Bandwidth Delay Product Network (DataTAG)</i> which illustrates the problem nicely.
- CERN's Linux gigabit tuning and LBL's Linux tuning describe receive queue tuning.
– Main.SimonLeinen - 06 Jan 2005
-- Main.PekkaSavola - 17 Nov 2006