Para fazer alguns testes de carga, por minha própria curiosidade, no meu servidor, executei:
ab -kc 50 -t 200 http://localhost/index.php
Isso abre 50 conexões keep-alive por 200 segundos e apenas bate meu servidor com pedidos de index.php
Nos meus resultados, 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 as solicitações "com falha" do 32951. Eu não consigo descobrir isso.
Enquanto o teste estava sendo executado, consegui acessar perfeitamente meu site no meu computador em casa, embora o tempo de carregamento da página na parte inferior da página tenha sido relatado como 0,5 em vez do 0,02 habitual. No entanto, nunca tive uma solicitação falhada.
Então, por que a AB está relatando que metade das conexões falha? E o que significa "Length:" nesse contexto?