私はJMeterでいくつかの基本的なテストを書き始めましたが、測定値がApacheabの測定値と大きく異なることに驚いていました。
Nginxを実行しているInteli7サーバーとJMeterまたはabを実行しているi5テストマシンを接続するギガビットLANがあります。最初は、すぐに使用できるNginxホームページの応答率をテストしているだけです。
ab -c 1 -n 100 http://testserver.local/
与える
Document Path:          /
Document Length:        151 bytes
Concurrency Level:      1
Time taken for tests:   0.078 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      38400 bytes
HTML transferred:       15100 bytes
Requests per second:    1280.77 [#/sec] (mean)
Time per request:       0.781 [ms] (mean)
Time per request:       0.781 [ms] (mean, across all concurrent requests)
Transfer rate:          480.29 [Kbytes/sec] received
この結果は一貫して再現可能であり、+/-数パーセントです。
JMeterには、以下を含む1ユーザーの100ループスレッドグループがあります。
- HTTPヘッダーマネージャーの設定Accept-Encoding:gzip
 - HTTPGet/サンプラー
 - 要約レポートリスナー
 
サンプルが100個しかないため、実行するたびに非常に一貫性のない結果が得られます。しかし、最も驚くべき事実は、スループットが1秒あたり40リクエスト(1280ではない)と報告されていることです。記録された最高のレートは1030でしたが、これは10,000サンプルに増やしたときにのみ達成されました。
JMeterはオーバーヘッドが高すぎて正確な測定ができないため、単純な負荷テストには不適切なツールであると私は考えていますか?