① 绪言
  • 在完善性能测试时,自己最开始都是使用idea直接run或debug的。
  • 后来使用终端,通过go test命令进行测试时,就报too many open files的错误。
    在这里插入图片描述
  • 自己一百度,发现说是因为open file的句柄设置的不够。
② 直观想法,不够的话,设置大一点
  • 自己通过如下命令一查看发现原来才1024啊。
$ ulimit -a

在这里插入图片描述

$ ulimit -n 2048

在这里插入图片描述

  • 再跑测试,还是不够用,那我再设置大一点4096。竟然报错了
    在这里插入图片描述
③ 直接设置不行,那就修改limit的配置文件
  1. 能设置的数值有限
  2. 系统重启以后会恢复默认值。
  • 该博客中,也提供了另一种方法,就是修改limit的配置文件/etc/security/limits.conf
  • 在配置文件中添加以下内容,我设置的是65536
* soft nofile 65536
* hard nofile 65536
  • 保存以后再次查看,没有变化,查了一下有博客说需要注销用户重新登录。
  • 我将整个系统都重启了,竟然还是1024 😂 😂
  • 网上好多博客,说啥子自己的不用重启就会生效,结果一看,跟自己的一模一样。比如,博客:修改Linux的open files参数是,立即生效,无需重启
④ 原来在Ubuntu下,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切换用户的方法中吧。。。。如果谁有好的方法,可以更我分享;我如果某天解决了,会回来更新的。。。
Logo

更多推荐