TCP Protocol Tuning

Alveo X3522 User Guide (UG1523)

Document ID
UG1523
Release Date
2023-08-25
Revision
1.4 English

TCP performance can also be improved by tuning kernel TCP settings. Settings include adjusting send and receive buffer sizes, connection backlog, congestion control, etc.

Initial buffering settings should provide good performance. However, for certain applications, tuning buffer settings can significantly benefit throughput. To change buffer settings, adjust the tcp_rmem and tcp_wmem using the sysctl command:

Receive buffering
sysctl net.ipv4.tcp_rmem="<min> <default> <max>"
Transmit buffering
sysctl net.ipv4.tcp_wmem="<min> <default> <max>"

(tcp_rmem and tcp_wmem can also be adjusted for IPV6 and globally with the net.ipv6 and net.core variable prefixes respectively).

Typically it is sufficient to tune just the max buffer value. It defines the largest size the buffer can grow to. Suggested alternate values are max=500000 (1/2 Mbyte). Factors such as link latency, packet loss, and CPU cache size all influence the affect of the max buffer size values. The minimum and default values can be left at their defaults minimum=4096 and default=87380.