Nginx 的 Too many open files,worker_rlimit_nofile 设置够了吗?

Nginx 的 Too many open files,worker_rlimit_nofile 设置够了吗?

在 nginx.conf 中设置正确的值worker_rlimit_nofile是否足以解决 nginx 中的问题Too many open files

或者我仍需要更新sysctl.conflimits.conf

答案1

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

cat /proc/<PID>/limits

nginex 的进程 ID 在哪里<PID>。在开发环境上测试。

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

答案2

我认为您不需要修改 limits.conf。worker_rlimit_nofile 的目的是通过 RLIMIT_NOFILE 提供一种快速而简单的方法来执行此操作。

但是,操作系统设置了硬系统限制,您可能需要使用 sysctl.conf 来覆盖这些限制。

实际上,我通常会将 sysctl 中的 fs.file-max 设置为应用程序的 rlimit 的 4 倍左右。这样做没有任何依据,只是我不希望因为达到此限制而导致某些事情失败。而且 2-4 倍的范围通常足够高,仅在应用程序出现重大问题时才会触发。

相关内容