AB pedidos falhados - O que posso fazer sobre eles?

1

Então, no passado, nunca tive problemas com esse aplicativo. Todos os benchmarks tiveram 100% de sucesso. Ontem eu configurei o nginx para o conteúdo estático do servidor e transmito outros pedidos para o apache. Agora, se eu tiver 1 usuário simultâneo (-c 1), tudo estará bem. Mas parece que quanto mais usuários simultâneos eu tenho, mais solicitações com falha eu recebo. Não muito, mas talvez cerca de 10 ou 15 de 350. Eles são "comprimento", o que isso significa. Visitando o site com um navegador, não tenho nenhum problema. Como posso descobrir a causa dessas solicitações fracassadas?

Aqui está parte do meu httpd.conf:

Timeout 20

KeepAlive Off

MaxKeepAliveRequests 100

<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 50
MaxClients 50
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers 1
MaxClients 50
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

Existe outra informação que você precisa?

    
por Matthew 27.05.2010 / 16:13

2 respostas

2

Meu palpite é que você está atingindo o limite de MaxClients ao fazer o benchmarking do site.

Durante o benchmarking do site, tente ver quantas conexões são estabelecidas na porta 80:

netstat -tnap | grep ":80" | grep -c ESTA

Repita este comando algumas vezes enquanto estiver comparando o site. Provavelmente você estará atingindo 50 conexões estabelecidas.

Um aplicativo de tendência rrdtool (como Cacti, Munin ou Ganglia) representando graficamente o número de conexões TCP também é bom para depurar esse tipo de problema, como você pode ver no histórico.

Espero que isso ajude!

    
por 27.05.2010 / 17:33
1

Essas falhas de "duração" significam apenas que a duração do conteúdo (quantidade de dados servidos por seu aplicativo) para algumas das tentativas não coincidiu com a duração da primeira solicitação. Então, se ab obteve 100 bytes pela primeira vez. e, em seguida, recibido 150 bytes nas próximas 9 vezes, reportaria com 9 falhas de tamanho.

Se você está veiculando conteúdo dinâmico, esses erros são esperados e podem ser ignorados com segurança.

A resposta de Marco Ramos não está correta, não há razão para fazer algo como executar o netstat.

Aqui está uma explicação melhor de alguém no Stackoverflow:

Teste de carga com AB… falsos pedidos falhados (comprimento)

    
por 06.08.2012 / 21:08