Ryan Asked: 2013-01-23 06:46:57 +0800 CST2013-01-23 06:46:57 +0800 CST 2013-01-23 06:46:57 +0800 CST Nginx的Too many open files,设置worker_rlimit_nofile够不够? 772 在 nginx.conf中设置正确的值是否worker_rlimit_nofile足以解决Too many open filesnginx 中的问题? 或者我还需要更新sysctl.confandlimits.conf吗? linux 2 个回答 Voted Best Answer Mircea Vutcovici 2013-01-23T07:03:36+08:002013-01-23T07:03:36+08:00 在 Linux 中,您可以通过运行以下命令查看该选项是否更改了进程的限制: cat /proc/<PID>/limits nginex<PID>的进程ID在哪里。在开发环境中测试。 如果该选项未更改限制,或者如果您的硬限制过于严格,则需要更改nofile/etc/security/limits.conf 文件中的 。 jeffatrackaid 2013-01-23T07:56:17+08:002013-01-23T07:56:17+08:00 我认为您不需要修改 limits.conf。worker_rlimit_nofile 的目的是通过 RLIMIT_NOFILE 提供一种快速而肮脏的方式来做到这一点。 但是,操作系统设置了硬性系统限制,您可能需要使用 sysctl.conf 覆盖这些限制。 实际上,我通常将 sysctl 中的 fs.file-max 设置为应用程序 rlimit 的 4 倍左右。除了我不想因为达到这个限制而失败之外,没有其他依据。2-4 倍的范围通常足够高,只有在应用程序出现重大问题时才会触发。
在 Linux 中,您可以通过运行以下命令查看该选项是否更改了进程的限制:
nginex
<PID>
的进程ID在哪里。在开发环境中测试。如果该选项未更改限制,或者如果您的硬限制过于严格,则需要更改
nofile
/etc/security/limits.conf 文件中的 。我认为您不需要修改 limits.conf。worker_rlimit_nofile 的目的是通过 RLIMIT_NOFILE 提供一种快速而肮脏的方式来做到这一点。
但是,操作系统设置了硬性系统限制,您可能需要使用 sysctl.conf 覆盖这些限制。
实际上,我通常将 sysctl 中的 fs.file-max 设置为应用程序 rlimit 的 4 倍左右。除了我不想因为达到这个限制而失败之外,没有其他依据。2-4 倍的范围通常足够高,只有在应用程序出现重大问题时才会触发。