tcp 状态 close_wait
服务现状
- 持续出现 close_wait 连接,大概每2个小时出现小于3个的 close_wait 状态连接
- 使用netstat命令时查看到 Rece-Q 值不为 0
- 使用容器部署,tcp连接持续时长为2个小时
简单解析
针对现象二
Rece-Q 的值不为0 ,证明内核缓冲区中已经准备好 数据,而没有被用户进程取走。可能性如下:
- tcp端口被关闭(该情况无法使用netstat命令查看到数据)
- 用户线程阻塞(非该种情况)
- 用户线程死亡
- 网络带宽过低,影响通信包传输,由另一方主动断开链接,服务未响应,由外层waf等返回 ack 包进入close_wait状态
- 我觉得第四种情况就是真相了