内核参数 | 说明 |
---|---|
net.ipv4.tcp_max_syn_backlog = 2048 | 增大队列SYN最大半连接数; 对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。默认值是1024,可提高到2048。 |
net.ipv4.tcp_tw_reuse = 1 | 开启重用; 是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接,即开启重用。默认为0,表示关闭 |
net.ipv4.tcp_tw_recycle = 1 | 开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 |
net.ipv4.tcp_fin_timeout = 30 | 修改系統默认的 TIMEOUT 时间; 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。默认值为 60 秒。 |
tcp_tw_recycle打开后, 在NAT网络可能会出现connection time out错误.
ab测试tw
centos7默认允许tw 4096个
[root@n1 shell]# sysctl -a |grep tcp_max_tw_buckets
net.ipv4.tcp_max_tw_buckets = 4096
[root@n1 ~]# ab -c 1000 -n 10000 http://192.168.14.11/-c 并发
-n 总共发多少个包
nginx的
keepalive_timeout 65; 改为0测试.
[root@n1 shell]# ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'
LISTEN 3
ESTAB 3
TIME-WAIT 4096
keepalive_timeout 65;时候
参考: