it-swarm-pt.tech

número de processos do operador nginx

Estou configurando o nginx para servir uma instalação 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, é um convidado VM em um cluster VMWare, e eu dei a ele um processador virtual.

23
ceejayoz

Nginx, ao contrário do Apache e outros processos 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;
}
16
Dave Cheney

Nos sistemas SMP, pelo menos os processos de trabalho 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 carregando 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.

15
Vadim