扫码阅读
手机扫码阅读
运维排查篇 | Windows 产生大量 TIME_WAIT 连接
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
本文讲述了如何排查和解决Windows服务器产生大量无法释放的TIME_WAIT状态连接的问题。作者通过一个实际案例来阐述问题诊断和解决方案。
案例现象
在一个案例中,一个工作人员在接到服务器告警后发现,服务器上的监控代理进程(zabbix_agent)存在,但是与代理服务器(proxy)的连接全部处于TIME_WAIT状态。尝试重启zabbix_agent无法释放这些连接。
定位问题
TIME_WAIT状态通常出现在TCP连接的四次挥手关闭过程中,主动关闭连接的一方会进入此状态,以确保可靠地终止全双工连接,并处理可能延迟到达的旧报文。在案例中,由于agent配置为主动模式,因此产生了大量TIME_WAIT状态的连接。
解决问题
出现TIME_WAIT连接本身是正常的,但大量的TIME_WAIT连接会耗尽系统资源,阻止创建新TCP连接。解决方法包括:
- 微软提供的修复程序,需要联系官方获取。
- 通过编辑注册表,修改MaxUserPort和TcpTimedWaitDelay值,分别控制可用端口号的最大值和端口关闭后的等待时间。
降低TcpTimedWaitDelay值可以让TCP/IP更快释放关闭的连接,而MaxUserPort值的增加可以允许更多TIME_WAIT状态连接的产生。修改注册表值后,需重启机器生效。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
咸鱼运维杂谈的其他文章
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线