...

Apache JMeter

by user

on
Category: Documents
15

views

Report

Comments

Transcript

Apache JMeter
オ ー プ ン ソー ス カ ン フ ァ レン ス 2 0 0 6
Tokyo/ Fall
Apache JM eterで
性能試験を しよ う !
水野浩典
オ ー プ ン ソー ス ・コン ピ テ ン シ・セン ター
日本ヒ ュ ー レッ トパ ッ カ ー ド株式会社
2 0 0 6 年1 0 月2 8 日
© 2 00 6 Hewlett-Packa rd Development Compa ny, L.P.
The informa tion conta ined herein is subject to cha ng e without notice
内容
•
性能試験の 重要性
•
Apache JM eter
•
性能試験方法
•
APサ ー バ の チ ュ ー ニ ン グ の ヒン ト
2
1
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
性能・負荷試験の 重要性
•
必要な理由
− 性能・負荷試験は 、単体テ ス トや 結合テ ス トでは 発見す ること が 出来な
か っ た 問題を見つ け るた め に 必ず 行う 必要が あ り ま す 。
•
必要な理由(そ の 2 )
− 実際に は 、想定外の 負荷が 掛か ること も考慮し、想定外の 負荷試験を
実施す ること も重要と なり ま す 。
•
本当の 理由
− シス テ ム の カ ッ トオ ー バ ー 後の 夜中や 休日に 、緊急に 呼び出され ない
よ う に す るた め !
3
平成18 年10 月3 0日
現実に 発生して い る 問題
•
性能試験が 、そ もそ も計画に 入っ て い ない 。
•
納期に 間に 合わ ない の で、機能試験は した が
性能試験ま で出来なか っ た 。
•
性能・負荷試験を実施す る に は 、商用製品が
必要なこと が 分か っ た が 、高い の で買え ない 。
•
試験ツ ー ル の 使い 方が 良く分か ら ない 。
•
と り あ え ず 、性能・負荷試験をして みた が 、試
験結果が 正しい か よ く分か ら ない ?
•
以前に 性能試験を してみ た が 、大変だ っ た の
で出来れ ば や り た くない 。
•
なん だ か 性能が 出ない . . .
4
2
性能・負荷試験の 重要性をプ ロ ジェ
ク ト内で認識して 、実施す る よ うに し
て 下さい 。
Fr e e で 使用でき る A p a ch e JM e te r
を 御使用下さい 。
今か ら 、御説明致しま す 。
経験に よ る と ころも多い の です が 、性
能・負荷試験の セオ リ ー に つ い て 御
説明致しま す 。
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
Apache JM eter概要
JM eterと は
JM eterは Jaka rta プ ロ ジェ ク トが 開発して い るパ フ ォ ー マ ン ス 計測
/負荷テ ス トツ ー ル
オ ー プ ン ソー ス 、無償
1 0 0 % pure Javaなの でW indows、Linuxなど 、実行環境に 依存しない
G UIを 用い て操作できる
大量の クラ イア ン トか ら の リ クエ ス の 生成/実行が 可能
HTTP(HTTPS)、デ ー タベ ー ス 、FTP、W EBサ ー ビ ス など の 様々なプ ロ トコ
ル での パ フ ォ ー マ ン ス 検証が 可能
エ ラ ー 発生の 有無、期待した デ ー タが レ ス ポ ン ス に 含ま れて い るか の
確認など も簡単に 行う こと が 可能
W ebブ ラ ウ ザ 上で行っ た 操作を テ ス トの シナ リ オ と して記録し、そ れを
テ ス ト・ス ク リ プ トと して 繰り 返し利用、簡単に 編集可能
6
3
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
w ebシス テ ム の 性能・負荷試験
w eb ブ ラウ ザ
•
•
通常、w eb シ ス テ ム に お
い て は 複数の w eb ブ ラ ウ
ザ か ら の 多く の リ ク エ ス ト
を 送出
Lo a d Ba la n ce r
複数の ブ ラ ウ ザ の 代わ り
に 、JM eterか ら 擬似的に
リ ク エ ス トを 送出
A p a ch e
W e b Se r v e r
D a ta b a se
Sto r a g e
7
平成18 年10 月3 0日
JM eterの 動作概要
実行
JM eterに テス トプ ラ ンを 設定して 、これを 実行す る
テ ス トプ ラ ン
手動で作成す るか 、プ ロ キ シ機能を用い て 自動で作成
テ ス トプ ラ ンの 中で、生成す るス レッ ド数と 実行回数を指定
複数ク ラ イア ン トの 実行
Javaの ス レ ッ ドを用い て 、複数クラ イア ン トの 同時実行を 実現
Th re a d
(Cli en t)
テ ス トプ ラン
*.jmx
H TTPリ ク エ ス ト
測定対象の
w eb サ ーバ
結果フ ァ イル
*.jtl
8
4
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
Apache JM eter入門
JM eterの イ ン ス トー ル
フ ァ イ ル を ダ ウ ン ロ ー ドし、適当なデ ィ レク トリ に 展開
す る だ け です 。
1 . JM e te rの ダ ウ ン ロ ー ド
Jakartaサ イ トの 以下ペ ー ジよ り 最新の JM eterバ イナ リ をダ ウ ン ロ ー ド
http: //jakarta. apache.org /site/binindex.cg i# jmeter_ binaries
※最新版は JM eter2 . 2です 。
ここでは jakarta-jmeter-2. 2 .zipを ダ ウ ン ロ ー ド
2 . JM e te rの イ ンス トー ル
ダ ウ ン ロ ー ドした zip/tarフ ァ イ ル を JM eterをイ ン ス トー ル した い デ ィレ
ク トリ に 展開
10
5
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
JM eterの 起動
JM eterを 展開してできた デ ィレク トリ に あ るbinデ ィレクトリ の JM eter起動フ ァ イル
jmeter. ba t をダ ブ ル ク リ ッ ク して 下さい 。
jm e ter . b a t
正しく起動され て い れ ば 、コマ ンドプ ロ ンプ トと 以下の 通りの 画面が 表示されま す 。
テ ス ト計画
実際の テ ス トシナ リ オ を作成す る場所
ワ ー クベ ンチ
テ ス トに 使用しない 要素を一時的保管
HTTPプ ロ キ シを動作させ る 場所
11
平成18 年10 月3 0日
1.ス レ ッ ドグ ル ー プ の 作成
JM eterの テ ス ト実行計画を作成す る 場合、ま ず ユ ー ザ (ス レッ ドグ ル ー プ )を作成しま す 。
テ ス ト計画を 選択して 、右ク リ ッ ク しま す 。
追加⇒ス レッ ドグ ル ー プ を選択しま す 。
わ か り や す い 名前を 付け ま す 。
実施す べ きテ ス トプ ラ ン に 沿っ た
ス レ ッ ド数(ユ ー ザ 数)等の 設定を しま す 。
12
6
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
2.デ フ ォ ル トHTTPリ ク エ ス トの 作成
ス レッ ド共通の H TTPリ ク エ ス トの デ フ ォ ル ト値を設定エ レメントの 作成よ り 設定しま す 。
※そ の 他 設定す べ き設定エ レメン トが あ れ ば 設定しま す 。
作成した ス レッ ドグ ル ー プ を 選択して 、右ク リ ッ ク しま す 。
追加⇒設定エ レメン ト⇒H TTPリ クエ ス ト初期値設定を選択しま す 。
テ ス ト対象の サ ー バ 名/IPを 定義しま す
13
平成18 年10 月3 0日
3.サ ン プ ラ ー の 作成
実際に H TTPリ クエ ス ト処理を行うもの と して 、サ ン プ ラー を作成しま す 。
作成した ス レッ ドグ ル ー プ を 選択して 、右ク リ ッ ク しま す 。
追加⇒サ ンプ ラー ⇒H TTPリ ク エ ス トを選択しま す 。
わ か り や す い 名前を 付け ま す 。
ア ク セ ス 対象は 、設定エ レ メン トで設定
して ま す 。
こ こ では 、実際の HTTPリ ク エ ス トの
パ ス 等の み 設定しま す 。
14
7
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
4.リ ス ナ ー の 作成
テ ス ト結果の 表示と 保存の た め に リ ス ナ ー を 追加しま す 。
※リ ス ナ ー は 、各々の テ ス トプ ラ ン に お い て 必要なもの を設定しま す 。
作成した ス レッ ドグ ル ー プ を 選択して 、右ク リ ッ ク しま す 。
追加⇒リ ス ナ ー ⇒統計レポ ー トを選択しま す 。
結果を フ ァ イ ル に 保存で きま す 。
サ ン プ ラ ー の 処理結果が そ れ ぞ れ の
リ ス ナ ー に 応じた 形で動的に 表示され ま す 。
15
平成18 年10 月3 0日
5.テ ス トプ ラ ン の 保存
テ ス トプ ランを 実行す る 前に 、テ ス トプ ラ ンの 保存をしま す 。
メニ ュ ー の フ ァ イル ⇒テ ス ト計画を 保存
ま た は 、 フ ァ イル ⇒ テ ス ト計画に 名前を つ け て 保存を選択しま す 。
わ か り や す い 名前を つ け て 保存しま す 。
16
8
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
6.テ ス トプ ラ ン の 実行
テ ス トプ ラン実行開始の 準備が 完了後、テ ス トプ ランの 実行を開始しま す 。
メニ ュ ー の 実行⇒開始を選択、ま た は 、 『Ctr l』+ 『R』を押しま す 。
テ ス トプ ラ ン の 実行後、テ ス トが 正常
に 行わ れ て い る か ど う か を 確認す る に
は 、設定した リ ス ナ ー を 参照しま す 。
17
平成18 年10 月3 0日
7.実行結果の 確認
テ ス トが 終了した ら リ ス ナ ー に お い て 、テ ス ト実行結果を 確認しま す 。
追加⇒リ ス ナ ー ⇒統計レポ ー トを選択しま す 。
18
9
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
実行イ メー ジ
テ ス ト計画
ス レッ ドグ ル ー プ (3 ス レッ ド、4回)
リ ク エ ス ト初期値設定
統計レポ ー ト
ス レッ ド
Ra mp-up期間
HTTPリ ク エ ス ト
19
平成18 年10 月3 0日
Apache JM eter実践編
10
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
内容
1 . JM e te rの チ ュ ー ニ ン グ
2 . タイマ
3 . テ ス トプ ラ ン の 自動生成
21
平成18 年10 月3 0日
JM eterの チ ュ ー ニ ン グ
問題
JM e te rで数多くの ス レッ ド(クラ イア ント)を実行す る と 、容量不足に なり 以下の よ う
なエ ラー が 発生す る こと が あ りま す 。
ERRO R - jm e ter . th r e a d s. JM ete r Th r ea d : Test fa ile d !
ja v a . la n g . O u tO fM em o ry Er r o r: Ja v a h ea p sp a ce
JM e te rの チ ュ ー ニ ン グ が 必要です ! !
• 起動ス ク リ プ ト($ JM ETER_ H O M E/b in /jm ete r . b a t)を 編集しま す 。
• Ja v a ヒ ー プ の 大きさを 大きくして下さい 。
テストとマシンのスペックに応じて
チューニングします。
se t H EA P= -X m s2 5 6 m -X m x 2 5 6 m
22
11
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
タイ マ
JM eterが リ クエ ス トを 送信す る と きデ フ ォ ル トでは 、間髪を 入れ ず に リ ク エ ス トを 送信
しま す 。
タイマ を利用す る こと で、そ れぞ れの 処理の 間に 間隔を入れる こと が 出来ま す 。
左フ レー ム の 『ス レッ ドグ ル ー プ 』を 選択した 後、右ク リ ッ クま た は 『編集』メニ ュ ー か
追加⇒タイマ を選択して 、『定数タイマ 』や 『定数ス ル ー プ ッ トタイマ 』等を 追加しま す 。
「定数タイマ 」は 、待ち 時間を ミリ 秒で指定しま す 。
「定数ス ル ー プ ッ トタイマ 」は 、1 分間に 送出す る リ ク エ ス ト数で指定しま す 。
例)6 0 を設定す る と 1秒間に 1 つ の リ クエ ス トが 送出されま す 。
23
平成18 年10 月3 0日
タイ マ を 使用した と きの 実行イ メー ジ
テ ス ト計画
ス レッ ドグ ル ー プ (1 ス レッ ド、4回)
リ ク エ ス ト初期値設定
統計レポ ー ト
ス レッ ド
タイ マ
HTTPリ ク エ ス ト
24
12
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
テ ス トプ ラ ン の 自動生成
JM eterに は 、ブ ラ ウ ザ か ら行っ た 操作を テ ス ト計画に 自動的に 変換してくれ る
H TTPプ ロ キ シサ ー バ 機能が あ り ま す 。
手順1 . ス レ ッ ドグ ル ー プ の 作成
手順2 . HTTPリ ク エ ス ト初期値設定エ レ メン トの 追加
手順3 . H TTPプ ロ キ シサ ー バ エ レ メン トの 追加
手順4 . W e b ブ ラ ウ ザ の プ ロ キ シ サ ー バ を 設定
手順5 . テ ス ト計画の 記録
手順6 . テ ス ト計画の 編集
手順7 . リ ス ナ ー の 追加
手順8 . テ ス ト計画の 保存
手順9 . テ ス トの 実行
• プ ロ キ シを 設定
• シナ リ オ の 実行
p o r t: 8 0
p o r t: 8 0 8 0
テ ス トプ ラン の
プ ロ キ シモ ー
ドで動作
25
自動生成
テ ス ト対象サ ー バ
平成18 年10 月3 0日
性能試験
13
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
性能試験概要
性能試験を 実施す る 時の フ ロ ー の 概要
1 . 事前調査(想定負荷、試験環境、試験項目)
2 . 環境の 準備(H W 、SW 、試験デ ー タ)
3 . 試験プ ラ ン 作成と 実施
4 . 結果の 分析と 確認
27
こ こで 性能が 出な
い と 大変です !
平成18 年10 月3 0日
性能試験での 実例
実際の プ ロ ジェ ク トでの 実例(w i th 脚色)
• A さん は 、下記の シス テ ム 用件で 性能試験をす る こと に なり ま した 。
• 応答時間は 2 秒以内
• 最大同時ユ ー ザ ー 数は 1 0 0 人
• 試験シナ リ オ (ロ グ イ ン 、商品検索、カ ー トに 商品を入れ る、購入、ロ グ ア ウ ト)
• 試験環境と シナ リ オ は 、完璧に 準備しま した 。
• と ころで 、ど の よ うな試験をす れ ば よ い の だ ろう ???
•
•
•
•
最大同時ユ ー ザ が 100人なの で、JM e te r を 用い て 100ス レッ ドで 試験す れ ば 良い だ ろ う。
あ ま り 多く 実行す ると 危ない の で、と り あ え ず 、実行回数は 1 人に つ き 1 回に しよ う!
そ して 、全て の リ ク エ ス トの 応答時間が 2 秒以内で あ れ ば シ ス テ ム 要件を満た す こと に なる。
こ れ で僕の 仕事も終了だ !
試験開始!
28
14
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
結果
応答時間が と ん でもない 値に なっ て しま い ま した 。
キ ャ ッ シュ が 原因か なぁ !? もう 一回実施しよう !
あ れ ? 変わ ら ない なぁ ?
あ と 、もう一回実施す る。 うん ん ………変わ ら ない なぁ !
e te r は だ め だ なぁ !
高い け ど 商用製品を 買う しか ない !
や っ ぱ 、JM
待っ て くだ さい !
JM e te rは
悪くあ り ま せ ん 。
29
なぜ 、こ の よ う なこ と に なっ て
しま っ た の で しょ う か ?
何が 悪か っ た の でしよ う か ?
平成18 年10 月3 0日
Aさん が 実施した 試験と は ?
•
ど の よ う な試験を 実施した こ と に なる の ?
−1 0 0 人が 同時に 、下記シナ リ オ を 実施
• ロ グ イ ン、商品検索、カ ー トに 挿入、購入、ロ グ ア ウ ト
−そ の 上1 0 0 人が 、各操作を 必死で休み 無く実行
•
こ れ っ て ど ん な負荷?
−人気商品を 特定の 時刻に 売り 出した 時の よ う な負荷
30
15
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
Aさん が 実施した 試験の 概要
テ ス ト計画
ス レッ ドグ ル ー プ
リ ク エ ス ト初期値設定
統計レポ ー ト
1 0 0 ス レッ ド
連続実行
:
:
同時実行
31
平成18 年10 月3 0日
Aさん の 試験の 改善方法
テ ス ト計画
ス レッ ドグ ル ー プ
リ ク エ ス ト初期値設定
統計レポ ー ト
ス レッ ド
Ra mp-up期間
32
16
:
:
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
負荷試験方法の セオ リ ー
•
実際の 試験で は 、何ス レ ッ ドで試験を す れ ば 良い の で しょ う
か ? シナ リ オ は 何回実施す れ ば 良い の でしょ う か ?
•
よ ほ ど 自信が あ る 場合以外は 、以下の よ う に 小さな負荷か
ら 試験を 実施して 下さい 。
1 . 想定負荷の 検討
2 . 基礎デ ー タの 取得
3 . 小さな負荷試験
4 . 想定負荷の 負荷試験
5 . 高負荷試験
高負荷で 問題が 発生した 場合は 、基礎デ ー タと 比較す る こ
と に よ り 、解決の 糸口を 見つ け るこ と が 出来ま す 。
•
33
平成18 年10 月3 0日
想定負荷の 検討
•
実際の プ ロ ジェ ク トなど で は 、性能の 目標値が 無か っ た り 、不明
確であ るこ と が 多々あ り ま す 。
−実例
• 最大ユ ー ザ ー 数は 1 0 0 人、応答時間は 、2 秒以内 → 同時ユ ー ザ 数は ?
• ユ ー ザ ー 数は 1 0 0 人、秒間5 0 個の 処理 → 5 0 個の 単位は ?
•
最低、確認す べ き項目
−ユ ー ザ ー 数は シス テ ム に 登録され る人数?そ れ と も同時に シス テ ム に ア ク
セス す る人数?
• JM e te rで試験を す る場合の ス レッ ド数と は 、同時ア ク セス 数に 対応しま す 。
−ス ル ー プ ッ トの 単位は H TTPリ ク エ ス ト? そ れ と もシナ リ オ 単位?
• JM e te rでの 試験結果の 集計は 、H TTPリ ク エ ス ト単位で行わ れま す 。
−応答時間の 目標値
34
17
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
基礎デ ー タの 取得
•
1 ユ ー ザ が シ ナ リ オ を 1 回だ け 実行した 時の リ ク エ ス トの 応答時
間を 測定しま す 。
1 . 1 つ の ブ ラウ ザ か らシナ リ オ を 実行した 時の 応答時間の 測定
2 . JM eterか ら 1 ス レ ッ ド、1 回の シナ リ オ 、リ ク エ ス トの 間隔1 秒で実施し、各
リ ク エ ス トの 応答時間を 計測
•
何が 分か るの ?
− シス テ ム に お け る最高の 応答時間が 分か り ま す 。
− 1 の 試験の 結果が 、応答時間の 要件を 満た してい ない 場合
• これ 以上試験をす る必要は あ り ま せ ん 。早速、遅い 原因を 調査して 下さい 。
− 2 の 試験の 結果が 、1 の 試験結果と 大きく 異なっ て い る場合は 、JM eterの
設定など を 確認して くだ さい 。
35
平成18 年10 月3 0日
性能基礎試験
•
い よ い よ 負荷を か け て い き ま す 。あ せ る 気持ち を 抑え て 以下の
順番で試験を 実施しま しょ う 。
•
試験A : 1 多重複数回(1 ス レ ッ ド、1 00 シナ リ オ )
−応答時間が 、だ ん だ ん 悪くなる よう なこと は あ りま せ ん か ?
−ス ル ー プ ッ トを 記録して下さい 。
•
試験B : 2 多重複数回(2 ス レ ッ ド、1 0 0 シナ リ オ )
−平均応答時間は 、ど の 程度悪くなり ま した か ?
−ス ル ー プ ッ トは 、試験Aの 2 倍ぐ ら い の 値に なっ てい ま す か ?
•
試験C : 4 多重複数回(4 ス レ ッ ド、1 0 0シナ リ オ )
−平均応答時間は 、ど の 程度悪くなり ま した か ?
−ス ル ー プ ッ トは 、試験Aの 4 倍ぐ ら い の 値に なっ てい ま す か ?
36
18
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
性能基礎試験っ て ?
•
疑問?
−試験A、試験B、試験Cを 実施しま した が 、これ ら の 試験は 何の た め に 行っ
た の でしょ う か ?
−次に ど の よ うな試験を す れ ば 良い の でしょ うか ?
•
基礎性能試験を 実施した 意味
−シス テ ム の 限界性能に 対して 、試験Aか ら 試験Cに よ る負荷が ど の 程度の
負荷に なっ て い るか を 見るた め に 実施してい ま す 。
•
分析方法
−シ ス テ ム が 限界性能に 達した と きに 、ス ル ー プ ッ トの 値や 応答時間の 値が
ど の よ う に 変化す るか の 傾向を 知る こ と に よ っ て 、試験Aか ら 試験Cの 負荷
の 程度を予想す ること が 出来ま す 。
37
平成18 年10 月3 0日
典型的な性能試験結果
ス ル ー プ ッ トと 応答時間
18
16
16
ス ル ープッ ト(request/秒)
応答時間(秒)
15
14
12
12.5
12
10
8
8
要求性能
6
4
5
4
2
2
1
0.50.6 0.7
0
0
5
1.2
•
10
15
20
ク ラ イ ア ン ト(ス レ ッ ド)数
ス ル ー プ ッ ト理想性能
ス ル ー プッ ト
25
応答時間
30
基礎デ ー タ
−1ス レッ ドで 試験
−1 秒間に 1つ の リ ク エ ス ト
を送信
−平均応答時間は 、0. 5秒
38
19
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
試験結果の 例
スル ー プ ッ トと 応答時間
9
ス ル ー プッ ト(リ ク エ ス ト/秒)
応答時間(秒)
8
8
性能の 劣化
7
6
6
5
4
4
3.5
限界性能
2
2
1
1.4
1
0.5
0
•
0.6
基礎デ ー タ
−1ス レッ ドで 試験
0
0
1
2
3
4
5
6
ク ラ イア ン ト(スレ ッ ド)数
ス ル ー プ ッ ト理想性能
39
4
3
スル ー プ ッ ト
7
8
9
応答時間
−1 秒間に 1つ の リ ク エ ス ト
を送信
−平均応答時間は 、0. 5秒
平成18 年10 月3 0日
性能試験の コ ツ
• シナ リ オ の 作成
• 各リ ク エ ス トの 間に は 間隔を 入れ る
• 各ス レ ッ ドの 開始時間を ず ら す
• ス レッ ドグ ル ー プ の Ra m p -u p 時間は 長め に 設定す る
• 基礎デ ー タの 取得
• 最初に 、ブ ラウ ザ か ら 実行して 見てくだ さい 。
• 期待す る 応答時間内で処理できて い ま す か ?
• 1 ス レ ッ ドでシナ リ オ を 1 回だ け 実行して、各リ クエ ス トの 応答時
間が 要件を 満た して い ること を確認して くだ さい 。
• 性能基礎試験
• 1 ス レ ッ ド複数回の 実行
• 2 ス レ ッ ド、4 ス レ ッ ドと 、徐々に 負荷を か け て下さい 。
• 実施して い る性能試験が 、限界性能に 対して ど の 程度
の 負荷を 与え て い るか を 把握しなが ら 試験を 実施して
下さい 。
40
20
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
性能試験の コ ツ :そ の 2
• 早め の 性能試験の す す め
• 出来れ ば 、プ ロ トタイ プ の 作成時や 、開発時か ら 負荷試験を 実施
す ること を お 勧め しま す 。
• 単体機能の 負荷試験も可能です。
41
平成18 年10 月3 0日
Application Server
チュ ーニ ング の ヒント
21
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
基礎的なチ ュ ー ニ ン グ
•
JVM の ヒ ー プ メモ リ ー の 拡張
−ど の よ うな時に 拡張す る必要が あ るの ?
• O utO fM emoryエ ラー の 発生
• ja va –verboseg cでヒ ー プ の 使用量を 確認す る と 、最大値の 8 0 % ぐ ら い 使用し
ている。
−設定
• -Xmx でヒー プ メモ リ ー の 最大値を設定して 下さい 。
•
リ ク エ ス トの 通り 道の 確保
−試験の 多重度と 同程度あ り ま す か ?
• APサ ー バ の ス レッ ド数
• JDBCコネク ショ ン 数
43
平成18 年10 月3 0日
性能が 出ない 場合の 対処
•
APサ ー バ の CPUの 使用率が 低い 場合
− デ ー タベ ー ス の 応答時間の 問題
• デ ー タベ ー ス へ の ク エ リ に 遅い ク エ リ は あ り ま す か ?
− Javaア プ リ ケ ー ショ ン 内での 共有リ ソー ス に 対す るロ ッ クの 問題
• デ ー タベ ー ス へ の ク エ リ の 応答時間に 問題が ない 場合は 、調査して み
て 下さい 。
•
APサ ー バ の CPUの 使用率が 高い 場合
− ア プ リ ケ ー シ ョ ン 内で CPUを 消費(浪費)す る処理の 有無を調査して
下さい 。
44
22
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
APサ ー バ チ ュ ー ニ ン グ の ヒ ン ト
• 性能が 出ない 場合
• Ja v a –X m x の 設定は され てい ま す か ?
• A Pサ ー バ の ス レ ッ ド数、JD BCコネ ク ショ ン 数は リ クエ ス トの 多重
度と 同程度確保されて い ま す か ?
• デ ー タベ ー ス の 応答時間に 問題は ない です か ?
• Ja v a ア プ リ ケ ー ショ ン 内で共有リ ソー ス の ロ ッ クの 問題は 発生し
ていませんか ?
45
平成18 年10 月3 0日
まとめ
•
性能試験の 重要性
•
Apache JM eter
•
性能試験方法
•
APサ ー バ の チ ュ ー ニ ン グ の ヒン ト
46
23
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
付録
参考URL
•
U RL
− A p a ch e JM e te r
http: //ja ka rta . a pa che. org /jmeter/
− A p a ch e Ja k a ru ta Pr o je ct U se r M a n u a l
http: //jaka rta. a pache. org /jmeter/usermanual/index. html
− A p a ch e Ja k a ru ta Pr o je ct ユ ー ザ マ ニ ュ ア ル (日本語訳)
http://cg i0. biw a. ne. jp/~ya buta/study/jmeter/userma nua l/
− JM e te rエ ン コー ド指定パ ッ チ
http: //testkei. secret. jp/blog /jablog /archives/cat1 6 3 /java/jmeter/index. html
− 動的リ クエ ス トの 利用(複数の リ クエ ス トパ ラメー タの 利用方法)
http: //w iki. apache. org /jakarta-jmeter/JM eterFAQ #head-168 086 36 782 57fbcb 85b d9 7 3518 60eb00 49f19 ae
•
書籍
− 月刊Ja v a W o rld (ジャ バ ワ ー ル ド) 2 0 0 5 年1 2 月号
48
24
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
関連URL
日本ヒ ュ ー レッ トパ ッ カ ー ド・オ ー プ ン ソー ス &Li n u x
•
h ttp : //w w w . h p . co m /jp /lin u x /
49
平成18 年10 月3 0日
エ レ メン ト:ス レ ッ ドグ ル ー プ
• ク ラ イア ン トの 設定
• 全て の テ ス トプ ラ ン は これ か ら 始ま り ま す 。
• この 下に サ ンプ ラ ー や リ クエ ス トと い っ
た エ レ メン トを 追加してい くこと で様々
名前:テ ス トケ ー ス 名
な設定を行い ま す 。
サ ン プ ラ ー エ ラ ー 後の ア ク ショ ン:
サ ン プ ラ ー 実行中に エ ラ ー が 発生した 際の ア ク ショ ン
続行(デ フ ォ ル ト)/ス レッ ド停止/テ ス ト停止
ス レッ ド数: (デ フ ォ ル ト1 )
JM eterが 生成す る ク ラ イ ア ン ト数(ア ク セ ス ユ ー ザ 数)
Ra m p -U p 期間(秒): (デ フ ォ ル ト1 )
全て の ス レッ ドが 起動す る ま で の 時間
ル ー プ 回数: (デ フ ォ ル ト1 )
各ス レッ ドに て 実行す る テス トケ ー ス の 回数
ス ケ ジュ ー ラ :チェ ッ ク を入れ る と 時間指定など の
詳細な設定が 可能(デ フ ォ ル トO FF)
50
25
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
Ra mp-up期間の 設定に つ い て
•
ス レ ッ ドグ ル ー プ の Ra m p -u p 期間(秒)と は ?
−最初の ス レ ッ ドが 起動して か ら 、最後の ス レ ッ ドが 起動す る ま で の 時間を
指定しま す 。
•
ス レ ッ ド数秒以上の 値を 設定す るこ と を お 勧め しま す 。
•
例え ば 、ス レ ッ ド数「3 」で 、Ra m p -u p 期間が 「6 秒」の 場合は 、
6 ÷3 = 2 秒間隔でス レ ッ ドが 生成され ま す 。
6秒
2秒
ス レッ ド
51
平成18 年10 月3 0日
プ ロ キ シサ ー バ の 使用
• フ ァ イ ヤ ー ウ ォ ー ル や プ ロ キ シサ ー バ 越しに テス トす る場合
• フ ァ イ ヤ ー ウ ォ ー ル や プ ロ キ シサ ー バ の 名前や ポ ー ト情報を JM eterの 起動
コマ ン ドに 与えて 起動しま す。
jm e ter . b a t –H [プ ロ キ シサ ー バ の ホス ト名] –P [ポ ー ト]
–u [ユ ー ザ 名] –p [パ ス ワ ー ド]
p o r t: 8 0 8 0
p o r t: 8 0
テ ス ト対象サ ー バ
プ ロ キ シー サ ー バ
52
26
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
タイ マ
タイマ を『ス レッ ドグ ル ー プ 』に 付け 加えるか 、あ る い は 『HTTPリ クエ ス ト』等に 付け 加え
る か に よ っ て 、そ の タイマ の 影響の 範囲が 異なりま す 。
『H TTPリ ク エ ス ト』に 『定数タイマ 』を つ け た 例
こ の 場合、タイ マ が 適用さ れ る の は 、『リ ク エ ス トA 』の み で
す。
『リ ク エ ス トB』に は 、タイ マ は 適用され ま せ ん 。
した が っ て 、右の 例の 場合は 、以下の よ う に 動作しま す 。
実行⇒1 0 秒待機⇒リ ク エ ス トA ⇒リ ク エ ス トB
『ス レ ッ ドグ ル ー プ 』に 『定数タイ マ 』を つ け た 例
こ の 場合は 、『ス レ ッ ドグ ル ー プ 』以下の 全て の サ ン プ ラ ー
(こ の 例では 、『リ ク エ ス トA 』と 『リ ク エ ス トB』)と の 間で、
タイ マ に よ っ て 指定され た 分だ け 待機時間が 発生しま す 。
した が っ て 、右の 例の 場合は 、以下の よ う に 動作しま す 。
実行⇒ 1 0 秒待機⇒リ ク エ ス トA ⇒1 0 秒待機⇒リ ク エ ス トB
53
平成18 年10 月3 0日
リ ク エ ス トパ ラ メー タの 文字化け
問題
【問題】
シナ リ オ 作成の 際、H TTPリ ク エ ス トに 日本語デ ー タを含む と 文字化け を起こして しま う 。
例)パ ラ メー タ「1 2 3 4 5 6 ABCabcあ 」と 入力す る。
⇒リ ク エ ス トパ ラ メー タが 「1 2 3 4 5 6 ABCabc□□/b > 」 と 文字化け す る 。
【原因】
U RLエ ン コー ド&デ コー ドは U TF-8 を使用して お り 、日本語に 対応してい ない 仕様。
【対策】
以下の ど ちら か の 対応をす る こと で本問題に 対応す る こと が できま す 。
※た だ し、オ ー プ ン ソー ス です の で、参考程度と し、使用の 際は 個人責任と なり ま す 。
サ ー バ ー 側でもリ クエ ス ト・エ ン コー デ ィン グ を UTF-8 で揃える 。
修正モ ジュ ー ル の 適用(J@Blog )→詳細手順に 関しては 、別紙を ご 覧下さい 。
参考URL : http: //testkei. secret. jp/ blog /jablog /archives/cat1 6 3 /java /jmeter/index. html
54
27
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
HTTP認証マ ネ ー ジャ
HTTP認証マ ネ ー ジャ は 、H TTP認証(Ba sic認証)を 利用できま す 。
追加⇒設定エレメント⇒H TTP認証マネージャを選択します。
例え ば 、http://loca lhost/a dmin/に HTTPの Ba sic認証が か け られ て い る と しま す 。ま
た 、そ の 認証IDと パ ス ワ ー ドが そ れぞ れ “a dmin”と “admin”だ と しま す 。
そ の 場合は 、上記の よ う な設定す れ ば 、HTTPの Ba sic認証をパ ス す る こと が できま す 。
※ 「パ ス ワ ー ド」の 部分は 自動的に 伏字に なり ま す
55
平成18 年10 月3 0日
動的リ ク エ ス ト
3 . 動的リ ク エ ス トの 利用
事前に 登録してお い た 複数の ユ ー ザ を ス レッ ド起動毎に 動的に 切り 替え た い 場合に 、
ユ ー ザ 変数を 利用す ると 大変便利です 。
1人の ユ ー ザ では なく、複数の リ クエ ス トパ ラ メー タと してユ ー ザ を用い て負荷試験を
す る 際に 使用しま す 。
パ ラ メー タ情報を 記述した 外部フ ァ イル を読み込ま せ 、動的に ユ ー ザ パ ラ メー タを切
り 替え る方法を使い ま す 。
手順と して は 、ユ ー ザ パ ラ メー タと 外部フ ァ イル の 利用と なりま す 。
この 手順は 、JM eterの FAQ で紹介され て い ま す 。詳しく は 、下記URL先を ご 参考下さい 。
JM e te rFA Q
⇒ How do I use externa l da ta files to in my Test scripts?
http: //w iki. apache. org /jakarta -jmeter/JM eterFAQ #head-168 086 36 782 57fbcb 85b d9 735 1 860eb 00 49f19 ae
56
28
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
動的リ ク エ ス ト
手順1 . JM ete rの 起動を起動して 、ス レッ ドグ ル ー プ を 作成しま す 。
手順2 . ス レッ ドグ ル ー プ を選択し、前処理⇒ユ ー ザ パ ラ メー タを追加しま す 。
『変数の 追加』を 選択して 、変数を設定しま す 。
記述形式:$ { _ Str in g Fro m File (ファイル名)}
名前
ユーザ_ 1
user_ id
$ { _ String FromFile(userid. txt)}
pa ssw ord
$ { _ String FromFile(pa ssw ord. txt)}
57
平成18 年10 月3 0日
動的リ ク エ ス ト
手順3 . スレッドグループを選択し、サンプラー⇒ H TTP リクエストを追加します。
リクエストで送るパラメータの『追加』を選択して、変数を設定します。
記述形式:$ {名前}
※名前は、手順2のユーザパラメータの名前
名前
user_ id
pa ssw ord
58
29
値
$ { user_ id}
$ { pa ssw ord}
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
動的リ ク エ ス ト
手順4 . $ JM ETER_ H O M E/b in 以下にパラメータを記述したファイルを配置します。
※ $ JM ETER_ HO M Eとは、JM eterをインストールしたフォルダを示します。
※ ファイルの中身は、テキスト形式で以下のような記述となります。日本語もO Kです。
---user_ id. txt---ta ro
jiro
sa buro
---pa ssw ord. txt---pa ss1
pa ss2
pa ss3
手順5 . テストを実行します。
ファイルの内容は、スレッド起動毎に上から1行づつ読み込み、最後まで行くと最初のパラメータ
を再度読み込みます。
※上の例では、
STA RT⇒1 回目:ta r o /p a ss1
⇒2 回目:jir o /p a ss2
⇒3 回目:sa b u r o /p a ss3
⇒4 回目:ta r o /p a ss1 (最初のパラメータ)
⇒・・・・・・・・・・・・・・・・・・・・・
59
平成18 年10 月3 0日
テ ス トプ ラ ン の 自動生成
手順1 . JM ete rの 起動を起動して 、ス レッ ドグ ル ー プ を 作成しま す 。
ま ず 「テ ス ト計画」の 中に ス レッ ドグ ル ー プ を 作成しま す 。
「テ ス ト計画」を右ク リ ッ ク し、 追加→ス レッ ドグ ル ー プ を選択しま す 。
「テ ス ト計画」の 下に 「ス レッ ドグ ル ー プ 」が 追加され ま す 。
60
30
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
テ ス トプ ラ ン の 自動生成
手順2 . H TTPリ ク エ ス ト初期値設定エレメント
共通設定が あ る 場合は 、ス レッ ドグ ル ー プ に あ らか じめ 追加してお きま す 。
スレッドグループ上で右クリックした後、 追加→設定エレメント より
H TTPリクエスト初期値設定を追加します。
61
平成18 年10 月3 0日
テ ス トプ ラ ン の 自動生成
手順3 . H TTPプロキシサーバエレメント
ワークベンチ上で右クリックした後、 追加→N o n Te stエレメントより
H TTPプロキシサーバを追加します。
62
31
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
テ ス トプ ラ ン の 自動生成
手順3 . H TTPプ ロ キ シサ ー バ エ レメン ト
□ ポ ー トの 指定
JM eterが プ ロ キ シサ ー バ と して リ ク エ ス トを 受け 付け る ポ ー ト番号を 指定しま す 。(デ フ ォ ル トは 8 0 8 0 番)
□ テ ス ト計画に 挿入す る パ ター ンと 、除外す るパ ター ン の 指定
テ ス ト計画に 必要なURLと 、除外した い URLの パ ター ン を 指定しま す 。
URLの 指定は 、Perl形式の 正規表現を 用い ま す 。
[ テ ス ト計画に 挿入す る U RLパ タ ー ン の 例 ]
*i n d e x ¥ . jsp
[ テ ス ト計画か ら 除外す る U RLパ タ ー ン の 例 ]
画像フ ァ イ ル
:*¥. g if や *¥. jpg や *¥. png など
CSSフ ァ イ ル
:*¥. css
Ja va ス ク リ プ ト :*¥. js
63
平成18 年10 月3 0日
テ ス トプ ラ ン の 自動生成
手順4 . W e b ブ ラ ウ ザ の プ ロ キ シサ ー バ の 設定を しま す 。
JM eterが イ ン ス トー ル され て い る マ シン の ブ ラ ウ ザ の プ ロ キ シサ ー バ の 設定を しま す 。
例え ば 、Internet Explorerで あ れ ば 、ツ ー ル →イ ン タ ー ネ ッ トオ プ シ ョ ン →設定→LA N の 設定よ り 行え ま す 。
入力欄「ポ ー ト」に は HTTPプ ロ キ シサ ー バ 詳細設定画面で 入力した の と 同じポ ー ト番号を 指定して くだ さい 。
[ In te r n e t Ex p l o r e r の プ ロ キ シ設定 ]
LA N に プ ロ キ シサ ー バ を 使用す る に チ ェ ッ ク を 入れ ま す 。
ア ドレ ス は 、自分自身の ア ドレ ス (1 2 7 . 0 . 0 . 1 )
ポ ー トは 、H TTPプ ロ キ シサ ー バ で設定した 値を 入れ ま す 。
※こ こ では 、8 0 8 0 番
64
32
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
テ ス トプ ラ ン の 自動生成
手順5 . テ ス ト計画の 記録
HTTPプ ロ キ シ サ ー バ 画面の 「開始」ボ タン を 押す と 、JM eterが プ ロ キ シサ ー バ と して
動作し始め ま す 。
65
平成18 年10 月3 0日
テ ス トプ ラ ン の 自動生成
手順5 . テ ス ト計画の 記録
手順4 にてプロキシの設定を行ったブラウザにて、
実際にテスト対象ページを閲覧、操作します。
注意点
1. URLに ミス が あ っ た り 余分なペ ー ジを閲覧して しま っ た 場合は 、
手動で 修正や 削除が 可能で す 。
2. W ebブ ラ ウ ザ に よ る 巡回が 終わ っ た ら 、JM eterの
「HTTPプ ロ キ シサ ー バ 」で[停止]ボ タン をク リ ッ ク して 記録を終了しま す 。
もし、停止す る 前に ブ ラ ウ ザ を閉じて しま う と そ の 動作も記録され て しま い ま す 。
66
33
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
テ ス トプ ラ ン の 自動生成
手順5 . テ ス ト計画の 記録
□ 『プ ロ キ シサ ー バ 』を停止させ 、テ ス ト計画が 記録され てい る こと を確認しま す 。
『プ ロ キ シサ ー バ 』の 起動後か ら「停止」ボ タン を押し『プ ロ キ シサ ー バ 』を 停止しま す 。
テ ス ト計画の 『ス レッ ドグ ル ー プ 』以下に 結果が 組み 込ま れて い るの が 確認できま す 。
67
平成18 年10 月3 0日
テ ス トプ ラ ン の 自動生成
手順6 . テ ス ト計画の 編集
自動的に 追加され た 「ス レッ ドグ ル ー プ 」下の 「HTTPリ ク エ ス ト」に 余分なもの が あ る
場合は 、そ の リ クエ ス トを 右ク リ ッ クして [削除]を選択しま す 。
リ ク エ ス トをク リ ッ クす れ ば 、URLの 修正など が 行えま す 。CG Iなど の 動的コンテ ン ツ で、
サ ー バ に 渡す パ ラ メー タが あ る 場合は ここで指定を行い ま す 。
68
34
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
テ ス トプ ラ ン の 自動生成
手順7 . リ ス ナ ー の 追加
試験結果を 見るた め に 、必要なリ ス ナ ー を追加しま す 。ここでは 、[グ ラ フ 表示]と [統計
レポ ー ト]の リ ス ナ ー を 追加しま した 。
手順8 . テ ス ト計画の 保存
作成した テ ス ト計画を保存しま す 。
69
平成18 年10 月3 0日
テ ス トプ ラ ン の 自動生成
手順9 . テ ス トの 実行
「ス レッ ドグ ル ー プ 」の [ス レッ ド数]や [ル ー プ 回数]など の 値を 調整して か ら 実行しま す 。
ま た 、実行結果をク リ ア す るに は 「実行」メニ ュ ー の 「全て消去」を選択しま す 。
70
35
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
ス ル ー プ ッ トと ユ ー ザ 数の 関係
•
例え ば 、ス ル ー プ ッ トの 目標値が 1 0 0 リ ク エ ス ト/秒で
あ る 場合、JM e te r で こ の 負荷を 実現す る に は ど の よ
う な試験を す れ ば よい の でしょ う か ?
−1 0 0 ス レッ ドで実行す る場合は ?
リ ク エ スト
1秒
th rea d
• 各リ ク エ ス トが 1 秒お き に 実行され る よ うに 設定しま す 。
• 「定数ス ル ー プ ッ トタイマ ー 」で 6 0 r e q /分に 設定しま す 。
−2 0 0 ス レッ ドで実行す る場合は ?
• 各リ ク エ ス トが 2 秒お き に 実行され る よ うに 設定しま す 。
• 「定数ス ル ー プ ッ トタイマ ー 」で 3 0 r e q /分に 設定しま す 。
−5 0 ス レッ ドで実行す る場合は ?
• 1 秒で 2 つ の リ ク エ ス トが 実行され る よう に 設定しま す 。
• 「定数ス ル ー プ ッ トタイマ ー 」で 1 2 0 r e q /分に 設定しま す 。
•
この よ う に ス レ ッ ド数と リ クエ ス トの 間隔を 調整しま す 。
71
平成18 年10 月3 0日
試験を 実施す る 前に
注意
•
各試験の 前に は 以下の よ う な事前試験を 実施して 下さい 。
•
試験前の 事前処理
−測定す るシナ リ オ を 複数回実行す る
•
理由
−シス テ ム が 保持して い るキ ャ ッ シュ に 値を 入れた り 、Ja v a の コー ドの コン
パ イ ル 動作を事前に 実施す るた め 。
•
注意
−試験時に か け る負荷に 合わ せ た 事前処理を す ること をお 勧め しま す 。
72
36
平成18 年10 月3 0日
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
37
Copyrig ht © 20 0 6 HP corporate presenta tion. All rig hts reserved.
Fly UP