首页/网络/网络排障速查/TIME-WAIT 堆积:正常与异常判读

TIME-WAIT 堆积:正常与异常判读

TIME-WAIT 是主动关闭方的正常回收态(默认 2MSL=60 秒);堆积到数万条时要区分是高频短连接的自然结果,还是应用没有复用连接。

网络排障速查网络更新于 2026-10-13

TIME-WAIT 堆积怎么看

回收态是主动关闭连接的一方在发完最后确认后停留的状态,默认持续两个报文最大生存时间,Linux 下约 60 秒。它的存在不是缺陷:这段时间让迟到的报文不会串到新建的连接上,也让对端有机会重发最后确认。需要判断的是数量级与趋势——高频短连接的服务端出现数万条回收态属常态,客户端侧堆积并伴随端口分配失败才是要处置的信号。看数量的同时要看它随时间的变化:能自然回落说明只是关闭速率高,持续单向增长才需要动。

基本信息

适用平台Linux,查看用 iproute2 的连接工具,参数用 sysctl 或内核统计文件
状态含义主动关闭方的正常回收态,默认停留约 60 秒
常见场景短连接请求量高、本机端口不够用、无法分配请求地址
判定方法回收态数量与主动关闭速率成正比,观察是否随时间回落
容量参考本地端口池默认约 2.8 万个,用内核参数查看实际范围
交叉确认配合汇总连接统计与内核套接字统计文件核对总量与趋势

典型使用场景

  • 客户端报无法分配请求地址时,先量化本机回收态数量
  • 高并发短连接服务:判断堆积是自然结果还是连接复用不足
  • 判定方向:服务端主动关闭时回收态挂在服务端口上,不影响端口耗尽
  • 优化前后对比:改用长连接或连接复用后,观察数量是否明显下降
  • 容量评估:用请求速率与关闭速率估算稳态数量,提前发现端口池不足
  • 变更前留基线:调整参数或架构前记录数量与速率,事后才有对比依据

量化与分布

量化与分布
ss -Htan state time-wait | wc -l                     # 回收态总量
ss -Htan state time-wait | awk '{print $4}' | awk -F: '{print $NF}' | sort | uniq -c | sort -rn | head   # 按本地端口聚合
ss -s                                                 # 汇总视图,同时看其它状态
sysctl net.ipv4.ip_local_port_range                   # 本地端口池范围
sysctl net.ipv4.tcp_fin_timeout                       # 关闭相关超时参数
cat /proc/net/sockstat                                # 内核统计的套接字使用情况
watch -n 5 'ss -Htan state time-wait | wc -l'         # 观察数量是否持续单向增长

现象与处置方向

现象含义处置方向
数量随时间回落短连接密集但关闭速率稳定正常,无需处理
数量持续单向增长主动关闭速率高于回收速率查端口池剩余与连接复用配置
报无法分配请求地址四元组用尽,无法新建出向连接扩大端口范围、启用连接复用、改长连接
服务端口上大量回收态服务端主动关闭短连接不影响端口耗尽,考虑长连接或优雅关闭
回收态与应用超时同时出现超时机制导致频繁主动关闭核对上下游超时配置差异
高峰过后出现数量峰值短连接集中关闭的自然结果记录峰值基线,观察是否在低位回落
回收态占用的是四元组(源地址、源端口、目的地址、目的端口),只要四元组不重复就不影响新建连接。真正会被耗尽的是客户端侧的本地端口池,而不是服务端的监听端口。
对回收态的处置要谨慎:调整复用相关参数影响的是全机所有出向连接,可能带来旧报文干扰新连接的风险。优先从应用侧改连接复用与长连接,只有在量化确认端口池不足后才考虑参数调整,并保留改动前的基线数据。

易错点

  • 看到回收态上万就断定故障:大流量短连接场景下数万条属常态
  • 把回收态与本地端口耗尽混为一谈:耗尽发生在本地端口维度,不是服务端口
  • 只统计总量不看分布,没发现回收态集中压在某个服务端口上,方向判断出错
  • 未做量化就直接调整内核复用参数,改动影响全机出向连接,风险外溢
  • 只看某一个时间点的数量,忽略它可能在高峰后自然回落,误判为持续恶化

数据来源与参考

  • RFC 9293:TIME-WAIT 与 2MSL
  • Linux 内核文档:ip-sysctl(tcp_fin_timeout)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌