内核参数 | 说明 |
---|---|
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;时候
参考:
Nginx设置Keep-Alive为close
超实用压力测试工具-ab工具
你所不知道的TIME_WAIT和CLOSE_WAIT
为什么TIME_WAIT这么多
linux 调优 Linux内核参数详解-说的比较容易理解
linux内核参数注释与优化
阿里云centos环境之被dos,syn攻击策略和排查方法,持续更新
IPsec VPN 服务器一键安装脚本对内核的优化
cat >> /etc/sysctl.conf <<EOF
# Added by hwdsl2 VPN script
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = $SHM_MAX
kernel.shmall = $SHM_ALL
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.$net_iface.send_redirects = 0
net.ipv4.conf.$net_iface.rp_filter = 0
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
EOF