número de processos do operador nginx

23

Estou configurando o nginx para servir uma instalação do Drupal e parece que encontro informações conflitantes na configuração dos processos do operador do nginx. Um site diz que você precisa de dois, um diz que precisa de cinco, um diz um por processador ...

Como devo escolher o número de processos do operador nginx? Se isso faz diferença, é uma VM convidada em um cluster VMWare, e eu dei a ela um processador virtual.

ceejayoz
fonte

Respostas:

16

Nginx, ao contrário do Apache e outro processo por servidor da conexão. Ele usa um processo mestre para iniciar e monitorar um pequeno número de processos de trabalho que realmente lidam com as conexões. Minha recomendação é começar com o número padrão de trabalhadores, que é 1.

worker_processes  1;

Você só precisará aumentar isso se descobrir que o trabalhador nginx está gastando muito tempo bloqueado no IO. Isso não ocorrerá até que ele atenda muitas centenas de solicitações por segundo.

Você também pode achar essas configurações úteis.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}
Dave Cheney
fonte
1
Você pode descrever para que "worker_rlimit_nofile 8192" é usado?
The Pixel Developer
wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile . Isso instrui o trabalhador a aumentar seu limite.
Dave Cheney
15

Nos sistemas SMP, pelo menos os processos de trabalho da nCPU devem ser iniciados: no quad-core - quatro etc. Isso é suficiente para proxy.

Se você pretende veicular alguns sites com muito conteúdo estático, seria melhor adicionar mais trabalhadores - um por disco.

Se o seu subsistema de disco estiver ruim ou carregar muito alto, os processos do operador nginx podem ficar bloqueados nas operações de E / S e não podem atender a outras solicitações. Nesse caso, você deve aumentar o número de processos do operador para um valor adequado (pode ser dezenas) ou adicionar um pouco de memória para o cache do disco.

Examine a impressão "ps ax": os trabalhadores que estão no estado "D" estão bloqueados. Aumente até obter pelo menos os processos de trabalho nCPU não bloqueados.

Vadim
fonte