O único trabalhador do Apache atende apenas 1 solicitação ou mais que isso?

1

Estou enfrentando um problema no servidor Apache quando o número de usuários atinge cerca de 250 concorrentes. O problema ocorreu apenas quando o número de trabalhadores inativos foi definido como 0.

Então, minha pergunta é: um único trabalhador do Apache atende apenas 1 solicitação ou mais do que isso? Como posso aumentar o trabalhador ou o usuário máximo para pelo menos 700 concorrentes?

Estou usando o Apache 2.2 no Windows 2008 R2 e o tipo MPM é: mpm_winnt.

    
por Koptan 21.04.2013 / 16:19

3 respostas

2

O mpm_winnt parece estar bem próximo no design do mpm_worker. O mpm_worker usa vários processos (servidores) com vários encadeamentos por processo para servir conexões. O mpm_winnt usa apenas um processo.

Assim, você pode ajustar o número de conexões simultâneas usando ThreadLimit e ThreadsPerChild diretivas.

Por favor, leia os documentos antes de mudar cegamente os dois.

    
por 21.04.2013 / 22:02
0

Veja os MaxClients - essa é uma configuração comum para o prefork e o worker.

link

    
por 21.04.2013 / 17:33
0

Para uma configuração típica de servidor menor, com Prefork MPM , você provavelmente quer algo como:

StartServers 5
MinSpareServers 1
MaxSpareServers 10
ServerLimit 500
MaxClients 500
MaxRequestsPerChild 5000

Note que isso coloca o limite em 500. Se você quiser mais do que isso, apenas aumente o valor. Os valores são adequados para sites pequenos e genéricos, mas se o site não for "genérico", você realmente precisará dedicar algum tempo e adaptar esses valores ao seu site.

Se você está ficando muito maior do que isso, é hora de mudar para um MPM diferente, como trabalhador ou evento. Isso pode exigir a alteração de vários aspectos do site, dependendo das tecnologias que você está usando.

Para um MPM encadeado (Evento, Trabalhador) e um site genérico menor:

StartServers 5
MinSpareThreads 1
MaxSpareThreads 10
MaxClients 1024
ThreadsPerChild 64
MaxRequestsPerChild 50000

O MPM WinNT tem apenas um único processo (filho), por isso você gostaria de fazer com que o ThreadsPerChild fosse afetado por algo sensato. Outra resposta tem links para as páginas de manual relevantes do Apache.

    
por 21.04.2013 / 18:26