Network setup - device queue length

This test shows the impact on network throughput when increasing the device queue length.

The Linux® parameter net.core.netdev_max_backlog is one of the TCP/IP tuning parameters that controls the number of received packets that can be queued on Linux for a network interface. This parameter is a system-wide parameter, and influences the receive behavior for all interfaces. This parameter can be modified dynamically with the syntax:
sysctl -w net.core.netdev_max_backlog=2000 

This parameter can also be modified permanently in the /etc/sysctl.conf file.

The default value for this parameter on Novell SLES 10 is 1000. The experience is that a larger value improves the performance of many applications. Figure 1 shows the impact on the transaction throughput when increasing this parameter from the default of 1000 to 2000 and then 2500.
Figure 1. Normalized transaction throughput when scaling the device queue length of the network devices
Bar graph showing the impact on normalized transaction throughput when changing the device queue length from the default value of 1000 bytes, to 2000 and 2500 bytes. The x-axis has bars for the three device queue length values. The y-axis has the normalized transaction throughput in percentage, ranging from 0% to 140%. For the default device queue length of 1000, the value is 100%. For a device queue length of 2000, the value is 139%. For a device queue length of 2500, the value is 130%.

Observation

Increasing the device queue length from 1000 to 2000 leads to a throughput improvement of approximately 40%. Increasing the device queue length further, to 2500, results in a moderate throughput degradation.

Conclusion

The device queue length is an important tuning parameter. An improvement of approximately 40% is a very high value. But the observation that there is a size that is too large, resulting in degradation, indicates the need for careful usage of this parameter. Increasing this parameter is best done in combination with monitoring of the network or transaction throughput.