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过多的主要内容,如果未能解决你的问题,请参考以下文章