我的在线客服系统 go gin服务出现了大量的 too many open files 错误 , 这时候服务也是连不上的
前端接口的显示就是504 , 超出了nginx设置的超时时间
通过lsof -p 进程id
可以看到打开的文件数量已经1031个了 , 说明了超出了单进程打开文件的限制默认1024 , 可以用ulimit -a
![](https://i-blog.csdnimg.cn/blog_migrate/8626a65ea323c46049c14e91abe18c66.png)
查看连接数情况
netstat -altupn|grep 8083
可以看到大量的close_wait状态 , 说明是我们被动关闭后 , 服务没有close掉这条连接
查看代码对websocket的处理后 , 发现确实没有关闭 , 修改后正常