运维排查篇 | Windows 产生大量 TIME_WAIT 连接
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
咸鱼运维杂谈
扫码关注公众号
扫码阅读
手机扫码阅读
本文讲述了如何排查和解决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状态连接的产生。修改注册表值后,需重启机器生效。
咸鱼运维杂谈
咸鱼运维杂谈
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
咸鱼运维杂谈的其他文章
Python 哈希表的实现——字典
哈喽大家好,我是咸鱼接触过 Python 的小伙伴应该对【字典】这一数据类型都了解吧虽然 Python 没有
Python 3.12 抢先看——关于 f-string 的改动
Python 3.12 之前 f-string 有什么限制?即将发布的 3.12 版本会带来哪些改变呢?
为什么有了 HTTP 还要 RPC
看完这篇相信你会更了解 HTTP 和 RPC 协议
SELinux 导致 Keepalived 检测脚本无法执行
SELinux 居然有这么多限制?
运维排查 | Saltstack 最大打开文件数问题之奇怪的 8192
小小的问题背后藏着大大的学问
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线