TIME_WAIT过多

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TIME_WAIT过多相关的知识,希望对你有一定的参考价值。

Linux系统下,TCP/IP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口。当并发请求过多的时候,就会产生大量的 TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源(因为关闭后进程才会退出)。这个时候我们可以考虑优化TCP/IP 的内核参数,来及时将TIME_WAIT状态的端口清理掉

 

在下面的参数的基础上,建议优化点(/etc/sysctl.conf):

1:增大tcp_max_tw_buckets为200000

2:修改tcp_timestamps为1(这里会存在风险,当多个客户端通过NAT方式联网并与服务端交互时,服务端看到的是同一个IP,也就是说对服务端而言这些客户端实际上等同于一个,会导致丢包)

3:减小tcp_fin_timeout为30

4: 增大端口范围ip_local_port_range 

 

不过上述修改只能优化tcp的并发能力,还可以通过扩容服务器解决这个问题(目前看来,对业务体验未构成影响,单次业务数据还是可以获取的,扩容优先级可以放低)

以上是关于TIME_WAIT过多的主要内容,如果未能解决你的问题,请参考以下文章

解决time_wait过多的问题

TCP连接状态详解及TIME_WAIT过多的解决方法

linux和windows下TIME_WAIT过多的解决办法

解决TIME_WAIT过多造成的问题

time_wait 过多 造成网络慢 实战

linux 下Time_wait过多问题解决