O que os usuários vêem quando o Apache alcança o MaxClients?

8

Ocasionalmente, no meu log de erros do Apache, vou encontrar:

[error] server reached MaxClients setting, consider raising the MaxClients setting

Eu reduzi intencionalmente o MaxClients no passado (para 60) devido a problemas com a falta de memória, mas gostaria de saber exatamente o que está acontecendo no final do usuário quando esse limite é atingido no servidor. A página que estão acessando demora mais para carregar? Eles recebem algum tipo de mensagem de erro?

    
por runningonplants 16.04.2015 / 15:25

1 resposta

12

Em primeiro lugar, as solicitações do cliente serão enfileiradas, até que haja um processo / thread que seja liberado no servidor apache. Assim, os clientes verão um atraso no carregamento da página. Consulte a documentação do parâmetro MaxClients para obter mais informações.

Quando colocado na fila de pendências, a solicitação do cliente pode expirar no lado do cliente. Em seguida, o usuário verá uma página de erro em seu navegador informando que o servidor está demorando muito para fornecer uma resposta. O valor do tempo limite padrão é 300 segundos no Firefox , por exemplo. Ou o usuário cancelará a solicitação antes do tempo limite ...

Em seguida, se o servidor obtiver mais solicitações e não puder obter um processo / encadeamento gratuito a tempo, a fila ListenBacklog poderá ser preenchida (o padrão será 511 solicitações enfileiradas) e qualquer solicitação subseqüente não será exibida. O navegador informará ao usuário que ele não pode se conectar ao site, como se o site estivesse completamente desativado.

Esta fila de pendências é gerenciada no nível do SO, na implementação do TCP. No linux, a página listen man lhe dará mais informações sobre o modo como ela é gerenciada. Aqui está outra leitura perspicaz sobre a fila de pendências TCP no linux e Sistemas BSD .

    
por 16.04.2015 / 19:27