Ubuntu下解决too many open files的错误
① 绪言在完善性能测试时,自己最开始都是使用idea直接run或debug的。后来使用终端,通过go test命令进行测试时,就报too many open files的错误。自己一百度,发现说是因为open file的句柄设置的不够。② 直观想法,不够的话,设置大一点自己通过如下命令一查看发现原来才1024啊。$ ulimit -a然后,根据博客Linux中Too ...
·
① 绪言
- 在完善性能测试时,自己最开始都是使用idea直接run或debug的。
- 后来使用终端,通过
go test
命令进行测试时,就报too many open files
的错误。
- 自己一百度,发现说是因为
open file
的句柄设置的不够。
② 直观想法,不够的话,设置大一点
- 自己通过如下命令一查看发现原来才1024啊。
$ ulimit -a
- 然后,根据博客Linux中Too many open files 问题分析和解决中所讲,那我就把
open files
的句柄设置大一点嘛。 - 保守设置了个2048,再次查看确实成了2048。
$ ulimit -n 2048
- 再跑测试,还是不够用,那我再设置大一点4096。竟然报错了
③ 直接设置不行,那就修改limit的配置文件
- 博客Linux中Too many open files 问题分析和解决也提到了上面的设置方法的不足:
- 能设置的数值有限
- 系统重启以后会恢复默认值。
- 该博客中,也提供了另一种方法,就是修改limit的配置文件
/etc/security/limits.conf
- 在配置文件中添加以下内容,我设置的是65536
* soft nofile 65536
* hard nofile 65536
- 保存以后再次查看,没有变化,查了一下有博客说需要注销用户重新登录。
- 我将整个系统都重启了,竟然还是1024 😂 😂
- 网上好多博客,说啥子自己的不用重启就会生效,结果一看,跟自己的一模一样。比如,博客:修改Linux的open files参数是,立即生效,无需重启
④ 原来在Ubuntu下,root需要单独设置
- 后来查到了一篇博客,【Linux】limits.conf 不重启就生效或者不生效的原因,里面说root需要单独设置。
- 自己最开始没有理解博客,于是只添加了以下内容:
root hard nofile 65535
root soft nofile 65535
- 保存以后,打开一个新的终端,切换到root用户,一查生效了。
- 然后又好葫芦画瓢,为普通用户添加了设置。整个内容如下:
root hard nofile 65535
root soft nofile 65535
zebra hard nofile 65535
zebra soft nofile 65535
- 保存以后,打开一个新的终端,处于zebra用户,一查也生效了。
- 没有反应: 如果在新的终端没有反应,可以学一下我的方法,我照葫芦画瓢,切换到zebra用户,就可以查到结果了。
- 但是,这样其实没有用,运行还是出错。。。
⑤ 自己也搞不懂啊,到底咋个才能生效
- 为了解决这个问题,自己还按照博客,Ubuntu /etc/security/limits.conf 不生效问题,检查了相关配置,然后还重启了电脑。
- 咋个都不行,清华大佬说,就是很多坑,而且大家都说不清楚
- 那就让我沉浸在su切换用户的方法中吧。。。。如果谁有好的方法,可以更我分享;我如果某天解决了,会回来更新的。。。
更多推荐
已为社区贡献1条内容
所有评论(0)