1.目的
ServletやCGIなどのWebアプリケーションの、パフォーマンス測定をします。
Apache JMeterを使うと、
・ランダムな間隔や等間隔の、リクエスト発行が出来る。
・同時アクセス数を設定できる。
ということが出来ます。
2.用意するべきもの
3.起動前の準備
とりあえず適当なディレクトリに展開したら、
バッチファイルが壊れているので、それを直しましょう。
修正対象は、$JMETER_HOME/bin/jmeter.batです。
最終行のjavaを起動するところで、ヘンなところに改行が入っているので、そいつを除去します。
最終行が、↓のようになっていればOKです。
4.JMeterを使う準備
JMeterを使う前に、Webアプリケーションを準備しましょう。
今回用意したのは、ごく簡単なCGIスクリプトとServletです。
Perl版 Hello World CGI
C言語版 Hello World CGI
Hello World Servlet
というわけで、起動の準備が完了したら使ってみましょう。
上で修正した、jmeter.batをダブルクリックでOKです。
こんなのが出ればOKです。
5.パフォーマンスを測定する
まずURL欄に、対象WebアプリケーションのURLを入力します。
そして、Runタブをクリックし画面を切り替えたら、
Actionsのドロップダウンリストから、「Show the samples analysys as dot plots」を選びます。
あとは、Runメニューから、Startを選ぶだけです!
条件はデフォルトで、
・ガウス分布による、リクエスト発生(平均間隔 300ms, 偏差 100.0)
・同時アクセス数10
です。
C言語版 Hello World CGI
Perl版 Hello World CGI
Hello World Servlet
6.結果
C-CGI | Perl-CGI | Servlet | |
平均レスポンス時間(ms) | 17 | 43 | 462 |
とまあ、ものすごい単純なアプリケーションにもかかわらず、
Cの方がPerlより速いというのが、顕著に表れています。
Servletはむちゃくちゃ遅いので、あんまり単純なアプリケーションを記述するのには、
向いていないと言えるでしょう。
7.その他
Setupタブの画面で、「Advanced HTTP Tester」を選べば、
POSTでパラメータを渡したり、HTTPの認証を使ったり、クッキーも使えたりします。
色々試してみましょう。
8.まとめ
このように、便利なツールを使って、簡単にパフォーマンスを測定できます。
Webアプリケーションのパフォーマンス改善などに役立てましょう。