負荷テストに apache bench を使ってみた。今まではあんまり厳密にやったことなかったんだけど、ふとカウンタを作って数えてみた。
数が合わない。
厳密には concurrency の数を上げていくとずれてくる。例えば
ab -n 100 -c 10 URL
ってやるとレポートには
Concurrency Level: 10
Time taken for tests: 1.714 seconds
Complete requests: 100
Failed requests: 0
てな具合に100回アクセスしましたよと出るのに、実際の connection 数が 108 だったり 110 だったりする。
ただし、この現象は apache bench 2.x では起きない。確認したのは以下のもの。
apache bench | OS | 正確さ |
1.3d | OSX 10.3.9 | × |
2.0.41-dev | FreeBSD 6.0R | ○ |
サーバは Apache 1.3 だろうと 2.0 だろうと影響ない。単純に ab の問題。
'general/6129: AB gives fake failed connections' - MARC
を見ると 2000年にも似たような話が確認されている。もう Apache 1.3 系のものはその程度のものとして諦めておくのがいいのかな? まぁ実際のテストでは数が合おうが合うまいがだから何?ってことの方が多いんだろうけど。