我的网站最近有很多很多的stream量,我认为这个问题是nginx花费太多的时间安排请求。 我增加了我的worker_processes,似乎解决了这个问题。
老实说,我不明白为什么。
我想知道如果有人能指出我/解释nginx工作人员是如何工作的,以及worker_rlimit_nofile是什么,那么我可以对未来的变化有一个更好的概念理解。
在nginx中,worker_processes是nginx会产生的进程的数量。 默认值为1,worker_rlimit_nofile是每个工作进程可以打开的最大文件描述符。 当你增加worker_processes时要小心,因为这会影响最大数目。 客户端的服务器将处理。 在多处理器机器上工作时,worker_processes值为2或4是可以的。 您也可以更改worker_connections参数,这是每个工作进程的最大连接数。
看来,在你的情况下,请求的数量是每秒提供大量的请求,并且默认的nginx工作者在磁盘IO上花费了太多的时间。
我不熟悉nginx,但是为了让你开始一些通用的* nix守护进程信息:
nofile往往是一个进程的最大打开文件数(文件描述符)资源限制。 所以这可能是每个工人可以打开多less个文件(文件包括套接字)。 请参阅ulimit和/etc/security/limits.conf。
许多守护进程都有一个生成新进程来响应请求的进程。 所以通过增加工人的数量,你可能是这样做的,所以这个过程已经产生,并准备回答问题的要求。