增加进程的打开文件限制
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
就好像您将其放入程序配置文件一样,它什么也不做。
当我 运行 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
就好像您将其放入程序配置文件一样,它什么也不做。