Talvez não seja o nginx, mas seus limites de configuração do kernel, você também tentou ajustar os parâmetros do kernel?
Eu procurei por algum tipo de documentação para isso, até onde eu encontrei estes conselhos: link
Eu sou praticamente um noobie no nginx e eu realmente preciso de ajuda.
Estou usando o nginx como um servidor proxy reverso para servir principalmente como um balanceador de carga. Estou usando quase apenas arquivos dinâmicos. Os servidores de back end são o apache.
Aqui estão os resultados do meu httperf:
Parece que meu servidor nginx é o gargalo, mas não consigo descobrir como posso otimizá-lo.
o uso da CPU e o uso da memória RAM no servidor de back-end do apache e no servidor nginx são mínimos, menos de 10%.
Meu objetivo é encontrar uma ótima maneira de ampliar e usar um balanceador de carga, mas parece que, se o nginx for limitado em solicitações por segundo como um único servidor apache, não há nenhum ponto ....
Posso receber ajuda de alguém, por favor?
Talvez não seja o nginx, mas seus limites de configuração do kernel, você também tentou ajustar os parâmetros do kernel?
Eu procurei por algum tipo de documentação para isso, até onde eu encontrei estes conselhos: link
Parece que você precisa ajustar seus parâmetros do kernel. Eu acho que mais memória disponível em todo o sistema pode fazer com que vários algoritmos de tomada de decisão funcionem de maneira diferente ...
Qual é o valor de configuração worker_processes
nginx definido como? O padrão é 1, o que explicaria esse comportamento (você está com um único encadeamento, portanto, nenhum número de back-ends mudará nada).
Tente defini-lo como 4, ou até 8, no arquivo de configuração do nginx. Isso permitirá que o nginx chame mais de um back-end de uma só vez e deve aumentar o throughput proporcionalmente aos back-ends.