Pergunta

Para fazer alguns testes de carga, para a minha própria curiosidade, no meu servidor eu corri:

ab -kc 50 -t 200 http://localhost/index.php

Isso abre 50 conexões keep-alive para 200 segundos e apenas bate meu servidor com pedidos de index.php

Em meus resultados, eu recebo:

Concurrency Level:      50
Time taken for tests:   200.007 seconds
Complete requests:      33106
Failed requests:        32951
   (Connect: 0, Receive: 0, Length: 32951, Exceptions: 0)
Write errors:           0
Keep-Alive requests:    0
Total transferred:      1948268960 bytes
HTML transferred:       1938001392 bytes
Requests per second:    165.52 [#/sec] (mean)
Time per request:       302.071 [ms] (mean)
Time per request:       6.041 [ms] (mean, across all concurrent requests)
Transfer rate:          9512.69 [Kbytes/sec] received

Observe os 32951 pedidos "falidos". Eu não posso descobrir isso.

Como o teste foi executado, eu era capaz de acessar meu site a partir do meu computador de casa perfeitamente, embora tempos de carregamento da página na parte inferior da página foi relatada como 0,5 em vez dos habituais .02. No entanto, eu nunca tive um pedido falhou.

Então, por que é AB relatando que metade das conexões falham? E o que faz "Comprimento:" média nesse contexto

Graças

Foi útil?

Solução

de Nevermind. A "falha de comprimento" meramente indica que cerca de metade do tempo da duração da resposta foi diferente.

Uma vez que os conteúdos são dinâmicos, é provavelmente o identificador de sessão ou algo parecido.

Outras dicas

Para descrever o problema em outras palavras:

A ferramenta Apache aferição (ab) assume que o comprimento de conteúdo de resposta será o mesmo durante toda a prova. Ele armazena o tamanho do conteúdo da primeira resposta. Se qualquer um dos mais respostas têm comprimento diferente conteúdo, eles resultar em "falhas de comprimento".

A seguir apache relatório de bug parece confirmar que: ASF Bug 42040

Resumo :. Se você está servindo a qualquer conteúdo de comprimento variável, você provavelmente deve ignorar este tipo de falhas de solicitação ab

Editar : Tenho notado recentemente que o comando ab tem uma nova opção (pelo menos para mim):

-l   Accept variable document length (use this for dynamic pages)

Eu posso vê-lo em ab Versão 2.3 <$ Revision: 1.528.965 $> mas não pode vê-lo em ab Versão 2.3 <$ Revision: 655654 $> , por isso foi provavelmente adicionada recentemente.

Desculpe ressurrect uma questão antiga, mas foi o primeiro que apareceu no Google. Às vezes, o erro de comprimento relatado por ab pode ter sido causado por um problema real: se a conexão for do lado do servidor fechada antes de o montante total de bytes declarados no cabeçalho Content-Length não foi recebido pelo cliente. Isso pode acontecer se houver outros partidos entre o cliente eo servidor, por exemplo, ingênuas balanceadores de carga artesanal (meu caso).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top