XWindow(CentOS)+jmeterの使い方覚書

ソーシャルアプリの5秒ルール達成のための第二段。
負荷試験用にJmeterを使える環境をセットアップ。
JmeterGUIでの利用を前提としているため、さくらVPSにXWindowいれて
VNCServerを入れるところからスタート。

(参考)
http://ncloud.cocolog-nifty.com/blog/2011/06/3-jmeter-7299.html
http://www.aska-ltd.jp/techinfo/pukiwiki/index.php?%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E7%92%B0%E5%A2%83%E3%81%AE%E8%B2%A0%E8%8D%B7%E8%A9%A6%E9%A8%93%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
(クライアントインストール)
http://sakura.off-soft.net/centos/vnc_server_remotedesktop.html

1)XWindowをいれる
yum -y install perl
yum -y groupinstall "X Window System"
2)VNCServerをいれる
yum -y install vnc vnc-server
vncserver :1
↓
パスワード入力
3)vnc-serverを起動(1024x800はウィンドウサイズ)
vncserver -geometry 1024x800
4)設定ファイルの編集
vi /etc/sysconfig/vncservers
VNCSERVERS="1:yamada"
VNCSERVERARGS[1]="-geometry 1024x768"
5)ポート
ブラウザ=>5801
コンソール=>5901
※デフォルトのポートは下記設定ファイルに記載されている
vi /usr/bin/vncserver
6)起動再起動
/etc/init.d/vncserver start
7)設定ファイル
vi /usr/bin/vncserver
vi /etc/sysconfig/vncservers
8)ポートの開放
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
iptables -A INPUT -p tcp --sport 5901 -j ACCEPT
service iptables save
service iptables restart
iptables -L
netstat -lanput
10)VNCクライアントのインストール(下記からDL)

http://www.uvnc.com/downloads/ultravnc/95-downlaod-10961.html

11)クライアントにログイン(IPに::を付けて5901ポートを指定)

12)ログイン成功


JMETERの使い方

(参考)
http://d.hatena.ne.jp/language_and_engineering/20081014/1223905380
(分りやすい)
http://ameblo.jp/itboy/entry-10039380165.html

1)インストール
http://jmeter.apache.org/
の
Download->Download Release->Binaries->jakarta-jmeter-2.5.1.zip
2)起動
\jakarta-jmeter-2.5.1\bin->bin->jmeter.bat

設定方法(テスト作成方法)

1)スレッドグループを作成

2)スレッド数、Ramp-Up期間、ループ回数を設定
【負荷レベルの決定方法】
スレッド数とループ数の関係は勘違いしやすいので注意が必要。
(元)http://ameblo.jp/itboy/entry-10041857522.html

1)Ramp-Up60/スレッド6/ループ1
〇->〇->〇->〇->〇->〇>60秒
〇:スレッド

2)Ramp-Up60/スレッド6/ループ2
×間違い (1回目)〇->〇->〇->〇->〇->〇->(2回目)◎->◎->◎->◎->◎->◎->60秒
〇正解 〇◎->〇◎->〇◎->〇◎->〇◎->〇◎->60秒

〇:元スレッド
◎:ループ実行されたスレッド


3)Ramp-Up60/スレッド2/ループ6
〇◎◎◎◎◎->〇◎◎◎◎◎

〇:元スレッド
◎:ループ実行されたスレッド

同時接続という意味で調べるのであれば 3)の調べ方の方が負荷がかかりやすい!

3)HTTPリクエストを作成
ループコントローラ
 |--一連のリクエスト処理をループ
 
インタリープコントローラ
 |--ぶら下げているHTTPリクエストサンプラーの1つを実行。
    3つのHTTPリクエストがぶら下がっていた場合、1回目、2回目、3回目それぞれ1回ずつ実行する

乱数コントローラ
 |--ぶら下げているHTTPリクエストサンプラーのうちランダムで1個を実行する

ランダム順序コントローラ
 |--ぶら下げているHTTPリクエストサンプラーを全部実行する
 
シンプルコントローラー
 |--特に機能は無い。テスト計画を見やすくするために使用。


HTTPクッキーマネージャ
 |--セッション管理するページの場合これを置く。特に設定はいらない。おくだけ。

4)HTTPリクエストにサーバー、パス、プロトコルを設定

※ログインIDやパスワードがある場合、POSTやGETをここで指定することも可能!

5)結果を見るためにリスナーを記述(表やグラフなど選べる)

6)試験を開始する

7)結果が表示される


1)
Ramp-Up固定
↓
スレッド数&ループ数で1秒間の同時アクセス数を調整。
※1秒間のアクセスを1、2、3・・と増やしていく
↓
リスナー「統計レポート」を使い、スループットの合計値が上がっていくのを見る。
同時アクセスを増やして、スループットが変わらない、もしくは下がったところが同時接続数の限界値。


2)ソーシャルではこっちが主かな。

「統計レポート」の応答時間(ミリ秒)を把握。
5秒以上かかっている処理を確認する。