負荷試験
最近、久々に負荷試験をやる機会があったので、
備忘録的な感じヾ(。・ω・。)
jemeterで負荷試験。
今回は、webアプリケーションの機能追加のためのやつー。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1、シナリオを決める。
・・・あんまし、やったことない(´-ω-`)
ユーザの動きを想定して、いろいろ決めた方がよろしいんだけど、
とりあえず省略。
2、想定PVを割り出す。
スループットを出すため。
3、アプリケーションの実装
アプリケーションの負荷試験の場合は、
実際にリリースするアプリ(に近いもの)を使うけど、
メインがアプリでない場合は、
負荷試験の対象外のミドルウェアやAPIを利用すると
迷惑がかかる場合が多いので
単純なのをつくりますヾ(。・ω・。)
4、サーバ、ミドルウェアの準備
jmeter動かすサーバも用意する
5、データの準備
せっせとコピーしたりつくったりφ(.. )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
で、やっとjmeter。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
6、ローカルにjmeter入れる。
※テスト計画はGUIでやった方が簡単ラクチンなので、
GUIで作ったjmxファイルをサーバにぽいする。
7、jmeterの起動
[nashuaki@hostname ~]$ ${JMETER_HOME}/jmeter
8、テスト計画〜スレッドグループの作成
テスト計画 > 追加 > Threads(Users) > スレッドグループ
「Ramp-Up期間(秒)/スレッド数」ごとに1スレッド作成する。
今回はこの設定。
・スレッド数:100
・Ramp-Up期間(秒):10
・ループ回数:無限
9、テスト計画〜HTTPリクエストの設定をする
スレッドグループ > 追加 > HTTPリクエスト
負荷試験を行うhttpリクエストの穴埋めφ(.. )
リクエストを送るパラメータのとこは、
${__StringFromFile(${JMETER_HOME}/file.txt,,,)}
とかで外部ファイルを指定したり、
${__Random(1,10,)}
とかでランダム値(1~10)を指定できたりする。
他にもいっぱい関数的なのが用意されてるみたい。
http://jakarta.apache.org/jmeter/usermanual/functions.html
10、テスト計画〜タイマーの設定をする
スレッドグループ > 追加 > タイマ >定数スループットタイマ
ここで
「ターゲットスループット(サンプル数/ミリ秒)」
とか書かれてるけど、
正しくは、
「ターゲットスループット(サンプル数/分)」
らしい。
間違うのもどうかと思うけど、分単位って(´-ω-`)
想定リクエストを
100req/seq
とするなら、
100req * 3(ピーク時) * 1.5 / 60(seq)
とかにします、うちは。
1.5は初めて負荷試験やったときに
リリース時には想定をこえてたっていう嫌な思い出があるので(´-ω-`)
「Calculate Throughput based on」は
「all active threads in current thread group」
にしときました。
11、テスト計画〜リスナー
・・・を設定したいとこだけど、
これすると落ちちゃったりするので、
とりあえず見送り(´□`。)
12、jmeterの実行
[root@stress-server ~]$ ${JMETER_HOME}/bin/jmeter -t ${JMETER_HOME}/test.jmx -n
これだと実行ユーザがログアウトしたりすると
終了したりするので、
[root@stress-server ~]$ nohup ${JMETER_HOME}/bin/jmeter -t ${JMETER_HOME}/test.jmx -n &
的な感じで実行ユーザがいなくなっても
継続して実行できるようにする。
13、結果を取得して考察する
負荷をかけるサーバでは
vmstatやuptimeの値を継続して取得できるようにしておく。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
がんばるγ(▽´ )ツヾ( `▽)ゞ