私自身の好奇心のために、サーバーでいくつかの負荷テストを実行するために、次のコマンドを実行しました。
ab -kc 50 -t 200 http://localhost/index.php
これにより、50 のキープアライブ接続が 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 の「失敗した」リクエストに注意してください。私はこれを理解することはできません。
テストの実行中、自宅のコンピューターから自分の Web サイトに完全にアクセスできましたが、ページの下部にあるページの読み込み時間は、通常の .02 ではなく .5 と報告されていました。ただし、リクエストが失敗したことは一度もありません。
では、なぜ AB は接続の半分が失敗したと報告しているのでしょうか? そして、「長さ:」はその文脈で何を意味するのでしょうか?