Tcp segmentation offload (tso), Flow control – Dell Emulex Family of Adapters User Manual

Page 869

Advertising
background image

Emulex Drivers Version 10.2 for Linux User Manual

P010081-01A Rev. A

3. Configuration

Network Performance Tuning

869

echo 64000000 > /proc/sys/net/core/rmem_max

echo 32000000 > /proc/sys/net/core/wmem_default

echo 32000000 > /proc/sys/net/core/wmem_max

These settings assume ideal conditions such as low latency, zero (or close-to-zero)

packet loss in the network, enough free memory, and 10 Gb/s path-to-peer system.
These tcp_rmem and tcp_wmem values are also the default values in recent RHEL 5

distributions. If your application requires best throughput with very small number of

connections (less than four), it may help to increase the tcp_rmem and tcp_wmem to

much larger values:

echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_rmem

echo 4096 65536 16777216 > /proc/sys/net/ipv4/tcp_wmem

TCP Segmentation Offload (TSO)

In low-loss networks, TSO considerably improves performance, and therefore must be

enabled. TSO is enabled by default in the OneConnect network driver.
The /proc/sys/net/ipv4/tcp_tso_win_divisor process variable controls how

aggressive the network stack can be in making TSO requests. For low-loss networks,

Emulex recommends TSO divisor values in the range of 2 to 16. In most distributions,

the default value of 3 seems to be the optimal choice for a no-loss network.
Smaller divisor values result in larger TSO chunks and better throughput, as well as

better CPU utilization. However, if the receiver or the network is dropping frames (too

many re-transmits on the transmit side as indicated by netstat -st), it may help to make

TSO chunks smaller (by increasing the divisor value) or to turn TSO off. For example, to

set the divisor level to a value of 8, run

echo 8 > /proc/sys/net/ipv4/tcp_tso_win_divisor

To turn TSO on or off, run one of the following ethtool commands:

ethtool -K eth<N> tso on

ethtool -K eth<N> tso off

where eth<N> is the name of the Ethernet device you are working on (for example,

eth0).

Flow Control

The OneConnect adapters and LPe16202 CFAs in NIC mode support IEEE 802.3x

standard flow control, which uses control packets to temporarily pause the

transmission of packets between two endpoints. These control messages are

point-to-point, and are not forwarded by switches or routers. The adapter can respond

to flow control packets by temporarily pausing transmits. The adapter can send flow

control pause packets when the transmitter is overwhelming the system’s receive

bandwidth.
Flow control can greatly improve performance, as described in the following examples:

The adapter is installed in 4x PCIe slot or an underpowered server system.

Advertising