Nginx工作进程数


23

我正在设置nginx来提供Drupal安装,并且我似乎在nginx worker进程设置上发现有冲突的信息。一个站点说您需要两个,一个站点说需要五个,一个站点说每个处理器一个...

我应该如何选择nginx worker进程的数量?如果有所不同,那就是VMWare群集上的来宾VM,我给了它一个虚拟处理器。

Answers:


16

Nginx与Apache和其他每个连接Web服务器的进程不同。它使用一个主进程来启动和监视实际上处理连接的少量工作进程。我的建议是从默认工人数(即1)开始。

worker_processes  1;

仅当发现nginx worker在IO上花费过多时间时,才需要增加此值。直到它每秒处理数百个请求时,才会这样做。

您可能还会发现这些设置很有用。

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

1
您能否描述“ worker_rlimit_nofile 8192”的用途?
Pixel开发人员

wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile。这指示工作人员增加其限制。
戴夫·切尼

15

在SMP系统上,至少应启动nCPU工作进程:在四核上-四个,等等。这是代理的必要条件。

如果您要为某些站点提供大量静态内容,最好添加更多工作线程-每个磁盘一个。

如果您的磁盘子系统状况不佳或负载太高,nginx worker进程可能会锁定在I / O操作上,无法满足其他请求。在这种情况下,应将辅助进程的数量增加到某个合适的值(可能是数十个),或为磁盘缓存添加一些内存。

查看“ ps ax”打印输出:处于“ D”状态的工作程序已锁定。增加直到至少没有阻止nCPU worker进程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.