如何修改操作系统内核参数来缩短TIME_WAIT状态TCP连接回收时间和添加TCP动态端口范围,保证在大并发场景下操作系统的端口资源可用? 修改TCP回收时间。 在Windows开始菜单中,单击“运行”。 在“运行”对话框中,输入“regedit”后按“Enter”打开注册表编辑器。 在“注册表编辑器”中打开“HKEY_LOCAL_MACHINE\SYSTEM\Curre...
大规模Windows环境下,采用Nginx反向代理服务后,操作系统会产生较多TIME_WAIT的TCP(Transmission Control Protocol)连接,操作系统默认TIME_WAIT的TCP连接回收时间是4分钟,TCP默认动态端口范围为开始端口49152,结束端口65535。这样会使回收TCP过慢导致系统吞吐量下降,甚至出现502访问失败问题。如何修改操作系统内核参数来缩短TIME...
通过上面的一次socket关闭操作,可以得出以下几点: 1) 主动关闭连接的一方 – 也就是主动调用socket的close操作的一方,最终会进入TIME_WAIT状态 ; 2) 被动关闭连接的一方,有一个中间状态,即CLOSE_WAIT,因为协议层在等待上层的应用程序,主动调用close操作后才主动关闭这条连接 ; 3) TIME_WAIT会默认等待2MSL时间后,...
TIME_WAIT 状态连接过多就会造成一些问题。如果客户端的 TIME_WAIT 连接过多,同时它还在不断产生,将会导致客户端端口耗尽,新的端口分配不出来,出现错误,tomcat也会进入假死状态。如果服务器端的 TIME_WAIT 连接过多,可能会导致客户端的请求连接失败。 4.2 TIME_WAIT相关参数调优 查看当前系统的配置 tcp_tw_reuse:...
下面我来解释一下 TIME_WAIT 状态,这些在<> 中2.6节解释很清楚了。 MSL(最大分段生存期)指明TCP报文在Internet上最长生存时间,每个具体的TCP实现 都必须选择一个确定的MSL值。RFC 1122建议是2分钟,但BSD传统实现采用了30秒。 TIME_WAIT 状态最大保持时间是2 * MSL,也就是1-4分钟。
TIME_WAIT状态维持时间 --- TIME_WAIT状态维持时间是两个MSL时间长度,也就是在1-4分钟。Windows操作系统就是4分钟。 http://www.cnblogs.com/itcomputer/p/7150954.html 上图对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻...
对于TIME-WAIT状态来说,有两个作用。 1. 人尽皆知的是,防止上一个TCP连接的延迟的数据包(发起关闭,但关闭没完成),被接收后,影响到新的TCP连接。(唯一连接确认方式为四元组:源IP地址、目的IP地址、源端口、目的端口),包的序列号也有一定作用,会减少问题发生的几率,但无法完全避免。尤其是较大接收windows size的...
TIME_WAIT状态持续时间是2MSL(在我的下一篇博客中会讲解)时间,大概是1~4分钟,windows操作系统就是4分钟。 下面我们来进一步讨论这个问题: 客户端主动关闭连接 注意一个问题,进入TIME_WAIT状态的一般情况下是客户端。大多数服务器端一般执行被动关闭,服务器不会进入TIME_WAIT状态。当在服务器端关闭某个服务再重启时...
主动关闭的一端为了应对(因最后的FIN或ACK丢失导致的)超时重传,而进入TIME_WAIT阶段以备超时重传。最终目的是为了正常关闭全双工的连接 4.3.2 使过时的重复报文段失效 设置TIME_WAIT状态的第二个原因是为让过时的重复报文段失效。TCP协议的运行基于一个基本的假设:互联网上的每一个IP报文都有一个生存期限...
TIME_WAIT 286 FIN_WAIT1 5 FIN_WAIT2 6 ESTABLISHED 269 SYN_RECV 5 CLOSING 1 1. 2. 3. 4. 5. 6. 7. 如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决: 编辑文件/etc/sysctl.conf,加入以下内容: net.ipv4.tcp_syncookies = 1 ...