Чтобы провести нагрузочное тестирование, я из собственного любопытства запустил на своем сервере:
ab -kc 50 -t 200 http://localhost/index.php
Это открывает 50 соединений keep-alive на 200 секунд и просто забивает мой сервер запросами на index.php
В своих результатах я получаю:
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
Обратите внимание на 32951 «неудачный» запрос. Я не могу понять этого.
Во время выполнения теста я мог без проблем получить доступ к своему веб-сайту с домашнего компьютера, хотя время загрузки страницы в нижней части страницы было указано как 0,5 вместо обычного 0,02. Однако у меня ни разу не было неудавшегося запроса.
Так почему же AB сообщает, что половина соединений терпит неудачу? И что в этом контексте означает «Длина:»?