nginx 配置 worker_rlimit_nofile 和 worker_processes

nginx 配置 worker_rlimit_nofile 和 worker_processes

我的网站最近流量很大,我认为问题是 nginx 花费了太多时间来安排请求。我增加了 worker_processes,这似乎解决了这个问题。

说实话,我真的不明白为什么。

我想知道是否有人可以指出/解释 nginx 工作者如何工作,以及 worker_rlimit_nofile 是什么,以便我可以对将来必须进行的更改有更好的概念理解。

答案1

在 nginx 中,worker_processesnginx 将生成进程数。默认值为1worker_rlimit_nofile每个工作进程可以打开的最大文件描述符。增加时要小心,因为这会影响服务器将处理的worker_processes最大客户端数量。worker_processes2或者4在多处理器机器上工作时是可以的。

您还可以更改worker_connections每个工作进程的最大连接数参数。

在您的情况下,似乎每秒处理的请求数量非常大,而默认的 nginx 工作程序在磁盘 IO 上花费了太多时间。

答案2

我不熟悉 nginx,但为了帮助您入门,我提供一些常规的 *nix 守护进程信息:

nofile 往往是进程的最大打开文件数(文件描述符)资源限制。因此,这很可能是每个工作进程可以打开的文件数(文件包括套接字)。请参阅 ulimit 和 /etc/security/limits.conf 。

许多守护进程都有一个进程,它会生成新进程来响应请求。因此,通过增加工作进程的数量,您可能已经生成了进程并准备好回答问题请求。

相关内容