3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(ツール)WEBサイトの負荷試験でJMeterを使ってみた

運用中のWEBサイトで、一部のクライアントから、たまにPHPのWEBアプリのページで HTTP 500 のステータスになるという報告がありました。

ただ、自分のクライアントPCからでは現象が起きません。

もしかしたら、サーバが過負荷の状態があるのかもしれないと思って、負荷試験をすることに。。

以前某メーカー系でJ2EEアプリケーションサーバ開発時は Microsoft の Web Application Stress ツールを使って評価してたので、ほんと久しぶり(数年ぶり)に使おうと思ったら、Vista には対応してないんですね。

インストール中にエラーは出るし、インストール後も「MSVCP50.dllが見つからなかったため...」という感じで起動できませんでした。

で、別のツールを探してると JMeter たるものを発見。

あの Tomcat と同じ Jakarta Project で開発されてる Java 上で動く負荷試験ツールのようです。

Jakarta Projectのサイトからバイナリ、ソース共にダウンロードできます。

一応下記のサイトを参考に使ってみました。(時間なかったんで、触りしか読んでませんが。。。)

STACK*:【連載 】JMeter(高機能/フリーなテストツール)

TECHSCORE:JMeterの基本

@IT:第2回 JMeterによるWebサーバ性能評価の勘所

使い方等は上記サイトで丁寧に説明されてました。

なんか HTTP 以外にも FTP とか JDBC とかいろいろな負荷試験が出来るようです。

今回はあるPHPページで認証やクッキー、POST情報が要らないページだったので、割合とすんなりできました。

起動には、「jmeter.bat」を開いてやればOKです。

↑まず「スレッドグループ」というのを作る必要があるそうです。

↑そのスレッドグループで、スレッド数やループ回数、いわゆる負荷を設定します。

上記の図は、かなり大負荷ですね。。。

小規模サイトなら普通はスレッド数 10 くらいでやってたかと。。

↑「サンプラー」でリクエストの種類を設定します。

これ見ると、いろいろありますね。JMeter の高機能さが伺えます。

↑WEBサーバに対するテストなので、HTTP のサンプラーを追加しました。

ここで、サーバ名や対象ページ、パラメタを設定します。

↑後は、「リスナー」でどのような結果表示するかを設定します。

↑これが、「結果をツリーで表示」リスナーで表示した結果です。

赤がステータスがダメだったやつですね。

やっぱり HTTP 500 が結構返ってます。。。

今回は最低限の機能しか使ってませんが、いろいろ使いこなすとかなり強力なツールになりそうです。