近期,发现WEB服务器netstat-nap时,超多TIME_WAIT状态的连接,每台WEB超过2万,峰值超4万;导致服务响应变慢;WEB服务器跑的是PHP程序,这些程序需要调用后端的MemCache,mysql,Redis,mongodb以及后端的http接口服务,其中MemCache、http接口服务的调用量相对较大;根据BAIDU的..
分类:
其他好文 时间:
2015-11-26 13:20:24
阅读次数:
202
上周,在我们进行性能测试的时候,发现了一个问题。我们的服务器上启了一个redis服务端,侦听0.0.0.0的1234端口,同处在本机的另外一个进程会频繁发起到该服务端的短连接,结果导致了两个问题:1.大量的TIME_WAIT状态的连接;2.发起连接的进程的CPU占用率接近100%。这两个结果..
分类:
其他好文 时间:
2015-09-28 06:34:20
阅读次数:
195
TIME_WAIT状态原理 ---------------------------- 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。 客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(...
分类:
其他好文 时间:
2015-09-22 00:13:18
阅读次数:
292
一个TCP/IP连接断开以后,会通过TIME_WAIT的状态保留一段时间,时间过了才会释放这个端口,当端口接受的频繁请求数量过多的时候,就会产生大量的TIME_WAIT状态的连接,这些连接占着端口,会消耗大量的资源。面对这种情况可以通过修改TCP/IP的内核参数,来及时的处理这些状态。n..
分类:
其他好文 时间:
2015-09-10 17:36:56
阅读次数:
121
2MSL TIME_WAIT状态存在的理由: TIME_WAIT状态的存在有两个理由:(1)让4次握手关闭流程更加可靠;4次握手的最后一个ACK是是由主动关闭方发送出去的,若这个ACK丢失,被动关闭方会再次发一个FIN过来。若主动关闭...
分类:
其他好文 时间:
2015-09-09 09:51:31
阅读次数:
236
TIME_WAIT状态TCP要保证在所有可能的情况下使得所有的数据都能够正确被投递。当关闭一个 socket 连接时,主动关闭一端的 socket 将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态。当一个socket关闭的时候,是通过两端互发信息的四次握手过程完成的,当一端调用cl...
分类:
其他好文 时间:
2015-09-09 09:38:19
阅读次数:
140
TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态...
分类:
其他好文 时间:
2015-08-27 14:52:24
阅读次数:
202
随着业务量的增长,业务服务器网络压力不断增大,查看后端服务器网络连接状态,发现TIME_WAIT状态连接巨多,TIME_WAIT占用大量的连接端口不释放,影响业务服务响应速度。同时大量的每个TCP连接都各自有个数据结构,叫TCPControlBlock.Time_wait的时候这个数据结构没有被释放。..
分类:
其他好文 时间:
2015-08-11 19:13:19
阅读次数:
256
做过Linux平台性能测试的童鞋平时可能会遇到如下问题:
1、 TCP端口号不够用导致并发上不去(即与服务器端建立新连接失败)
2、 TIME_WAIT状态连接过多导致应用服务器(Nginx、Haproxy、Redis、Tomcat等)性能下降或假死
等等
我们可以通过优化系统内核参数来解决上述问题,优化步骤如下:
Linux 平台
1、 参考附件1中sysctl.conf文件替换...
分类:
系统相关 时间:
2015-08-03 11:37:15
阅读次数:
221
TIME_WAIT 客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口状态为TIME_WAIT.主动关闭的一方在发送最后一个ack后 就会进入TIME_WAIT状态停留2MSL(maxsegmentlifetime)时间 这个是TCP/IP必不可少的,也就是“解决”...
分类:
其他好文 时间:
2015-07-28 10:32:26
阅读次数:
129