增加进程的打开文件限制

Increase open files limit for process

当我 运行 ulimit -n 我得到 100000 作为值。

我编辑了 /etc/security/limits.conf

中添加的以下行
*     soft    nofile          100000
*     hard    nofile          100000

我也编辑了 pan_limits

但我目前正在 运行 正在运行一个不断抛出错误的 go 程序

2016/03/09 21:42:27 http: Accept error: accept tcp [::]:3000: accept4: too many open files; retrying in 5ms
2016/03/09 21:42:27 getAudioOnlyInfo: open /dev/null: too many open files

问题是,当我实际检查 运行ning cat /proc/1480/limits 对实际过程设置的限制时,我看到了这个

Max open files            1024                 4096                 files   

我正在通过 supervisor 运行安装一个 golang 程序,它不会读取系统限制有什么原因吗?

在多个问题中尝试解决此问题后,归结为主管在程序中设置了自己的文件限制。如评论中所示,您必须在主管中使用 minfds 设置。

要检查它是否正常工作,您可以 运行 a cat /proc/$PID/limits

这也应该输出你设置的数字 minfds,在我的例子中是 100,000

Max open files            100000               100000               files     

我想指出的是,当您将 minfds 放入主管时,您将其放入 /etc/supervisor/supervisord.conf 就好像您将其放入程序配置文件一样,它什么也不做。