Linux一些TCP调优笔记 一般用于NAT

分类:技术 2.57k浏览

部分服务器需要用到,任何的TCP/IP调优参数都位于/proc/sys/net/目录。

一、数据接收缓冲

[root@localhost ~]# cat  /proc/sys/net/core/rmem_max

212992

[root@localhost ~]# cat  /proc/sys/net/core/wmem_max

212992

[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_timestamps

1

[root@localhost ~]# cat  /proc/sys/net/ipv4/tcp_sack

1

[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_window_scaling

1

参考文献:

https://blog.csdn.net/qiushanjushi/article/details/42743211
http://blog.chinaunix.net/uid-7177878-id-127435.html

二、高并发网络优化(连接跟踪表)

proc/sys/net/ipv4/netfilter/ip_conntrack_max 改大到 268435456 默认只有65536 (这个就是连接跟踪表,一味的改大反而会增加系统的负载,一般来讲默认值也够,正确的优化方向是加快连接的关闭释放资源,我这只是在优化初期临时改大。注意/proc/sys/net/ipv4/ip_conntrack_max的值要大于这个值)

6.echo 1800″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
默认确立连接会在5天后失效,改为半小时后失效,减少ip_conntrack的有效连接数量。

7.echo 1 > /proc/sys/net/ipv4/tcp_syncookies
防范SYN DDOS攻击,打开TCPsyncookies,CENTOS4以上的内核是支持的。

8.echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
SYN列队长度,不要设置太高,会消耗相应的内存。

9.echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
SYN重试次数。

10.echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
SYN重试次数。

默认

[root@localhost ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

432000

[root@localhost ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max

65536

[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_synack_retries

5

参考修改为:

echo “134217728” >/proc/sys/net/ipv4/netfilter/ip_conntrack_max

echo “1800” > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

echo “2048” > /proc/sys/net/ipv4/tcp_max_syn_backlog

echo “3” > /proc/sys/net/ipv4/tcp_syn_retries

echo “3” > /proc/sys/net/ipv4/tcp_synack_retries

参考文献:https://www.cnblogs.com/wuchanming/p/4028341.html

三、Ring Buffer (溢出也会导致丢包或不稳定)

如:

ethtool -S eth1|grep rx_fifo

 rx_fifo_errors: 150957

发生很多错误。

修改方案:

[root@localhost ~]# ethtool -g eth1

Ring parameters for eth1:

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

[root@localhost ~]# ethtool -G eth1 rx 4096 tx 4096  //设置为最大

[root@localhost ~]# ethtool -g eth1

Ring parameters for eth1:

Pre-set maximums:

RX:             4096

RX Mini:        0

RX Jumbo:       0

TX:             4096

Current hardware settings:

RX:             4096

RX Mini:        0

RX Jumbo:       0

TX:             4096

参考文献:https://www.cnblogs.com/276815076/p/5736272.html