How to tune Linux kernel for 10 Gig interface

centos7
kernel
tcp
networking
sysadmin

#1

Hey does anyone have a way to configure A Centos Linux 7 box to have faster transfer speed?

I’ve set up nic teaming, and lacp. I’ve looked up Some kernel settings but not sure how to adjust, to best fit my system.

The driver for the 10gig interfaces is i40e (Intel Network Adapter Driver for PCIe 40 Gigabit Ethernet Network Connections Under Linux). My Box is CentOS Linux version 7.5.
Any one have a tool that can be used ?


#2

Hi,

I don’t know much about it but one can add the following in /etc/sysctl.conf file:

# Maximum receive socket buffer size
net.core.rmem_max = 134217728 

# Maximum send socket buffer size
net.core.wmem_max = 134217728 

# Minimum, initial and max TCP Receive buffer size in Bytes
net.ipv4.tcp_rmem = 4096 87380 134217728 

# Minimum, initial and max buffer space allocated
net.ipv4.tcp_wmem = 4096 65536 134217728 

# Maximum number of packets queued on the input side
net.core.netdev_max_backlog = 300000 

# Auto tuning
net.ipv4.tcp_moderate_rcvbuf =1

# Don't cache ssthresh from previous connection
net.ipv4.tcp_no_metrics_save = 1

# The Hamilton TCP (HighSpeed-TCP) algorithm is a packet loss based congestion control and is more aggressive pushing up to max bandwidth (total BDP) and favors hosts with lower TTL / VARTTL.
net.ipv4.tcp_congestion_control=htcp

# If you are using jumbo frames set this to avoid MTU black holes.
net.ipv4.tcp_mtu_probing = 1

Read more:

  1. Taken from https://darksideclouds.wordpress.com/2016/10/10/tuning-10gb-nics-highway-to-hell/
  2. Download Tuning 10Gb network cards on Linux (191.5 KB)