多くの PDF を作成し、それらのファイルを提供するアプリケーションを開発しました。(通常のサーブレット バッファリング サービング)。
アプリケーションが複数のリクエストで効率的に動作することを確認するにはどうすればよいですか? 負荷/スケーラビリティ/効率と、現在のサーバー構成でコードが処理する並列リクエストの数をテストするためのツールはありますか?
多くの PDF を作成し、それらのファイルを提供するアプリケーションを開発しました。(通常のサーブレット バッファリング サービング)。
アプリケーションが複数のリクエストで効率的に動作することを確認するにはどうすればよいですか? 負荷/スケーラビリティ/効率と、現在のサーバー構成でコードが処理する並列リクエストの数をテストするためのツールはありますか?
Tsungのような負荷テスターを使用できます
Unix ベースのシステムを実行している場合、または Windows 用の Apache Webserver 2.x に付属している場合は、おそらく既にインストールされている Apache ベンチマークを使用するのが最も簡単です。
使用例;
$ ab -n 1000 -c 20 http://www.google.com/
この出力が得られます。
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.google.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: gws
Server Hostname: www.google.com
Server Port: 80
Document Path: /
Document Length: 218 bytes
Concurrency Level: 20
Time taken for tests: 1.826 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 807000 bytes
HTML transferred: 218000 bytes
Requests per second: 547.55 [#/sec] (mean)
Time per request: 36.527 [ms] (mean)
Time per request: 1.826 [ms] (mean, across all concurrent requests)
Transfer rate: 431.51 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 9 12 14.7 10 337
Processing: 11 24 26.8 17 306
Waiting: 11 22 21.1 16 297
Total: 21 36 30.5 28 350
Percentage of the requests served within a certain time (ms)
50% 28
66% 36
75% 39
80% 41
90% 45
95% 54
98% 93
99% 253
100% 350 (longest request)
JMeterもお勧めします。ブラウザのページ リクエストを記録して、JMeter テスト ( HTTP Proxy Server ) を作成することもできます。
また、アプリケーションが負荷の下でどのように動作するかを確認するための監視ツールも用意する必要があります。
最新の Sun JDK に含まれている jvisualvm から始めるとよいでしょう。
Apachebench
シングルスレッドツールです。これは、SMP サーバー (マルチスレッドまたはマルチプロセス) を飽和させることができないことを意味します。
むしろweighttp
、AB 構文を使用している を検討する必要があります (唯一の違いは、-t 4 が 4 秒のテストの代わりに 4 つのワーカー スレッドを使用することを意味することです)。