[tcp] 服务端大量close_wait 和 time_wait状态

我开发的某个服务出现这个状态 , 出现了大量的close_wait , 占满了单进程的连接数1024

tcp连接关闭的时候 , 会有几种状态转移

close_wait的大量出现 , 这个是说明我们是被动关闭 , 并且被动关闭后 , 我们的程序没有把连接关闭掉 , 造成连接泄露了

我在做gofly在线客服系统的时候 , 把连接关闭改成了前端来关闭 , 但是后端对关闭的连接没有进行close ,  没有close就不会发送ACK和FIN标志 ,  造成了连接泄露

所以遇到close_wait大量出现 , 需要检查下程序

time_wait的出现 , 说明是我们主动关闭 , 连接是我们关闭的 , 我们需要等2MSL时间 , 等对方把数据传完  , 这时就是time_wait , 

才会发送ACK确认包  ,  这个可以改系统参数 , 等系统回收就可以了 .

开源作品

GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
github地址:go-fly
官网地址:https://gofly.sopans.com

赞赏作者

微信交流

原文地址:https://www.cnblogs.com/taoshihan/p/14785384.html