首页/网络/网络排障速查/CLOSE-WAIT 泄漏定位
本包目录(235 条)

CLOSE-WAIT 泄漏定位

CLOSE-WAIT 表示对端已发 FIN、本端应用没有 close():数量持续增长是典型的资源泄漏信号(连接池未归还、代码漏关、无超时),调内核参数无效。

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

定位与归属

定位与归属
ss -Htan state close-wait | wc -l
ss -tanp state close-wait | head -30
# 找到进程后看它持有的 socket 数:
ls /proc/<PID>/fd | wc -l
lsof -p <PID> | grep -c socket
判据数量持续增长且与请求量同步
根因应用未 close / 连接池泄漏 / 异常分支漏关
处置代码修复 + 加超时与健康检查
反向验证重启应用后数量归零即可确认
内核无法替应用关闭 CLOSE-WAIT 连接,主动权在应用进程;net.ipv4.tcp_* 参数再怎么调都不会让它消失。

易错点

  • 把 CLOSE-WAIT 当内核问题去调 tcp 参数,方向完全错误
  • 只看总数不看归属进程:多进程共用端口时先按 pid 聚合再定位

数据来源与参考

  • RFC 9293:CLOSE-WAIT 状态语义
  • man 8 ss

相关工具

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