ethernet performances
/etc/sysctl.conf
カーネルパラメータの最適化
tcpのメモリサイズ等を最適化する
net.ipv4.conf.tun1.rp_filter=0
net.ipv4.conf.all.forwarding=1
net.ipv4.ip_forward=1
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.nf_conntrack_max=65635
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 5000
Ring paramter
Ring parameterと呼ばれるNICのデータの処理順に関するパラメータ
デフォルトだととても少ない(以下のコマンドで確認可能)
$ ethtool -g eno1
Ring parameters for eno1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
増加させるには以下のコマンドが必要
$ sudo ethtool -G eno1 rx 4096 tx 4096
参考
- https://fasterdata.es.net/host-tuning/linux/nic-tuning/
- https://alpha-netzilla.blogspot.com/2010/12/nic.html
- https://serverfault.com/questions/357799/improving-tcp-performance-over-a-gigabit-network-with-lots-of-connections-and-hi