扫码阅读
手机扫码阅读

运维排查篇 | Windows 产生大量 TIME_WAIT 连接

80 2024-07-20

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:运维排查篇 | Windows 产生大量 TIME_WAIT 连接
文章来源:
咸鱼运维杂谈
扫码关注公众号

本文讲述了如何排查和解决Windows服务器产生大量无法释放的TIME_WAIT状态连接的问题。作者通过一个实际案例来阐述问题诊断和解决方案。

案例现象

在一个案例中,一个工作人员在接到服务器告警后发现,服务器上的监控代理进程(zabbix_agent)存在,但是与代理服务器(proxy)的连接全部处于TIME_WAIT状态。尝试重启zabbix_agent无法释放这些连接。

定位问题

TIME_WAIT状态通常出现在TCP连接的四次挥手关闭过程中,主动关闭连接的一方会进入此状态,以确保可靠地终止全双工连接,并处理可能延迟到达的旧报文。在案例中,由于agent配置为主动模式,因此产生了大量TIME_WAIT状态的连接。

解决问题

出现TIME_WAIT连接本身是正常的,但大量的TIME_WAIT连接会耗尽系统资源,阻止创建新TCP连接。解决方法包括:

  1. 微软提供的修复程序,需要联系官方获取。
  2. 通过编辑注册表,修改MaxUserPort和TcpTimedWaitDelay值,分别控制可用端口号的最大值和端口关闭后的等待时间。

降低TcpTimedWaitDelay值可以让TCP/IP更快释放关闭的连接,而MaxUserPort值的增加可以允许更多TIME_WAIT状态连接的产生。修改注册表值后,需重启机器生效。

想要了解更多内容?

查看原文:运维排查篇 | Windows 产生大量 TIME_WAIT 连接
文章来源:
咸鱼运维杂谈
扫码关注公众号