− 例
2. JMeter から 1 スレッド、 1 回のシナリオ、リクエストの間隔 1 秒で実施し、各 リクエストの応答時間を計測
• 何が分かるの?
− 負荷が最も少ない状態での、応答時間が分かります。
− 1.の試験の結果が、応答時間の要件を満たしていない場合
•
これ以上試験をする必要はありません。早速、原因を調査して下さい。− 2.の試験の結果が、1.の試験結果と大きく異なっている場合
•
作成したシナリオの内容やJMeter
の設定などを確認してください。32 平成19年10月1日
3.基礎試験(低負荷試験)
• 試験 A : 1 多重複数回( 1 スレッド、 100 シナリオ)
− 応答時間が、だんだん悪くなるようなことはありませんか?
− スループットを記録して下さい。
• 試験 B : 2 多重複数回( 2 スレッド、 100 シナリオ)
− 平均応答時間は、どの程度悪くなりましたか?
− スループットは、試験 A の 2 倍ぐらいの値になっていますか?
• 試験 C : 4 多重複数回( 4 スレッド、 100 シナリオ)
− 平均応答時間は、どの程度悪くなりましたか?
− スループットは、試験 A の 4 倍ぐらいの値になっていますか?
基礎試験を実施した理由
• システムの限界性能に対して、試験 A から試験 C によ る負荷がどの程度の負荷になっているかを見るため に実施しています。
• 分析方法
− システムが限界性能に達したときに、スループットの値や応
答時間の値が一般的にどのように変化するかを知ることに
よって、試験 A から試験 C の負荷が限界性能に対してどの
程度の負荷であるかを予想することが出来ます。
34 平成19年10月1日
典型的な負荷試験の結果
スループットと応答時間
1 2
4
8
16
1 2
4
8
12 12.5
0.50.6 0.7 1.2
5
15
0 2 4 6 8 10 12 14 16 18
0 5 10 15 20 25 30
クライアント(スレッド)数 スループット(request/秒) 応答時間(秒)
スループット理想性能 スループット 応答時間
要求性能
試験結果の例
スループットと応答時間
0
1
2
4
8
0
1
2
3.5
4
0.5 0.6
1.4
6
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
クライアント(スレッド)数 スループット(リクエスト/秒) 応答時間(秒)
スループット理想性能 スループット 応答時間 限界性能
性能の劣化
36 平成19年10月1日
負荷試験のコツ
• シナリオの作成
• 各リクエストの間には間隔を入れる
• 各スレッドの開始時間をずらす
• 基礎データの取得
• 最初に、ブラウザから実行する
• 1 スレッドでシナリオを 1 回だけ実行して、各リクエストの応答時 間が要件を満たしていることを確認する
• 基礎試験の実施
• 1 スレッド複数回の実行
• 2 スレッド、 4 スレッドと、徐々に負荷をかける
• 実施している負荷試験が、限界性能に対してどの程度
の負荷を与えているかを把握しながら試験を実施して
下さい。
まとめ
• 負荷試験の重要性
• Apache JMeter
− 概要、入門、実践編
• 負荷試験方法
− 負荷試験の落とし穴
− 負荷試験方法のセオリー
付録
参考 URL
• URL
− Apache JMeter
http://jakarta.apache.org/jmeter/
− Apache Jakaruta Project : JMeter User Manual
http://jakarta.apache.org/jmeter/usermanual/index.html
− Apache Jakaruta Project : JMeter ユーザマニュアル
(日本語訳)
http://cgi0.biwa.ne.jp/~yabuta/study/jmeter/usermanual/
• 書籍
− 月刊 JavaWorld ( ジャバ ワールド ) 2005 年 12 月号
40 平成19年10月1日
関連 URL
• 日本ヒューレットパッカード・オープンソース& Linux
http://www.hp.com/jp/linux/
エレメント:スレッドグループ
• クライアントの設定
• 全てのテストプランはこれから始まります。
• この下にサンプラーやリクエストといっ たエレメントを追加していくことで様々
な設定を行います。
名前:テストケース名サンプラーエラー後のアクション:
サンプラー実行中にエラーが発生した際のアクション 続行(デフォルト)
/
スレッド停止/
テスト停止スレッド数:
(
デフォルト1)
JMeter
が生成するクライアント数(アクセスユーザ数)Ramp-Up
期間(秒):(
デフォルト1)
全てのスレッドが起動するまでの時間 ループ回数:(
デフォルト1)
各スレッドにて実行するテストケースの回数 スケジューラ:チェックを入れると時間指定などの
詳細な設定が可能
(
デフォルトOFF)
42 平成19年10月1日
プロキシサーバの使用
• ファイヤーウォールやプロキシサーバ越しにテストする場合
• ファイヤーウォールやプロキシサーバの名前やポート情報を JMeter の起動 コマンドに与えて起動します。
jmeter.bat –H [
プロキシサーバのホスト名] –P [
ポート]
–u [
ユーザ名] –p [
パスワード]
port:8080 port:80
テスト対象サーバ プロキシーサーバ
タイマ
タイマを『スレッドグループ』に付け加えるか、あるいは『
HTTP
リクエスト』等に付け加え るかによって、そのタイマの影響の範囲が異なります。『
HTTP
リクエスト』に『定数タイマ』をつけた例この場合、タイマが適用されるのは、『リクエスト
A
』のみで す。『リクエスト
B
』には、タイマは適用されません。したがって、右の例の場合は、以下のように動作します。
実行⇒
10
秒待機⇒リクエストA
⇒リクエストB
『スレッドグループ』に『定数タイマ』をつけた例
この場合は、『スレッドグループ』以下の全てのサンプラー
(
この例では、『リクエストA
』と『リクエストB
』)
との間で、タイマによって指定された分だけ待機時間が発生します。
したがって、右の例の場合は、以下のように動作します。
実行⇒
10
秒待機⇒リクエストA
⇒10
秒待機⇒リクエストB
44 平成19年10月1日
HTTP 認証マネージャ
HTTP 認証マネージャは、 HTTP 認証 (Basic 認証 ) を利用できます。
追加⇒設定エレメント⇒
HTTP
認証マネージャを選択します。例えば、
http://localhost/admin/
にHTTP
のBasic
認証がかけられているとします。ま た、その認証ID
とパスワードがそれぞれ“admin”
と“admin”
だとします。その場合は、上記のような設定すれば、
HTTP
のBasic
認証をパスすることができます。※ 「パスワード」の部分は自動的に伏字になります