php 连接mysql 大量time_wait,nginx服务器如何减少大量的处于TIME_WAIT连接

如果应用的nginx服务器出现大量的time_warit连接,服务器的资源会被大量消耗,服务器的响应速度就会变慢,如何减少大量的处于TIME_WAIT连接?

9a3144521ddeb8941a6472532d8c5836.gif

查看服务器TCP链接的状态

通用命令

netstat -an | grep :443 | grep -v TIME_WAIT | wc -l

netstat -an | grep :443 | grep ESTABLISHED | wc -l

查看所有的状态

netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c

67 CLOSING

727 ESTABLISHED

173 FIN_WAIT1

183 FIN_WAIT2

19 LAST_ACK

5 LISTEN

447 SYN_RECV

1 SYN_SENT

27970 TIME_WAIT

动态查看某个状态

watch -n 1 "netstat -nt | grep TIME_WAIT | wc -l"

TIME_WAIT连接优化

通过以上命令如果发现大量的time_wait连接,需要优化相关的TCP连接参数。

启用套接字重用默认情况下,Linux从临时端口范围中选择一个端口,默认情况下,端口范围是32768至61000。除非已设置SO_REUSEADDR标志,否则关闭后的一段时间内,已绑定的TCP本地套接字地址不可用。使用此标志时应小心,因为它会使TCP可靠性降低。为了避免等待关闭的套接字并启用它们,请通过在文件/etc/sysctl.conf中添加以下行,来设置tcp_tw_reuse sysctl来启用TIME_WAIT套接字的重用

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_fin_timeout=10

还可以适当修改tcp_fin_timeout值

5.0

01

Post Views:

621

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值