[Go] gin 解决: accept4: too many open files

我的在线客服系统 go gin服务出现了大量的 too many open files 错误 , 这时候服务也是连不上的

前端接口的显示就是504 , 超出了nginx设置的超时时间

通过lsof -p  进程id

可以看到打开的文件数量已经1031个了 , 说明了超出了单进程打开文件的限制默认1024    , 可以用ulimit -a

查看连接数情况

netstat -altupn|grep 8083

可以看到大量的close_wait状态 , 说明是我们被动关闭后 ,  服务没有close掉这条连接

查看代码对websocket的处理后 , 发现确实没有关闭 , 修改后正常 

开源作品

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

赞赏作者

微信交流

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