Nginx的打开的文件太多,是不是worker_rlimit_nofile的设置?

nginx.conf中设置worker_rlimit_nofile值是否足够解决nginx中Too many open files的问题?

还是我仍然需要更新sysctl.conflimits.conf

在Linux中,您可以运行以下命令查看该选项是否改变了进程的限制:

 cat /proc/<PID>/limits 

其中<PID>是nginex的进程ID。 testing一个开发环境。

如果该选项没有改变限制,或者如果您的限制太严格,则需要更改/etc/security/limits.conf文件中的nofile

我不认为你需要修改limits.conf。 worker_rlimit_nofile的要点是提供一个快速和肮脏的方式来通过RLIMIT_NOFILE做到这一点。

但是,由操作系统设置的硬件系统限制可能需要使用sysctl.conf来覆盖。

实际上,我通常在sysctl中将fs.file-max设置为我应用程序的rlimit的4倍。 除此之外没有其他的基础,因为我不想因为达到这个极限而想要失败。 而2-4X的范围通常足够高,只有当应用程序出现重大问题时才会触发。