(1): 排除SYN 干扰:
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_syncookies=1
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_synack_retries=2
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_syn_retries=2
(2):查看系统tcp_keepalive 状态:
[root@leysin02 ~]# sysctl -a|grep tcp_keepalive
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_time = 1800
经过调试,LAST_ACK 明显下滑了不少。
[root@leysin02 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 906
SYN_RECV 73
ESTABLISHED 579
FIN_WAIT1 116
FIN_WAIT2 3
TIME_WAIT 7
CLOSING 12
加速处理那些等待ACK的LAST_ACK,减少等待ACK的LAST_ACK的重试次数
tcp_retries2:在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_retries2=3
net.ipv4.tcp_retries2 = 3
[root@leysin02 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 1451
SYN_RECV 71
ESTABLISHED 673
FIN_WAIT1 161
FIN_WAIT2 3
TIME_WAIT 3
CLOSING 53
哦,FIN_WAIT1 也高了!!,
[root@leysin02 ~]# sysctl -a |grep tcp_fin_timeout
net.ipv4.tcp_fin_timeout = 60
[root@leysin02 ~]# sysctl -a |grep tcp_fin_timeout
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_fin_timeout = 30
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_orphan_retries=3
net.ipv4.tcp_orphan_retries = 3 ####这个值需要上下移动,达到合适的值
LAST_ACK 762
SYN_RECV 74
ESTABLISHED 554
FIN_WAIT1 67
FIN_WAIT2 1
CLOSING 8
TIME_WAIT 32
[root@leysin02 ~]# sysctl -w net.ipv4.tcp_orphan_retries=2
[root@leysin02 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 430
SYN_RECV 75
ESTABLISHED 603
FIN_WAIT1 43
FIN_WAIT2 5
CLOSING 2
TIME_WAIT 5