golang解决linux中too many open file的问题

原创
2022/07/23 18:22
阅读数 682

最近在项目中用goroutine下载文件到本地,由于下载使用第三方的库,而且下载之后没有释放文件句柄,只能等待协程执行完毕之后才能释放文件句柄,由于文件数量过多,导致下载过程中,log里出现panic :too many open file。意思是进程中打开了过多的文件句柄。超过了linux的配置上限。

所以查看了下,系统中的open files配置

看了下最大是65535,不太确定是否我的进程超过了这个配置,所以又执行一遍,然后根据进程号查看了一下

首先找到服务的PID,然后用这个命令查看一下 lsof -p PID |wc -l

结果这个数在执行过程中确实达到了65535这个阀值,所以修改了下这个配置

ulimit -n 655350,临时修改一下,问题解决

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部