número de processos do operador nginx

22

Estou configurando o nginx para executar uma instalação do Drupal e parece que encontro informações conflitantes na configuração dos processos de trabalho 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 de trabalho do nginx? Se isso faz diferença, é uma VM guest em um cluster VMWare, e eu dei a ela um processador virtual.

    
por ceejayoz 08.05.2009 / 15:46

2 respostas

16

Nginx, ao contrário do Apache e de outros processos por servidores da Web de conexão. Ele usa um processo mestre para iniciar e monitorar um pequeno número de processos de trabalho que realmente manipulam 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 funcionário do nginx está passando muito tempo bloqueado no pedido de veiculação. Isso não será feito até que esteja atendendo a 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;
}
    
por 09.05.2009 / 16:46
15

Em sistemas SMP, pelo menos, processos de trabalho de nCPU devem ser iniciados: em quad-core - quatro etc. Isso é ótimo para proxy.

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

Se o subsistema de disco estiver com desempenho ruim ou alto demais, os processos de trabalho do nginx poderão ficar bloqueados nas operações de E / S e não poderão atender a outras solicitações. Nesse caso, você deve aumentar o número de processos de trabalho para algum valor adequado (pode ser dez) ou adicionar alguma memória para o cache de disco.

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

    
por 27.05.2009 / 14:47