設定

JBento2の配置

ここでは、Linux上のjbento2ユーザでJBento2、JBentoStoreを動かすことを想定して記述します。

JBento2を展開してできたディレクトリのうち、scriptディレクトリをユーザのホームディレクトリに、jbento2という名前でコピーします。

負荷ツールには、JMeterとJBentoGohanを利用することができます。

負荷ツールのインストール

JMeter or JBentoGohanをインストールします。JBentoGohanを利用する場合は、jbento2ディレクトリにjbentogohan-1.0.0.jarを配置します。

JBentoStoreのインストール

JBentoStoreを入手して得られるjbentostore.warをJBento-TestRepo/conf/webappsディレクトリに配置します。

JMeterを利用する場合は、jbentostore.jmxをJBento-TestRepo/conf/jmeterディレクトリに配置します。

TODO: jbento-httpsessionについても説明が必要。

環境依存ファイルの修正

次に、JBento-TestRepo/conf配下のsetup.shを、環境に合わせて修正します。

「%」に囲まれた文字列(%APNUMS%、%CONFIG%など)は、後に説明するloop.confの指定で置き換えられます。

テストに関する指定

TEST_MODELにテストのモデルを指定します。現在用意されている物は以下の通りです。

  • jbentostore
  • jbento-httpsession

負荷ツールに関する指定

LOAD_TOOLに使用する負荷ツールを指定します。現在用意されている物は以下の通りです。

  • jmeter
  • jbentogohan

サーバについての設定

測定対象となるサーバ名を記述します。APサーバ以外のサーバをSERVERSに、 APサーバをAP_TMPに書いてください。

起動サーバについての設定

SCRIPT変数には、利用するAPサーバの種類を指定します。利用するAPサーバのスクリプトを有効にします。

  • TomcatをAPサーバとする場合 tomcat.sh
  • JBossをAPサーバとする場合 jboss.sh
  • GeronimoをAPサーバとする場合 geronimo.sh

負荷クライアント(JMeter)に対する設定

以下の変数に対して設定を行います。

  • SERVER、PORT:ApacheにアクセスするためのIPアドレス、ポート番号を設定します。
  • CLIENT_EMULATOR:負荷サーバのマシン名を設定します。
  • DURATION:測定時間を秒数で指定します。デフォルトは600秒(10分)に設定されています。
  • JMETER_HOME:JMeterのインストールディレクトリを指定します。
  • JMX_FILE:JMeterのテストシナリオファイル名を指定します。

負荷クライアント(JBentoGohan)に対する設定

以下の変数に対して設定を行います。

  • SERVER、PORT:ApacheにアクセスするためのIPアドレス、ポート番号を設定します。
  • CLIENT_EMULATOR:負荷サーバのマシン名を設定します。
  • RUNTIME:測定時間を秒数で指定します。デフォルトは600000ミリ秒(10分)に設定されています。
  • THREAD:起動するスレッド数を指定します。デフォルトでは20個のスレッドが起動します。
  • RAMPUP:スレッドの起動間隔を指定します。デフォルトでは5000ミリ秒(5秒)に設定されています。

JBossに対する設定

以下の設定を行います。

  • JBOSS_HOME:JBossのインストールディレクトリを指定します。
  • JBOSS_USER:Tomcatを起動するユーザを指定します。

Tomcatに対する設定

以下の設定を行います。

  • CATALINA_HOME:Tomcatのインストールディレクトリを指定します。
  • TOMCAT_USER:Tomcatを起動するユーザを指定します。
  • CATALINA_DEPLOY_DIR:warファイルが配置されるディレクトリです。
  • CATALINA_WORK_DIR:ワーキングフォルダです。Tomcat5系と4系で変わるので注意して ください。

APサーバ共通設定

以下の設定を行います。

  • AP_JAVA_OPTS:APサーバのVMオプションを指定します。
  • WAR_PATH:APサーバにデプロイするファイル名を指定します。
  • CONFIG:APサーバのコンフィグ設定を指定します。具体的には以下の物を指します。
    • JBoss:$JBOSS_HOME/server/ディレクトリ配下の設定ディレクトリ
    • Tomcat:$CATALINA_HOME/conf/ディレクトリ配下の、server.xmlファイル。 $CONFIG-server.xmlというファイルを指定して起動します。

解析に対する設定

以下の設定を、どちらも秒数で指定します。

  • SKIPTIME:測定開始からの除外時間を設定します。
  • MEANTIME:除外時間を除いたところから、どのくらいの時間を測定時間として 扱うかを指定します。

    負荷ツールにJBentoGohanを利用する場合は、以下のように指定します。

  • LOADTOOL_PARSER:gohan
  • LOADTOOL_LOG:access.log

    負荷ツールにJMeter2.2を利用する場合は、以下のように指定します。

  • LOADTOOL_PARSER:csv
  • LOADTOOL_LOG:jbento.jtl

    負荷ツールにJMeter2.1.1以下(ログ形式がXML)を利用する場合は、以下のように指定します。

  • LOADTOOL_PARSER:jmeter
  • LOADTOOL_LOG:jbento.jtl

Jbento-httpsessionに対する設定

テストモデルとしてjbento-httpsessionを使用する場合、以下の設定を行います。

  • MODEL:アクセスするサーブレット名です。以下が存在します。
    • Counter: HttpSessionレプリケーションを毎回発生させるためには、HttpSessionの内容を 書き換えます。そのためのモデルとして作成したのがこのCounterです。 Counterはユーザからのアクセス毎にHttpSessionに格納された カウンタ値を1増加させる単純なものです。 これは主にユーザ数を変化させた場合の性能曲線を求める場合に利用します。
    • SetSingleString: SetSingleStringは任意の長さの文字列をHttpSessionへ格納するモデルです。 主にHttpSessionのサイズを変化させた場合の性能曲線を求める場合に利用されます。
    • SetCompositeObject: SetCompositeObjectは、任意のレベルで階層化された入れ子構造のオブジェクトを HttpSessionへ格納するモデルです。 これはHttpSessionの複雑度を変化させた場合の性能曲線を求めるための 実装です。
    • SetComplexMap:

ループの指定

負荷試験のループに関する設定を行います。JBento-TestRepo/conf/loop.confを編集します。

loop.conf

例えば、クライアント数を10、20、30と変える試験を1セットとし、それをAPサーバ 台数1台、2台、3台で実行したい場合には、以下のように設定します。

CLIENT="10 20 30"
APNUMS="1 2 3"
LOOP="APNUMS CLIENT"

LOOP変数以外は任意の名前を設定できます。