客户端的状态可以用如下的流程来表示:(实线)CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED服务器的状态可以用如下的流程来表示:(虚线)CLOSED->LISTEN->SYN收到->ESTABLISHED...
分类:
其他好文 时间:
2015-09-20 17:31:17
阅读次数:
112
web服务器都提供长连接的方式,所谓长连接就是客户端一次请求完后,不关闭连接,保持一段时间的连接,下次此客户端再次请求时,不用创建新连接,复用所保持的连接即可。从理论上,长连接可以免去大量建立和关闭连接的资源消耗,但同时也有大量连接被占用的代价。因此可以初步判断长连接比短连接能带来更高的TPS,更低...
分类:
Web程序 时间:
2015-09-16 23:22:17
阅读次数:
270
一个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
是很经典的领导者追随者模型,因为不想命名太长,就叫xpool。多个工作线程同时accept竞争一个可用的连接,拿到连接后就自己进行处理。accept这个地方加了锁是为了避免低版本内核上出现惊群效应. 一般认为在短连接的时候效果比较好,但如果同一时候连接数过多会造成没有工作线程与客户端进行连接,客户端...
分类:
其他好文 时间:
2015-09-08 12:04:21
阅读次数:
162
参考来源:http://kerry.blog.51cto.com/172631/105233/ 简要说明1 Mysql连接使用后没有调用close函数. 参数调优参考: 调整内核参数 vi /etc/sysctl.conf 编辑文件,加入以下内容: net.ipv4.tcp_syncookies = ...
分类:
其他好文 时间:
2015-09-01 11:00:45
阅读次数:
159
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。在服务器的日常维护过程中,会...
分类:
其他好文 时间:
2015-08-27 14:54:12
阅读次数:
218
TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态...
分类:
其他好文 时间:
2015-08-27 14:52:24
阅读次数:
202
减少TIME_WAIT连接状态。网络上已经有不少相关的介绍,大多是建议:shell> sysctl net.ipv4.tcp_tw_reuse=1shell> sysctl net.ipv4.tcp_tw_recycle=1注:通过sysctl命令修改内核参数,重启后会还原,要想持久化可以参考前面的...
分类:
其他好文 时间:
2015-08-26 15:16:33
阅读次数:
142