Java アプリケーション層の評価

2004 年度
オープンソースソフトウェア活用基盤整備事業
「OSS 性能・信頼性評価 / 障害解析ツール開発」
Java アプリケーション層の評価
独立行政法人 情報処理推進機構
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
商標表記
・ SPECjAppServer is a trademark of the Standard Performance Evaluation Corp.
(SPEC). The SPECjAppServer2004 results or findings in this publication have not
been reviewed or approved by SPEC, therefore no comparison nor performance
inference can be made against any published SPEC result. The official web site for
SPECjAppServer2004 is located at http://www.spec.org/osg/jAppServer2004.
・ Java は Sun Microsystems, Inc.の登録商標です。
・ JBoss は、JBoss Inc.の登録商標です。
・ WebLogic および JRockit は、BEA Systems, Inc.の登録商標です。
・ Linux は、Linus Torvalds の米国およびその他の国における登録商標あるいは商標です。
・ SUSE は、米国 Novell, Inc.の事業部である SUSE LINUX AG.の登録商標です。
・ Red Hat は、米国およびその他の国で Red Hat, Inc. の登録商標若しくは商標です。
・ MIRACLE LINUX は、ミラクル・リナックス株式会社が使用許諾を受けている登録商
標です。
・ その他記載の会社名、製品名は、それぞれの会社の商号、商標もしくは登録商標です。
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
目次
1
本活動の概要 ..............................................................................................................1-1
1.1
1.1.1
カーネルバージョン間比較 ..........................................................................1-2
1.1.2
分散処理性能比較.........................................................................................1-2
1.1.3
トランザクション特性評価 ..........................................................................1-2
1.1.4
商用 AP サーバとの比較 ..............................................................................1-3
1.2
SPECjAppServer2004 について.........................................................................1-4
1.2.1
SPECjAppServer2004 の入手について .......................................................1-4
1.2.2
SPECjAppServer2004 評価結果の公開について.........................................1-4
1.2.3
SPECjAppServer2004 アプリケーションの概要.........................................1-5
1.2.4
EJB の役割 ..................................................................................................1-9
1.2.5
SPECjAppServer2004 トランザクション一覧 ..........................................1-14
1.3
評価手順の概要 .................................................................................................1-17
1.4
カーネルバージョン間比較の概要.....................................................................1-20
1.4.1
本評価の目的..............................................................................................1-20
1.4.2
環境定義および評価手順の概要 .................................................................1-20
1.4.3
評価結果および分析・考察の概要..............................................................1-21
1.5
分散処理性能比較の概要 ...................................................................................1-23
1.5.1
本評価の目的..............................................................................................1-23
1.5.2
環境定義および評価手順の概要 .................................................................1-23
1.5.3
評価結果および分析・考察の概要..............................................................1-24
1.6
トランザクション特性評価の概要.....................................................................1-27
1.6.1
本評価の目的..............................................................................................1-27
1.6.2
環境定義および評価手順概要.....................................................................1-27
1.6.3
評価結果および分析・考察の概要..............................................................1-28
1.7
2
全体の概要 ..........................................................................................................1-1
商用 AP サーバとの比較の概要.........................................................................1-31
1.7.1
本評価の目的..............................................................................................1-31
1.7.2
環境定義および評価手順の概要 .................................................................1-31
1.7.3
評価結果および分析・考察の概要..............................................................1-32
評価手順書..................................................................................................................2-1
2.1
ハードウェアの調達 ............................................................................................2-2
2.1.1
計算機群の調達 ............................................................................................2-2
2.1.2
ネットワーク機器の調達..............................................................................2-4
2.2
ソフトウェアの調達 ............................................................................................2-5
2.2.1
SPECjAppServer2004 の調達 .....................................................................2-5
2.2.2
Web サーバソフトウェアの調達 ..................................................................2-5
2.2.3
AP サーバソフトウェアの調達 ....................................................................2-5
2.2.4
JMS サーバソフトウェアの調達..................................................................2-6
− i −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.2.5
DB サーバソフトウェアの調達 ....................................................................2-6
2.2.6
Java プラットフォームソフトウェアの調達................................................2-6
2.2.7
OS ソフトウェアの調達 ...............................................................................2-6
2.2.8
その他のソフトウェア群の調達 ...................................................................2-6
2.3
OS のインストール・設定...................................................................................2-7
2.4
ネットワーク環境の構築 .....................................................................................2-8
2.5
ソフトウェア群のインストール・設定................................................................2-9
2.5.1
Java プラットフォームソフトウェアのインストール・設定.......................2-9
2.5.2
DB サーバソフトウェアのインストール・設定 ...........................................2-9
2.5.3
JMS サーバソフトウェアのインストール・設定.........................................2-9
2.5.4
AP サーバソフトウェアのインストール・設定 ...........................................2-9
2.5.5
Web サーバソフトウェアのインストール・設定 .......................................2-10
2.5.6
SPECjAppServer2004 のインストール .....................................................2-10
2.5.7
その他のソフトウェアのインストール・設定............................................2-10
2.6
データベースの初期化....................................................................................... 2-11
2.7
アプリケーションのビルド・配備.....................................................................2-12
2.7.1
ビルドファイルの作成・修正.....................................................................2-12
2.7.2
環境定義ファイルの作成・修正 .................................................................2-12
2.7.3
コンテナ依存 EJB 配備記述子の作成 ........................................................2-15
2.7.4
コンテナ依存 Web アプリケーション配備記述子の作成............................2-16
2.7.5
コンテナ依存アプリケーション配備記述子の作成.....................................2-17
2.7.6
アプリケーションのビルド ........................................................................2-17
2.7.7
アプリケーションの配備............................................................................2-18
2.8
サーバプロセス群の起動 ...................................................................................2-19
2.9
データベースへの初期データの投入 .................................................................2-20
2.9.1
データベーススキーマの決定.....................................................................2-20
2.9.2
データベース上への表および索引の作成...................................................2-20
2.9.3
初期データ投入プログラムの実行..............................................................2-20
2.10
アプリケーションの動作確認 ........................................................................2-22
2.11
ベンチマーク測定の実施 ...............................................................................2-23
2.11.1
測定条件パラメータの設定 ........................................................................2-23
2.11.2
負荷測定プログラムの実行 ........................................................................2-24
2.11.3
ベンチマーク測定プログラムの実行 ..........................................................2-24
2.12
2.12.1
ベンチマーク測定結果の評価 ........................................................................2-26
まとめ.....................................................................................................2-27
2.13
サーバプロセス群の停止 ...............................................................................2-29
2.14
チューニングの実施.......................................................................................2-30
2.14.1
OS のチューニング ....................................................................................2-30
2.14.2
DB のチューニング ....................................................................................2-30
2.14.3
JavaVM のチューニング ...........................................................................2-30
− ii −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3
2.14.4
AP サーバのチューニング..........................................................................2-30
2.14.5
Web サーバのチューニング .......................................................................2-31
カーネルバージョン間比較.........................................................................................3-1
3.1
目的および概要 ...................................................................................................3-1
3.2
環境定義 ..............................................................................................................3-2
3.2.1
ハードウェアおよびネットワーク構成 ........................................................3-2
3.2.2
ソフトウェア構成.........................................................................................3-4
3.2.3
OS のインストール・設定............................................................................3-9
3.2.4
ネットワーク環境の構築..............................................................................3-9
3.2.5
ソフトウェア群のインストール・設定 ........................................................3-9
3.2.6
データベースの初期化 ...............................................................................3-15
3.2.7
アプリケーションのビルド・配備..............................................................3-16
3.2.8
環境定義のまとめ.......................................................................................3-25
3.3
3.3.1
サーバプロセス群の起動............................................................................3-30
3.3.2
データベースへの初期データの投入 ..........................................................3-31
3.3.3
ベンチマーク測定の実施............................................................................3-32
3.3.4
サーバプロセス群の停止............................................................................3-34
3.4
評価結果 ............................................................................................................3-36
3.4.1
負荷(規模)と処理性能に関する測定結果 ....................................................3-36
3.4.2
負荷(規模)と応答時間に関する測定結果 ....................................................3-41
3.4.3
計算機群の負荷状況に関する測定結果 ......................................................3-46
3.5
4
評価手順 ............................................................................................................3-30
分析と考察 ........................................................................................................3-57
3.5.1
負荷(規模)と処理性能に関する分析と考察 ................................................3-57
3.5.2
負荷(規模)と応答時間に関する分析と考察 ................................................3-57
3.5.3
計算機群の負荷状況に関する分析と考察...................................................3-58
3.5.4
値渡しと参照渡しの比較に関する分析と考察............................................3-59
3.5.5
まとめ ........................................................................................................3-61
分散処理性能比較.......................................................................................................4-1
4.1
目的および概要 ...................................................................................................4-1
4.2
環境定義 ..............................................................................................................4-2
4.2.1
ハードウェアおよびネットワーク構成 ........................................................4-2
4.2.2
ソフトウェア構成.........................................................................................4-3
4.2.3
OS のインストール・設定............................................................................4-7
4.2.4
ネットワーク環境の構築..............................................................................4-7
4.2.5
ソフトウェア群のインストール・設定 ........................................................4-8
4.2.6
データベースの初期化 ...............................................................................4-15
4.2.7
アプリケーションのビルド・配備..............................................................4-16
4.2.8
環境定義のまとめ.......................................................................................4-27
4.3
評価手順 ............................................................................................................4-33
− iii −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.3.1
サーバプロセス群の起動............................................................................4-33
4.3.2
データベースへの初期データの投入 ..........................................................4-34
4.3.3
ベンチマーク測定の実施............................................................................4-35
4.3.4
サーバプロセス群の停止............................................................................4-37
4.4
4.4.1
負荷(規模)と処理性能に関する測定結果 ....................................................4-39
4.4.2
負荷(規模)と応答時間等に関する測定結果 ................................................4-41
4.4.3
計算機群の負荷状況に関する測定結果 ......................................................4-43
4.5
5
評価結果 ............................................................................................................4-39
分析と考察 ........................................................................................................4-49
4.5.1
負荷(規模)と処理性能に関する分析と考察 ................................................4-49
4.5.2
負荷(規模)と応答時間に関する分析と考察 ................................................4-49
4.5.3
計算機群の負荷状況に関する分析と考察...................................................4-50
4.5.4
まとめ ........................................................................................................4-51
トランザクション特性評価.........................................................................................5-1
5.1
目的および概要 ...................................................................................................5-1
5.1.1
実ユーザ環境下への近似化とそれによる傾向解析.......................................5-1
5.1.2
プログラム動作の解析 .................................................................................5-1
5.1.3
凡例 ..............................................................................................................5-2
5.2
環境定義 ..............................................................................................................5-4
5.2.1
ハードウェアおよびネットワーク構成 ........................................................5-4
5.2.2
ソフトウェア一覧.........................................................................................5-5
5.2.3
ソフトウェアの調達 .....................................................................................5-6
5.2.4
ソフトウェアのインストール先ディレクトリ..............................................5-7
5.2.5
パラメータ情報 ............................................................................................5-7
5.2.6
OS のインストール・設定..........................................................................5-21
5.2.7
ネットワーク環境の構築............................................................................5-21
5.2.8
ソフトウェア群のインストール・設定 ......................................................5-21
5.2.9
SPECjAppServer2004 アプリケーションのビルド・配置 ........................5-28
5.2.10
データベースの初期化およびデータ投入 ...............................................5-29
5.2.11
チューニングの実施 ...................................................................................5-31
5.3
評価手順 ............................................................................................................5-32
5.3.1
サーバプロセス群の起動............................................................................5-32
5.3.2
ベンチマーク評価の実施............................................................................5-33
5.3.3
サーバプロセス群の停止............................................................................5-34
5.4
評価結果 ............................................................................................................5-36
5.4.1
トランザクション投入割合を変更した評価 ...............................................5-36
5.4.2
プログラム動作解析を目的とした評価 ......................................................5-50
5.5
分析と考察 ........................................................................................................5-65
5.5.1
トランザクション投入割合を変化させることに関する分析と考察............5-65
5.5.2
トランザクションの投入割合の変更に関する隘路事項および課題............5-68
− iv −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6
5.5.3
プログラム動作解析に関する分析と考察...................................................5-68
5.5.4
プログラム動作解析に関する隘路事項および課題.....................................5-69
商用 AP サーバとの比較.............................................................................................6-1
6.1
目的および概要 ...................................................................................................6-1
6.1.1
本評価の目的................................................................................................6-1
6.1.2
テスト内容の概要.........................................................................................6-1
6.2
環境定義 ..............................................................................................................6-2
6.2.1
ハードウェア一覧.........................................................................................6-2
6.2.2
ネットワーク構成.........................................................................................6-3
6.2.3
ソフトウェア一覧.........................................................................................6-4
6.2.4
凡例について................................................................................................6-5
6.2.5
ベースラインパラメータ一覧(JBoss)...........................................................6-6
6.2.6
JBoss クラスタ環境構築手順 .....................................................................6-20
6.2.7
ベースラインパラメータ一覧(WebLogic) ..................................................6-34
6.2.8
WebLogic クラスタ環境構築手順...............................................................6-44
6.3
評価手順 ............................................................................................................6-73
6.3.1
JBoss クラスタ測定手順 ............................................................................6-73
6.3.2
WebLogic クラスタ測定手順......................................................................6-78
6.4
評価結果 ............................................................................................................6-85
6.4.1
JBoss クラスタ (HttpSession レプリケーションあり)評価結果 ...............6-85
6.4.2
JBoss クラスタ(HttpSession レプリケーションなし)評価結果.................6-91
6.4.3
WebLogic クラスタ(HttpSession レプリケーションあり)評価結果...........6-96
6.4.4
WebLogic クラスタ(HttpSession レプリケーションなし)評価結果.........6-100
6.5
分析と考察 ......................................................................................................6-106
6.5.1
JBoss クラスタ構成における HttpSession レプリケーションのあり/なし比較
6-106
6.5.2
WebLogic クラスタ構成における HttpSession レプリケーションのあり/なし
比較
6-111
6.5.3
JBoss 単体/WebLogic 単体比較 ............................................................... 6-116
6.5.4
JBoss クラスタ構成(HttpSession レプリケーションあり)/WebLogic クラスタ
構成(HttpSession レプリケーションあり) ............................................................. 6-119
6.5.5
JBoss クラスタ構成についての考察 ........................................................6-124
6.5.6
WebLogic クラスタ構成についての考察 ..................................................6-125
6.5.7
JBoss 単体/WebLogic 単体比較についての考察 ......................................6-128
6.5.8
JBoss クラスタ構成/WebLogic クラスタ構成比較についての考察..........6-128
6.5.9
まとめ ......................................................................................................6-129
Appendix A
A.1
SPECjAppServer2004 ノウハウ ................................................................. 1
設定上の注意点 ...................................................................................................... 1
A.1.1
Driver のヒープメモリのサイズ設定について................................................ 1
A.1.2
AP サーバが複数存在する場合の EJB のロードバランシングについて ......... 1
− v −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
A.1.3
SequenceEnt への row-locking 指定について ................................................ 3
A.1.4
SPECjAppServer2004 における XA 処理の必要性について .......................... 4
A.1.5
LargeOrderEntLocal の NoSuchObjectLocalException 対応........................ 5
A.1.6
SPECjAppServer2004 の REPEATABLE_READ の解釈について ............... 8
A.2
測定上の注意点 ...................................................................................................... 8
A.2.1
SPCjAppServer2004 のレポートの FAILED について .................................. 9
A.2.2
SPECjAppServer2004 測定時の「Error vehicle already sold」について..... 9
A.2.3
SPECjAppServer2004 測定結果の Response Time の 90%Tile が 10 秒になる
事象について ............................................................................................................... 10
A.2.4
SPECjAppServer2004 測定結果の Dealer.detail の情報が欠落する事象につ
いて
10
Appendix B
B.1
JBoss ノウハウ.......................................................................................... 12
設定上の注意点 .................................................................................................... 12
B.1.1
PreparedStatementCache について ............................................................ 12
B.1.2
JBoss4.0.0 における JvmRouteFilter のバグについて ................................ 12
B.1.3
レプリケーションのタイムアウトの設定...................................................... 13
B.1.4
HttpSession レプリケーションのマルチキャストポートの指定 .................. 15
B.2
チューニングノウハウ.......................................................................................... 16
B.2.1
Isolated と CallByValue の設定について ..................................................... 16
B.2.2
JBoss の不要サービス停止 ........................................................................... 17
B.2.3
Apache MPM を worker にする ................................................................... 19
B.3
HttpSession レプリケーションについて ............................................................. 20
B.3.1
HttpSession レプリケーションのフェイルオーバの仕組み.......................... 20
B.3.2
HttpSession レプリケーションのバージョンについて................................. 21
B.3.3
HttpSession レプリケーションのレプリケーション範囲について............... 21
B.3.4
JBossCache ATTRIBUTE 不具合 ................................................................ 22
B.4
Entity Bean について .......................................................................................... 26
B.4.1
EntityBean の分散ロック、分散キャッシュについて.................................. 26
B.4.2
EntityBean の CMP 設定について ............................................................... 26
B.5
測定上の注意点 .................................................................................................... 31
B.5.1
高負荷測定開始時の ClassCircularityError について.................................. 31
B.5.2
高負荷時の InstanceAlreadyExistException について ................................ 32
B.5.3
HttpSession レプリケーション時の ConcurrentModificationException につ
いて
32
B.5.4
JBoss で 60 秒おきに発生する FullGC について ......................................... 33
Appendix C
C.1
設定上の注意点 .................................................................................................... 34
C.1.1
Appendix D
D.1
WebLogic ノウハウ.................................................................................... 34
実行スレッドキューの分割について ............................................................. 34
PostgreSQL ノウハウ ............................................................................... 36
チューニングノウハウ.......................................................................................... 36
− vi −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
D.1.1
データ投入直後の reindex、analyze、vacuum full..................................... 36
D.1.2
index 付与によるチューニング ..................................................................... 36
Appendix E
E.1
その他........................................................................................................ 39
測定上の注意点 .................................................................................................... 39
E.1.1
sar のバージョンによる情報の欠落について................................................ 39
− vii −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1 本活動の概要
OSS の性能・信頼性評価の一環として、Java アプリケーション層の評価をした。本
報告書では、今回の活動での評価手順、ならびにその手順を用いて評価した結果を記述
する。
なお、本活動は、評価手順の確立を第 1 の目的に推進したものである。ここに記述す
る性能評価結果は、あくまでも今回の活動で得られた結果である。今後、機能拡充等に
よりバージョンアップされるに従って、性能の傾向は変わっていくものと推測される。
よって、今後も、こうした性能検証を継続的に実施していく必要があると考える。
1.1 全体の概要
Java アプリケーション層の評価には、以下のソフトウェア群を使用する。
•
オペレーティング・システム:Linux カーネル 2.4 および 2.6
•
Java 実行環境:Java 2 Platform, Standard Edition 1.4.2, JRockit 1.4.2
•
データベース・システム:PostgreSQL 7.4.6
•
アプリケーション・サーバ:JBoss 4.0.0, WebLogic8.1SP3
•
性能評価ツール:SPECjAppServer2004
評価項目を図 1.1-1 に示す。
− 1-1 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ベンチマーク評価項目
1.カーネルバージョン間比較( 2.4と2.6の性能や信頼性はどうなのか、等)
2.分散処理性能比較(大規模システムにおける性能・信頼性等)
3.トランザクション特性評価(ミクロなレベルでの解析を行いたい)
4.商用APサーバとの比較(WebLogicとの比較)
2
3
AP Server
AP Server
Clients
Web Server
AP Server
DB Server
・・・
SPECj
SPECjAppServ
AppServ er2004
er2004
Load genera tor
Apache, etc.
Storage
Storage
4
Tomcat/JBoss,etc. PostgreSQL,
PostgreSQL, etc.
etc.
Linux
Linux (RedHa t/SuSE/Miracle)
t/SuSE/Miracle)
Javaアプリケー ション 層ベンチマークのSW/ HW構 成
1
図 1.1-1 Java アプリケーション層評価項目
以下、各評価項目の概要を既述する。
1.1.1 カーネルバージョン間比較
Linux カーネル 2.4 および 2.6 それぞれの OS の上に、SPECjAppServer2004 を用い
た性能・信頼性評価環境を構築し、両者の性能・信頼性測定を行うことで、カーネルの
バージョンの違いが、Java アプリケーション層のレベルにおいてはどのような形で現れ
てくるのかという点について検証を行う。これによって、今後の Linux システム構築の
際に、カーネルのバージョンはどちらを採用すべきかなどを検討する際、判断材料とな
ることが期待される。
1.1.2 分散処理性能比較
本評価は、Java アプリケーション層をクラスタ化し、クラスタ台数を増加させた場合
の性能・信頼性測定等を行う。これにより、OSS を採用したシステムにおける、クラス
タ構成のような大規模システムの構築の是非を検討する。
1.1.3 トランザクション特性評価
SPECjAppServer2004 は、典型的なエンタープライズ Java アプリケーションを総合
的に模した仕様となっているため、逆にミクロな視点である Java オブジェクトレベル
での処理性能解析やトランザクションレベルでの性能解析において弱い部分がある。本
評価は、SPECjAppServer2004 をベースに、カーネルトレースツールの利用および新た
− 1-2 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
な測定ツールを用意することにより、ミクロな視点での補完的処理特性の解析を行う。
1.1.4 商用 AP サーバとの比較
従来、大規模クラスタを構築するには商用ソフトウェアが採用されてきた。本評価は、
JBoss と WebLogic をクラスタ構成上で比較することにより、大規模システム構築にお
ける OSS アプリケーション・サーバを用いたクラスタ構成の適用領域を明確にする。
− 1-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.2 SPECjAppServer2004 について
Java ア プリ ケーション 層の性能を 評価するベ ンチマーク には SPEC(Standard
Performance Evaluation Corporation)が提供する SPECjAppServer2004 以外に、同ベ
ンチマークの旧バージョンである 2002、ECperf などがある。SPECjAppServer2004 以
外のベンチマークは、対応 EJB(Enterprise Java Bean)のバージョンが古いということ
や、評価結果を公開する場合の敷居が高いなどの不都合があり、本活動では
SPECjAppServer2004 の採用を決定した。SPECjAppServer2004 は、以下に示す主要
な J2EE テクノロジの全てを網羅している点を特徴とする。
• Servlet や JSP を含む Web コンテナ
• EJB コンテナ
• EJB 2.0 CMP(Container Managed Persistence)
• JMS(Java Message Service)と MDB(Message Driven Bean)
• トランザクション管理
• DB 接続
1.2.1 SPECjAppServer2004 の入手について
SPECjAppServer2004 は有償であり、SPEC メンバ企業以外は、SPEC から$2000
(2005 年 2 月現在)で媒体を入手する必要がある。
1.2.2 SPECjAppServer2004 評価結果の公開について
SPECjAppServer2004 の特定の基準を満たす評価条件・方法により得られた結果デー
タは、有償により SPEC の公式サイトへの登録が可能である。公開基準の 1 つとして、
結果データは 1 点のみのチャンピオン・データであることが義務付けられている。
一方、本活動は、負荷を変化させた場合の性能変化傾向の掌握を、目的の 1 つとして
いる。そのような結果を SPEC 公式サイトに登録したり、SPECjSppServer2004 固有の
メトリック(後述の IR、JOPS など)を用いて一般公開することは、残念ながら認めら
れなかった。しかしながら、SPECjAppServer2004 固有のメトリックを明示しないとい
う条件下で、性能変化傾向を公開することは許可された。
従って、第 3 章以降に述べる各評価結果では、SPECjAppServer2004 固有のメトリッ
クとその絶対値は明示せず、図表を用いて変化傾向を相対的に示す方針とする。なお、
評価結果では、1.2.3.4 に後述の IR(Injection Rate = 負荷のレベル)を表現するために、
記号 A、B、C、・・・を用いる。ただし、記号が表現する IR の絶対値は、各章で必ずしも
対応しているわけではないので、注意されたい。
− 1-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.2.3 SPECjAppServer2004 アプリケーションの概要
SPECjAppServer2004 は、自動車製造業者とその関連ディーラーのやり取りをシミュ
レートするアプリケーションである。ディーラーは Web ブラウザ経由でシステムとやり
取りする。自動車を製造するプロセスは、RMI(Remote Method Invocation)により実行
される。
SPECjAppServer2004 アプリケーションの画面を図 1.2-1 に示す。
図 1.2-1 SPECjAppServer2004 アプリケーション画面
1.2.3.1 アプリケーションの構成
SPECjAppServer2004 は、大きく分けて、表 1.2-1 に示す 3 つの部分から構成される。
表 1.2-1 SPECjAppServer2004 の構成部分
構成部分
Load Driver
説明
ベンチマーク起動、負荷生成、結果レポート作成などを行うクラ
イアント。ディーラー・ドライバと製造業ドライバの 2 つに大
別され、後者はさらに 2 つのアプリケーションに分けられる。
− 1-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
構成部分
説明
Supplier Emulator 部品の受発注を行うサプライヤ・ドメイン(1.2.3.2 参照)をエミュ
レートする。
SPECjAppServer
JSP/Servlet/EJB などの J2EE アプリケーション実装部分。
2004 本体
SPECjAppServer2004 本体が動作する環境は、SUT(System Under Test)と呼ばれ、
AP サーバ/コンテナ、DB、ネットワークまでを総体的に含むテスト環境全体を表す。Load
Driver および Supplier Emulator は、SUT 外部で実行しなければならない。そのため、
ハードウェア構成としては、少なくとも 2 台(SUT 用に 1 台と、Load Driver/Supplier
Emulator 用に 1 台)の計算機が必要である。
1.2.3.2 アプリケーションのドメイン
SPECjAppServer2004 アプリケーションには、ドメインと呼ばれるビジネス領域が 5
つある。そして、その中のディーラーと呼ばれるドメイン以外は、総称として、ビジネ
ス・ドメインと呼ばれる。表 1.2-2 に、SPECjAppServer2004 が定義している 5 つのド
メインの内容を記述する。
表 1.2-2 SPECjAppServer2004 のドメイン
ドメイン名
説明
ディーラー
在庫追跡、自動車販売および購入などを行う Web ベースのユー
(dealer)
ザ・インタフェース。JSP および Servlet で実装される。
顧客
追加注文、注文状況の確認、キャンセルなどを行う EJB。また、
(customer)
企業ドメインに、支払い能力の問い合わせを行う。
製造業
以下 2 種類のラインにより、自動車を製造する EJB。
(manufacturing)
• Planned Line:あらかじめ決められた数量を予定通りに製造
する。
• LargeOrder Line:大量注文を受注した場合のみ稼動する。
また、部品の在庫がなくなると、サプライヤ・ドメインに注
文する。
サプライヤ
製造業ドメインから受注し、サプライヤ(エミュレータ)に発注
(supplier)
する EJB。また、サプライヤから部品が届くと、製造業ドメイ
ンに通知する。
企業
顧客情報や在庫状況をグローバルに管理する EJB。
(corporate)
− 1-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
なお、表 1.2-2 に記述した各ドメイン間の関係を整理すると、図 1.2-2 のようになる。
ディーラー・
ドライバ(HTTP)
製造業ドライバ
(RMI)
ドメイン
購入・管理・閲覧
ディーラー・
ドメイン
アイテム購入・キャンセル
在庫チェッ
顧客
ドメイン
製造の指示
大量注文
支払い能力チッェック・
アイテム検索
製造業
ドメイン
部品注文
在庫更新
を指示
ク
企業
ドメイン
サプライヤ・
ドメイン
出荷済み
を通知
サプライヤ・
エミュレータ(HTTP)
図 1.2-2 SPECjAppServer2004 のドメイン
1.2.3.3 トランザクション
SPECjAppServer2004 は、表 1.2-3 に示す 2 種類のトランザクションについて規定している。
表 1.2-3 SPECjAppServer2004 のトランザクション
トランザクション
説明
Web インタラクション アプリケーションの Web 部分への HTTP リクエストであ
り、ディーラー・ドメインで実装している。
− 1-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
トランザクション
EC トランザクション
説明
EJB へのリモート・メソッド・コールであり、ディーラー以
外のドメインで実装している。
1.2.3.4 SPECjAppServer2004 のメトリック
1.2.3.3 に示す 2 種類のトランザクションを 1 つ以上組み合わせ、ビジネス・トランザ
クションと呼ばれる作業単位を定義している。
SPECjAppServer2004 固有のメトリックの 1 つは、JOPS(jAppServer Operations Per
Second)と呼ばれ、一般的な TPS(Transactions Per Second)に相当するものである。
JOPS は、単位時間当りにディーラー・ドメインで処理されるビジネス・トランザクシ
ョンと、製造業ドメインで実行される作業注文(ワーク・オーダー)の総数として算出
する。
JOPS = Dealer Transaction / sec + WorkOrders / sec
SPECjAppServer2004 の固有メトリックとしては他に、IR(Injection Rate)や txRate
などがある。これらの詳細については 2.11.1 を参照されたい。
1.2.3.5 ドライバとトランザクション
Load Driver の 2 つのドライバであるディーラー・ドライバおよび製造業ドライバと、
それらのトランザクションについて説明する。
1.2.3.5.1
ディーラー・ドライバとトランザクション
ディーラー・ドメインでは、ビジネス・トランザクションを、その性質に応じて 3 つ
のタイプに分類している。ディーラー・ドメインをシミュレートするドライバは、ビジ
ネス・トランザクションを、表 1.2-4 に示す割合で発生させる。
表 1.2-4 ビジネス・トランザクションのタイプ
ビジネス・トランザクションのタイプ
説明
割合
Purchase(購入)
新規に自動車を購入する。
25%
Manage(管理)
顧客の在庫を管理する。
25%
Browse(閲覧)
購入可能なアイテムの一覧を閲覧する。 50%
各トランザクション・タイプは、1.2.5 に示すトランザクションの幾つかを組み合わせ
て実行する。例えば、Purchase トランザクション・タイプは、具体的には、図 1.2-3 に
− 1-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
示すようなトランザクションを実行する。図中の楕円はトランザクション、数値はトラ
ンザクションの発生割合である。
doPurchase
50%
doAddTo
ShoppingCart
40%
doClearCart
doAddTo
ShoppingCart
doRemoveVehicle
ShoppingCart
doPurchase
10%
doPurchase
図 1.2-3 Purchase トランザクション・タイプの詳細
なお、ディーラー・トランザクションの発生数は、txRate*10 と規定されている。す
なわち、txRate=1 の時、10 ユーザが同時に HTTP 経由でアクセスするようなシステム
をシミュレートする。
1.2.3.5.2
製造業ドライバとトランザクション
製造業ドライバは、2 種類の製造ラインに対して、それぞれ異なるアプリケーション
PlannedLine および LargeOrderLine を実行する。
PlannedLine は、少量の製品を計画的に製造するアプリケーションであり、ディーラ
ー・ドライバ同様、1.2.5 のトランザクションの幾つかを組み合わせて実行する。また、
LargeOrderLine は、PlannedLine を継承し、大量注文があった場合特有の処理をする。
なお、PlannedLine の発生数は、txRate*3 と規定されている。すなわち、txRate=1
の時、3 つのラインで並行して製品を製造するようなシステムをシミュレートする。
1.2.4 EJB の役割
SPECjAppServer2004 アプリケーションを構成する EJB と、その役割について説明
する。EJB 名末尾が”Ses”となっているのは Session Bean であり、具体的な業務ロジッ
クを遂行する。また、”MDB”となっているのはメッセージ駆動型 Bean であり、JMS サ
ーバのメッセージ・キューに到着するメッセージを処理する。さらに、”Ent”となってい
るのは Entity Bean であり、データベースへのアクセスを行う。ドライバにより発生す
るトランザクションは、通常、Session Bean にアクセスし、直接 Entity Bean にアクセ
スすることはない。
− 1-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.2.4.1 顧客ドメインの EJB
顧客ドメインでは、新規注文の追加、注文状態の取得や、注文のキャンセルなどを行
う。また、顧客から注文を受注すると、企業ドメインに、顧客の支払い能力の問い合わ
せや、適切な割引をしたりする。さらに、顧客やセールスマンが、注文状態を閲覧でき
るような仕組みを提供する。
顧客ドメインで実装される EJB を、表 1.2-5 に示す。
表 1.2-5 顧客ドメインで実装される EJB
EJB 名
OrderSes
説明
新規注文、キャンセルなどのトランザクションの入口となる。
大 量 注 文 が あ っ た 場 合 は 、 製 造 業 ド メ イ ン の
LargeOrderQueue にメッセージを送信する。
OrderEnt
Orders テーブルにアクセスする。
OrderLineEnt
OrderLine テーブルにアクセスする。
ItemEnt
Item テーブルにアクセスする。
ItemBrowserSes
ItemEnt 経由で、Item テーブルをブラウズする。
OrderEnt 経由で呼ばれる。
OrderEnt 経由で呼ばれる。
全アイテムをキャッシュする。
FulfillOrderMDB
FulfillOrderQueue にメッセージが到着すると、顧客の在庫を
更新し、該当する注文については完了状態とする。
1.2.4.2 製造業ドメインの EJB
製造業ドメインは、工場内の製造ラインを模擬するものである。製造ラインには 2 種
類あり、これは 1.2.3.5.2 で説明したドライバに対応した処理を行う。
製造業ドメインでは、ドライバの指示に応じた作業を開始すると、組立部品の詳細を
取得し、在庫にあるパーツを割り当てる。また、部品が組立段階に入ると、進捗に応じ
て作業状況を更新する。
もし、パーツが無くなってしまったら、そのパーツのサプライヤを特定し、発注を行
う。このような処理は、サプライヤ・ドメインにコンタクトを取ることで実現している。
製造業ドメインで実装される EJB を、表 1.2-6 に示す。
− 1-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 1.2-6 顧客ドメインで実装される EJB
EJB 名
説明
WorkOrsderSes
製造業ドライバからのリクエストを処理する。
WorkOrderEnt
WorkOrder テーブルにアクセスする。
LargeOrderSes
大量注文があるかどうかチェックする。
LargeOrderMDB
LargeOrderQueue にメッセージが到着すると、それに対応す
る大量注文を行う。
LargeOrderEnt
ReceiveMDB
LargeOrderQueue に到着するメッセージを管理する。
LargeOderMDB により操作される。
ReceiveQueue にメッセージが到着すると、在庫に部品を追加
する。
PartEnt
component テーブルにアクセスする必要がある全てのクラス
のスーパー・クラスであり、それらのアクセス要求を代行する。
AssemblyEnt
組立部品を管理する。
組立部品は Parts テーブルの行に相当し、複数のコンポーネン
トから構成される。
ComponentEnt
Parts テーブル内のコンポーネントと組立部品にアクセスす
る。
InventoryEnt
Inventory テーブルにアクセスする。
在庫を追加・削除するメソッドを備える。
BOMEnt
BOM テーブルにアクセスする。
コンポーネント生成に必要なパーツの情報を取得するメソッ
ドを備える。
1.2.4.3 サプライヤ・ドメインの EJB
サプライヤ・ドメインは、サプライヤとのインタラクションを行うドメインである。
注文対象となるパーツや、納期、見積り額を基に、サプライヤを選択する。次に、選択
したサプライヤ宛に、配送先、期限などを示した注文書を送る。そして、サプライヤか
らパーツが届くと、製造業ドメインに通知し、製造業ドメインは在庫情報を更新する。
サプライヤ・ドメインで実装される EJB を、表 1.2-7 に示す。
表 1.2-7 サプライヤ・ドメインで実装される EJB
EJB 名
BuyerMDB
説明
BuyerQueue にメッセージが到着すると、その内容に基づき発
注を行う。
ReceiveSes
発注に関連するコンポーネントの配送を行う。
− 1-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
EJB 名
説明
SupplierEnt
Supplier テーブルにアクセスする。
SupplierCompone
SupplierComponent テーブルにアクセスする。
ntEnt
SupplierEnt により呼ばれる。
PurchaseOrder テーブルにアクセスする。
POEnt
発注内容の各項目に相当する、PurchaseOrderLine の行を生
成する。
PurchaseOrderLine テーブルにアクセスする。
POLineEnt
POEnt により呼ばれる。
Component テーブルにアクセスする。
SComponentEnt
1.2.4.4 企業ドメインの EJB
企業ドメインでは、顧客リストや顧客の在庫リストを、グローバルに管理する。セキ
ュリティやプライバシーのため、顧客の支払い能力に関する情報は、このドメインでの
み管理している。
企業ドメインで実装される EJB を、表 1.2-8 に示す。
表 1.2-8 企業ドメインで実装される EJB
EJB 名
説明
顧客情報および顧客在庫情報にアクセスするための入口とな
CustomerSes
る。
ディーラーが正規の顧客かどうかのチェックや、顧客在庫への
アイテム追加、顧客在庫からのアイテム売却、顧客の支払い能
力チェックなどを行う。
CustomerEnt
顧客情報のトラッキングを行う。
CustomerInvento
顧客在庫にあるアイテムの情報を管理する。
ryEnt
1.2.4.5 EJB の配置
Entity Bean 以外の Bean の配置を、図 1.2-4 に示す。
− 1-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Driver
Dealer Agent
PlannedLine
Agent
HTTP
LargeOrder
Line Agent
RMI
RMI
大量注文チェック
購入、管理、閲覧
Dealer Domain
Customer Domain
商品閲覧
OrderSes
ItemBro
wserSes
LargeOrd
erMDB
LargeOrd
erSes
WorkOrd
erSes
FulfillOr
derMDB
WorkOrderE
nt
FulfillOrderQueue
顧客情報の取
得・更新
Manufacture Domain
大量注文通知
注文
SpecApp
Servlet
LargeOrderQueue
生産指示
クレジットチェック
ReceiveQueue
ReceiveM
DB
部品納品通知
注文完了通知
Corporate Domain
Supplier Domain
注文完了
Receiver
Ses
部品購入通知
部品納品
Customer
Ses
DeliveryS
ervlet
部品納品
Supplier Emulator
HTTP
BuyerMD
B
BuyerQueue
部品購入
Emulator
Servlet
図 1.2-4 EJB の配置
− 1-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.2.5 SPECjAppServer2004 トランザクション一覧
SPECjAppServer2004 が定義するトランザクションの一覧を示す。
ディーラー・ドメインで定義する Web インタラクションは表 1.2-9 に示す通りである。
表 1.2-9 ディーラー・ドメインの Web インタラクション
名称
説明
doWelCome
WelCome ページを表示する。
doLogin
企業ドメインの EJB メソッドを使用し、ログイン時の認証を行う。
doHome
パーソナライズした個人情報を表示する。
doLogout
ログアウトを行う。
doVehicleQuotes
顧客ドメインの EJB メソッドを使用し、カタログ・アイテム一覧
を表示する。
doShoppingCart
ショッピング・カートの中身を表示する。
dpAddToShoppingC
ショッピング・カートにアイテムを追加する。
art
doRemoveFromShop
ショッピング・カートからアイテムを 1 つ削除する。
pingCart
doClearCart
ショッピング・カートからアイテムを全て削除する。
dpPurchase
顧客ドメインの EJB メソッドを使用し、ショッピング・カート内
のアイテムを購入する。
doDeferedPurchase
顧客ドメインの EJB メソッドを使用し、ショッピング・カート内
に保留されていたアイテムを全て購入する。
doCancelOrder
顧客ドメインの EJB メソッドを使用し、保留状態にある注文の 1
つをキャンセルする。
doSell
企業ドメインの EJB メソッドを使用し、ディーラーの在庫にある
アイテムを売る。
doInventory
企業ドメインと顧客ドメインの EJB メソッドを使用し、ディーラ
ーの在庫にあるアイテムの一覧と、保留状態にある注文の一覧を表
示する。
顧客ドメインで定義する EC インタラクションは表 1.2-10 に示す通りである。
− 1-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 1.2-10 顧客ドメインの EC インタラクション
名称
NewOrder
説明
顧客からの注文を受注し、見積り、割引、顧客の支払い能力チェッ
クなどを行う。
GetOderStatus
特定の注文について、注文された全てのアイテムの ID、個数、出
荷日時などの状態を取得する。
GetCustomerStatus
特定顧客の、未決済注文の状態を取得する。
CancelOrder
注文をキャンセルする。
GetOpenOrders
特定顧客の、保留中の注文を取得する。
GetItemInfo
カタログ・アイテムの ID の一覧を取得する。
GetItems
カタログ・アイテムを最大 10 個まで取得する。
BrowseForward
次のカタログ・アイテムを、最大 10 個まで取得する。
BrowseReverse
直前のカタログ・アイテムを、最大 10 個まで取得する。
製造業ドメインで定義する EC インタラクションは表 1.2-11 に示す通りである。
表 1.2-11 製造業ドメインの EC トランザクション
名称
説明
ScheduleWorkOrder
製造注文を受注し、製造に必要なパーツの割り当てを行う他に、在
庫が少ないパーツがあればサプライヤに注文する。
UpdateWorkOrder
各段階における作業が終了すると、作業状態を更新する。
CompleteWorkOrder
作業状態を「完了」とする。
CancelWorkOrder
可能ならば注文をキャンセルし、在庫状態を元に戻す。
FindLargeOrders
処理待ちの大量注文があれば取得する。
企業ドメインで定義する EC インタラクションは表 1.2-12 に示す通りである。
表 1.2-12 企業ドメインの EC トランザクション
名称
ValidateCustomer
説明
顧客 ID をキーに、その ID を持つ顧客が存在するかどうかチェッ
クする。
GetCustomerInfo
顧客情報を取得する。
GetInventory
顧客の在庫情報を取得する。
SellInventory
顧客の在庫の中から、指定されたアイテムを売却する。
AddInventory
ショッピング・カートの中身を購入した結果、または、大量注文
が完了した結果を反映し、顧客の在庫にアイテムを追加する。
− 1-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
名称
説明
CheckCustomerCredit
顧客の支払い能力をチェックする。
サプライヤ・ドメインで定義する EC インタラクションは表 1.2-13 に示す通りである。
表 1.2-13 サプライヤ・ドメインの EC トランザクション
名称
DeliveryPO
説明
サプライヤ・エミュレータから注文品出荷済みの連絡を受けると、
在庫情報を更新するように製造業ドメインに通知する。
− 1-16 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.3 評価手順の概要
SPECjAppServer2004 を用いて性能・信頼性評価を行う場合、図 1.3-1 に示す手順で
評価を行う。ここでは特定のソフトウェアやハードウェア環境に依存しない手順の概略
を示す。より詳細な手順は「2 評価手順書」に示される。
ハードウェアの調達
アプリケーションのビルド・配備
ソフトウェアの調達
サーバプロセス群の起動
OSのインストール・設定
データベースへの初期データの投入
ネットワーク環境の構築
ベンチマーク測定の実施
ソフトウェア群のインストール・設定
ベンチマーク測定結果の評価
データベースの初期化
サーバプロセス群の停止
チューニングの実施
図 1.3-1 評価手順の流れ
− 1-17 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.
ハードウェアの調達
評価環境の構築に必要な、計算機群および、ネットワーク機器等を調達する。
2.
ソフトウェアの調達
評価環境の構築に必要な、様々なソフトウェア群(SPECjAppServer2004 本体、AP サ
ーバ、DB サーバ、等)を調達する。
3.
OS のインストール・設定
計算機群に OS をインストールし、必要な設定を行う。
4.
ネットワーク環境の構築
計算機群が相互に通信可能なネットワーク環境を構築する。
5.
ソフトウェア群のインストール・設定
様々なソフトウェア群を、それぞれの計算機にインストールし、設定を行う。
6.
データベースの初期化
データベースの各種パラメータを決定し、SPECjAppServer2004 が使用するデータを
格納可能なデータベースを作成する。
7.
アプリケーションのビルド・配備
SPECjAppServer2004 アプリケーションをビルドし、AP サーバ等への配備を行う。
8.
サーバプロセス群の起動
DB サーバ、AP サーバ、Web サーバ等のサーバプロセス群を起動する。
9.
データベースへの初期データの投入
データベース上に表および索引等を作成し、初期データを投入する。
10. ベンチマーク測定の実施
ベンチマーク測定プログラムを実行する。
11. ベンチマーク測定結果の評価
ベンチマーク測定が正常終了したか否か、またベンチマーク測定結果の値(処理性能、
応答時間等)を確認する。
12. サーバプロセス群の停止
Web サーバ、AP サーバ、DB サーバ等のサーバプロセス群を停止する。同一測定条件
で複数回の測定を行う場合、「8.サーバプロセス群の起動」に戻る。
− 1-18 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
13. チューニングの実施
ベンチマーク測定結果などから得られた情報に基づいて、必要に応じて各層(Web 層
/DB 層/OS 層等)毎のチューニングを行う。チューニングの結果、各種ソフトウェアの設
定変更が必要となる場合、
「5.ソフトウェア群のインストール・設定」に、アプリケーシ
ョンの再ビルド・再配備等が必要となる場合、
「7.アプリケーションのビルド・配備」に、
それぞれ戻る。
− 1-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.4 カーネルバージョン間比較の概要
1.4.1 本評価の目的
本評価における目的の一つは、Linux(OS 層)、PostgreSQL(DB 層)、JBoss(AP 層)、
Apache httpd(Web 層 ) と 言 う 、 代 表 的 な OSS 群 で 構 築 さ れ た 評 価 環 境 上 で 、
SPECjAppServer2004 アプリケーションを稼働させる手順を確立することである。本評
価手順の全部或は一部を再利用する事で、利用者は、OSS による性能・信頼性評価環境
を、より容易に構築する事が可能となる。
そしてさらなる目的としては、確立した手順を用いて、同一ハードウェア上で Linux
カーネル 2.4 およびカーネル 2.6 それぞれを採用した Linux ディストリビューションを
用いて測定を行い、それぞれのカーネルの、特に高負荷時における性能・信頼性を比較・
検証する。
1.4.2 環境定義および評価手順の概要
本評価においては、図 1.4-1 に示すネットワーク環境上に、
12
Emulator
ossem
15
11
Driver
ossld
192.168.102.x
Web/JMS Server
osswj
15
11
11
AP Server
ossas1
192.168.101.x
15
DB Server
ossds
192.168.104.x
図 1.4-1 ネットワーク構成
表 1.4-1 に示すソフトウェア群によって構築される性能・信頼性評価環境を構築し、
表 1.4-1 ソフトウェア構成
分類
ソフトウェア
Red Hat Enterprise Linux AS2.1(Kernel 2.4.9)
OS
SUSE LINUX Enterprise Server 9(Kernel 2.6.5)
アプリケーション
SPECjAppServer2004
Web サーバ
Apache-2.0.46
− 1-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Web-AP コネクタ
mod_jk2.0.4
JDK
j2sdk-1.4.2_04
アプリケーションサーバ
JBoss-4.0.0
DB サーバ
PostgreSQL-7.4.6
上記環境上で SPECjAppServer2004 によるベンチマーク測定を行う手順を確立した。
1.4.3 評価結果および分析・考察の概要
本評価において、同一の評価手順を用いて、カーネル 2.4 およびカーネル 2.6 両方の
Linux ディストリビューション上で評価環境を構築し、測定を実施可能な事が確認でき
た。今後はカーネル 2.6 に対応した Linux ディストリビューションが主流になるかと思
われるが、カーネル 2.4 に対応した Linux ディストリビューションで構築されたシステ
ムが多数稼働している現状においては、本評価手順が、カーネル 2.4 および 2.6 の両方
に対応しているのは、新旧両システムの性能・信頼性評価に用いる事が可能という点で、
ある程度意義があるかと思われる。
また、本評価においては、Linux, Apache httpd, JBoss, PostgreSQL と言う組み合わ
せにおける評価手順を確立したが、本評価手順の一部を再利用する事で、例えばデータ
ベース部分を他のものに置き換えてみたり(MySQL や商用 DB 等)、OS 部分を他のもの
に置き換えてみたり(商用 OS 等)することは、比較的容易であると考える。
また、カーネル 2.4 とカーネル 2.6 の性能比較と言う観点から見た場合、全体的に見
て、高負荷時においては、概ねカーネル 2.6 の方が高性能であると言う結果が得られた。
以下に測定結果の一部を示す。
理想直線
処理性能
負荷と処理性能の関係(全体)
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
A
B
C
D
E
負荷
図 1.4-2 負荷と処理性能の関係(全体)
− 1-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 1.4-2 において、横軸はシステムに与える負荷の度合いを示し、縦軸は単位時間あ
たりのトランザクション処理性能を示す。測定に際して 5 段階の負荷を与えたが、負荷
の値は等間隔ではなく、高負荷になるほど間隔をより大きくした。また理想直線とは、
低負荷時におけるトランザクション処理性能値を、負荷の比率に応じて直線化したもの
である。
負荷と平均応答時間の関係(Purchase)
18
16
平均応答時間(秒)
14
12
10
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
8
6
4
要求応答時間
2
0
A
B
C
D
E
負荷
図 1.4-3 負荷と平均応答時間の関係(Purchase)
図 1.4-3 において、横軸はシステムに与える負荷の度合いを示し、縦軸は購買
(Purchase)処理に要する平均応答時間を示す。要求応答時間とは、SPECjAppServer2004
が規定する 90%応答時間の基準(2 秒)を示す。
ただし本比較は、比較的古い(カーネル 2.6 の新機能が取り込まれていない)カーネル
2.4 と、(評価時点においてほぼ最新の)カーネル 2.6 の比較である事に注意が必要である。
カーネル 2.6 の新機能群が取り込まれたカーネル 2.4 と、カーネル 2.6 の比較結果は、自
ずから上記とは異なる結果になる。
− 1-22 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.5 分散処理性能比較の概要
1.5.1 本評価の目的
本評価における目的の一つは、Linux(OS 層)、PostgreSQL(DB 層)、JBoss(AP 層)、
Apache httpd(Web 層)と言う、代表的な OSS 群で構築された、高性能クラスタ評価環境
上で、SPECjAppServer2004 アプリケーションを稼働させる手順を確立することである。
カーネルバージョン間比較との違いは、カーネルバージョン間比較は、AP サーバ単体(一
台)における評価に対して、本評価は、複数台の AP サーバ群による、高性能クラスタを
構築する、と言う点である。ここで言う高性能クラスタ(High Performance Cluster)と
は、高可用性クラスタ(High Availability Cluster)とは異なり、可用性向上の為の AP サ
ーバ間におけるリプリケーション等は行わず、性能向上を主な目的としたクラスタを指
す。
そしてさらなる目的としては、確立した手順を用いて、カーネルバージョン間比較と
同様に、同一ハードウェア上で Linux カーネル 2.4 およびカーネル 2.6 それぞれを採用
した Linux ディストリビューションを用い、AP サーバ台数を 1 台から 4 台まで変化さ
せつつ測定を行い、それぞれのカーネルの、特に高負荷時における性能・信頼性を比較・
検 証 す る 。 ま た 併 せ て 、 AP サ ー バ 台 数 と 処 理 性 能 の 関 係 や 、 そ れ ぞ れ の 役 割
(AP/DB/Web/JMS サーバ)毎の負荷状況なども併せて検証する。
1.5.2 環境定義および評価手順の概要
本評価においては、図 1.5-1 に示すネットワーク環境上に、
Emulator
ossem
AP Server
ossas1
11
12
AP Server
ossas2
12
13
AP Server
ossas3
13
14
AP Server
ossas4
14
12
15
Driver
ossld
11
11
192.168.102.x
Web/JMS Server
osswj
15
192.168.101.x
15
DB Server
ossds
192.168.104.x
図 1.5-1 ネットワーク構成
− 1-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 1.5-1 に示すソフトウェア群によって構築される性能・信頼性評価環境を構築し、
表 1.5-1 ソフトウェア構成
分類
ソフトウェア
Red Hat Enterprise Linux AS2.1(Kernel 2.4.9)
OS
SUSE LINUX Enterprise Server 9(Kernel 2.6.5)
アプリケーション
SPECjAppServer2004
Web サーバ
Apache-2.0.46
Web-AP コネクタ
mod_jk2.0.4
JDK
j2sdk-1.4.2_04
アプリケーションサーバ
JBoss-4.0.0
DB サーバ
PostgreSQL-7.4.6
上記環境上で SPECjAppServer2004 によるベンチマーク測定を行う手順を確立した。
1.5.3 評価結果および分析・考察の概要
本評価において、カーネルバージョン間比較と同様に、同一の評価手順を用いて、カ
ーネル 2.4 およびカーネル 2.6 両方の Linux ディストリビューション上で評価環境を構
築し、測定を実施可能な事が確認できた。本評価手順を、新旧両システムの性能・信頼
性評価に用いる事が可能である。
また、カーネルバージョン間比較と同様に、本評価手順の一部を再利用する事で、デ
ータベース部分や OS 分を他のもの(商用或は他の OSS)に置き換えた評価手順の確立は、
比較的容易であると言える。
また、計算機の役割毎の負荷の観点から見た場合、AP サーバの台数を増やす事で、よ
り高負荷に耐えうる、高性能クラスタ環境を構築可能な事が、結果として得られた。た
だし、むやみに AP サーバの台数のみを増やしても、システム全体の性能向上は望めな
い。AP サーバ台数を増やす事で、次はシステムのどの部分がボトルネックになるのかを
考慮しながら全体の負荷バランスを見積もる事が重要である。
また、カーネル 2.4 とカーネル 2.6 の性能比較と言う観点から見た場合、カーネルバ
ージョン間比較(AP サーバ単体)と同様に、高負荷時にはややカーネル 2.6 の方が高性能
であると言う結果が得られた。以下に測定結果の一部を示す。
− 1-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と処理性能の関係(全体)
理想直線
処理性能
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
A
C
B
E
D
負荷
図 1.5-2 負荷と処理性能の関係(全体)
図 1.5-2 において、横軸はシステムに与える負荷の度合いを示し、縦軸は単位時間あ
たりのトランザクション処理性能を示す。AP1 台においては負荷 B まで、AP2 台におい
ては負荷 C まで、AP3 台においては負荷 D まで、AP4 台においては負荷 E までを、そ
れぞれ最高負荷として測定を行った。測定に際して 5 段階の負荷を与えたが、与えた負
荷の値はほぼ等間隔である。理想直線とは、低負荷時におけるトランザクション処理性
能値を、負荷の比率に応じて直線化したものである。
負荷と平均応答時間の関係(Purchase)
要求応答時間
平均応答時間(秒)
2
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
1.5
1
0.5
0
A
B
C
D
E
負荷
図 1.5-3 負荷と平均応答時間の関係(Purchase)
− 1-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 1.5-3 において、横軸はシステムに与える負荷の度合いを示し、縦軸は購買
(Purchase)処理に要する平均応答時間を示す。要求応答時間とは、SPECjAppServer2004
が規定する 90%応答時間の基準(2 秒)を示す。
ただし本比較は、比較的古い(カーネル 2.6 の新機能が取り込まれていない)カーネル
2.4 と、(評価時点においてほぼ最新の)カーネル 2.6 の比較である事に注意が必要である。
カーネル 2.6 の新機能群が取り込まれたカーネル 2.4 と、カーネル 2.6 の比較結果は、自
ずから上記とは異なる結果になる。
− 1-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.6 トランザクション特性評価の概要
1.6.1 本評価の目的
SPECjAppServer2004 は、典型的なエンタープライズ Java アプリケーションを総合
的に模した仕様となっているため、逆にミクロな視点である Java オブジェクトレベル
での処理性能解析やトランザクションレベルでの性能解析において弱い部分がある。本
評価は、SPECjAppServer2004 をベースに、カーネルトレースツールの利用および新た
な測定ツールを用意することにより、ミクロな視点での補完的処理特性の解析をした。
1.6.2 環境定義および評価手順概要
1.6.2.1 環境定義
本評価では、AP サーバが 1 台構成の場合のスループット解析を実施した。
本評価のネットワーク構成は、図 1.6-1 に示すとおりである。
Driver
ap1
11
14
JMS Server
ap4
Web Server
ap2
12
15
AP Server
web2
Emulator
ap3
13
16
DB Server
db1
192.168.61.×
図 1.6-1 ネットワーク構成
また、本評価にて使用したソフトウェアは、表 1.6-1 に示すとおりである。
表 1.6-1 使用したソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux ASu3 (2.4-21-20)
アプリケーション
SPECjAppServer2004
Web サーバ
Apache-2.0.46
Web-AP コネクタ
mod_jk2.0.4
JDK
j2sdk-1.4.2_04
AP サーバ、JMS サーバ、
Emulator サーバ
DB サーバ
JBoss-4.0.0
PostgreSQL-7.4.6
− 1-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.6.2.2 評価手順概要
1.6.2.2.1
実ユーザ環境下への近似とそれによる傾向解析
SPECjAppServer2004 では、3 種類のトランザクション・タイプの投入割合があらか
じめ定められている。SPECjAppServer2004 を用いた性能見積りを使って、実ユーザの
動作環境下に近い形で評価できるかを検証した。その結果、標準的なトランザクション・
タイプ投入割合時の傾向解析の他に、参照系トランザクションが多いモデルや、更新系
トランザクションが多いモデルの傾向解析を、SPECjAppServer2004 ベースで実施する
ことが可能であることが分かった。
1.6.2.2.2
プログラム動作の解析
1.6.2.2.1 に示す傾向解析に加え、内部動作の傾向解析が実施できるように、JBoss の
インタセプタを用いて、EJB コンテナのメソッド毎に実行時間の平均値等の値を取得で
きるツール(EJB Profiler)を用意する。このツールを用いて、SPECjAppServer2004 を
モデルに、負荷変動に伴い、どのような手続き(EJB コンテナ)の動作が大きく変化す
るかを解析した。
1.6.3 評価結果および分析・考察の概要
1.6.3.1 トランザクション投入割合を変更した評価
トランザクション・パターンの投入割合を変更することにより、概ね設定通りの割合
に則って投入し、測定を行えることを確認した。また、スループットやシステム・リソ
ース状況を調査した結果、投入割合の変化に応じて期待通りに変化することを確認した。
これらのことから、トランザクション・タイプの投入割合を変化させることにより、
SPECjAppServer2004 を、より実ユーザ環境に近い環境を模擬したベンチマークとする
ことができると考える。
ただし、投入割合の設定値によっては、不具合が発生することがあり、それに関して
は注意が必要である。
考察として、2 つのトランザクション・タイプの投入割合を xy 平面上の x 軸、y 軸に
取り、TPS 限界値を z 軸とした 3 次元平面と仮定し、投入割合と TPS の相関のモデル
化を試みた。その結果、投入割合と TPS 限界値の相関モデルは、実際には、複数の 3 次
元平面により構成されるか、もしくは複雑な曲面により表現されるものと考えるべきと
いう結論に至った。
− 1-28 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.6.3.2 プログラム動作の解析
SPECjAppServe2004 アプリケーションの内部の振る舞いを、EJB メソッドレベルで
観察した。その結果、全体的な傾向の把握と、実行回数および平均実行時間がともに大
きい一部のメソッドを特定することができた。このような解析は、システム全体のボト
ルネックを特定する一手段として有効であると考える。
今回の評価では、EJB Profiler により、メソッドの実行回数および平均実行時間から
みた、性能上の阻害要因を抽出した。
実行回数からみた場合の一例を図 1.6-2 に示す。
負荷レベル
高
#82 #76 #78 #75 #81 #12 #36 #34 #28 #39 #40 #31 #35 #30 #29
低
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
図 1.6-2 実行回数の割合
上位 15 メソッドだけで、全体の約 6 割を占めていることが分かった。
次に、平均実行時間からみた場合の一例を図 1.6-3 に示す。
− 1-29 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷レベル
高
#22 #116 #69 #63 #126 #72 #149 #3 #113 #55 #148 #84 #67 #89 #21
低
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
図 1.6-3 平均実行時間の割合
上位 15 メソッドだけで、全体の約 7 割を占めていることが分かった。平均実行時間の
大きいメソッドの幾つかの処理を調査した結果、データにアクセスする部分が阻害要因
になっている様子がみてとれた。
このように、EJB Profiler を用いると、実行回数や平均実行時間の側面から、性能上
の阻害要因となりそうなメソッドをリストアップできる。そして、リストアップされた
個々のメソッドに対して、動作要因等を照合することにより、効率的なチューニングが
可能になる。
ただし、平均実行時間の大きいメソッドは実行回数が比較的少なく、平均実行時間か
ら大きく外れた、言わば異常値の影響を受けやすいものと考えられる。そのため、平均
実行時間のみに着目するのは危険であり、実行時間のバラつきに関する検証や、そのバ
ラつきの原因究明などが、必要になると言える。
− 1-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1.7 商用 AP サーバとの比較の概要
1.7.1 本評価の目的
本評価の目的の一つは、Linux(OS 層)、PostgreSQL(DB 層)、JBoss(AP 層)、Apache
httpd(Web 層)と言う、代表的な OSS 群で構築された Java アプリケーション層のクラスタ
構成上で SPECjAppServer2004 を稼動させる手順を確立する事である。分散処理性能比較
との違いは、商用ソフトウェアである WebLogic(AP 層)によるクラスタ構成上での手順も
確立する点である。
さらなる目的は、確立した手順を用いて性能測定を行い OSS と商用ソフトウェアを比較
することによって、大規模システム構築における OSS アプリケーションサーバを用いたク
ラスタ構成の適用領域を明確にする事である。Java アプリケーション層のクラスタ化には、
主に HttpSession のレプリケーションと EJB のクラスタ対応が必要になる。これらは J2EE
の仕様では規定されていない事項でありアプリケーションサーバの実装に依存している。
JBoss, WebLogic 共にこれらの機能を備えているので、本評価ではこれらの機能を中心とし
て性能を測定する。
1.7.2 環境定義および評価手順の概要
本評価では、OSS として JBoss を、商用ソフトウェアとして WebLogic を選び、アプリ
ケーションサーバのクラスタ構成を JBoss と WebLogic で構築しベンチマーク測定を行う。
本評価のネットワーク構成を図 1.7-1 に示す。
163
Web/JMS
dl360g4web
164
Driver
dl360g4c1
Emulator
dl360g4c1
AP Server
dl360g3ap1
164
168
161
165
AP Server
dl360g3ap2
165
DB Server
dl360g4db
162
166
AP Server
dl360g3ap3
167
AP Server
dl360g3ap4
192.168.61.x
166
167
192.168.62.x
図 1.7-1 商用 AP サーバとの比較評価 ネットワーク構成
− 1-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
本評価にて使用したソフトウェアを表 1.7-1 に示す。
表 1.7-1 商用 AP サーバとの比較評価 ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS3.0(U3)
アプリケーション
SPECjAppServer2004
Web サーバ
Apache-2.0.46
Web-AP コネクタ
mod_jk2.0.4 / wl_proxy(WebLogic8.1SP3)付属
JDK
j2sdk-1.4.2_04 / JRockit1.4.2_04
アプリケーションサーバ
JBoss-4.0.0 / WebLogic8.1SP3
DB サーバ
PostgreSQL-7.4.6
Emulator サーバ
Tomcat-4.1.31
JBoss, WebLogic それぞれの環境上で、アプリケーションサーバの台数を 1 台から 4 台
へ変化させた場合の性能を比較する。比較項目は、処理能力、応答時間、CPU 使用率等の
サーバリソース、スケーラビリティの 4 点である。
1.7.3 評価結果および分析・考察の概要
本評価において、JBoss, WebLogic それぞれのクラスタ構成上で評価環境を構築し、
SPECjApServer2004 の測定を実施可能な事が確認できた。
また、JBoss と WebLogic の性能比較では、単体比較で WebLogic の方が高性能であると
言う結果が得られた。単体での処理性能の比較結果を図 1.7-2 に示す。横軸が負荷(規模)、
縦軸が処理性能である。
JBoss単体
WebLogic単体
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A
B C
D5
E10
F15
G 20
負荷(規模)
図 1.7-2 JBoss/WebLogic 単体比較 処理性能
本検証で測定した範囲では、JBoss の処理限界を確認することはできたが、WebLogic の
処理限界を確認することはできなかった。CPU 使用率などの分析から WebLogic と JBoss
− 1-32 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
では単体で 3 倍程度の性能差が存在する事が推測される。
次にクラスタ構成では、WebLogic の方はスケールアウトしたが、JBoss はスケールアウ
トしない結果が得られた。クラスタ構成での処理性能の比較結果を図 1.7-3 に示す。横軸
が負荷(規模)、縦軸が処理性能である。
JBoss AP1台
JBoss AP4台
WebLogic AP3台
JBoss AP2台
WebLogic AP1台
WebLogic AP4台
JBoss AP3台
WebLogic AP2台
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A
B C
5D
10
E
15F
20
G
負荷(規模)
図 1.7-3 JBoss/WebLogic クラスタ比較 処理性能
本検証で使用した JBoss4.0.0 にはバグがあり、HttpSession 全体単位でのレプリケーシ
ョンしか行えなかった。そのため HttpSession のレプリケーションを行った場合、クラス
タ構成の方が JBoss 単体よりも性能が劣化した。
JBoss の適用領域については、評価時点において以下のような領域であると考察した。
z
大きな性能要件を求められていない
z
信頼性についてはアプリケーションの作りによってカバーできる
また、今後リリースされる JBoss4.0.2 ではバグが修正され、HttpSession の変更された
Attribute のみレプリケーションさせる設定が可能となる見込みである。JBoss クラスタの
性能が向上する可能性があるため、適用領域についても再度評価を行い判断することが望
まれる。
− 1-33 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2 評価手順書
本章では、特定のソフトウェアや、ハードウェア環境に依存しない、
SPECjAppServer2004 を用いた性能・信頼性評価の手順を示す。本章に引き続く後の章
においては、特定のソフトウェア、ハードウェア環境における、より具体的な評価手順
が示される。
また、本章で示す評価手順は、全ての評価項目(カーネルバージョン間比較、分散処
理性能比較、等)において共通の手順である。本章に引き続く後の章においては、それ
ぞれの評価項目毎に異なる部分が、より具体的に示される。
なお、SPECjAppServer2004 に関するより詳細な情報は、表 2.1-1 に示す URL 群を
参照されたい。
表 2.1-1 SPECjAppServer2004 詳細情報
URL
内容
http://www.spec.org/jAppServer2004/
HomePage
http://www.spec.org/jAppServer2004/docs/FAQ.html
FAQ
http://www.spec.org/jAppServer2004/docs/UserGuide.html
User’s Guide
http://www.spec.org/jAppServer2004/docs/RunRules.html
Run and Reporting
Rules
http://www.spec.org/jAppServer2004/docs/DesignDocument.html
− 2-1 −
Design Document
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.1 ハードウェアの調達
2.1.1 計算機群の調達
まず第一に必要なものとして、計算機そのものが挙げられる。調達した計算機上で、
DB サーバ、AP サーバ等、様々なプロセス群が動く事となる。
2.1.1.1 計算機の台数
最低二台の計算機があれば、評価環境を構築する事は可能であるが、より実システム
に近い評価環境を構築する場合、以下に示すそれぞれの役割毎に、どのように計算機を
割り当てるかを決定する必要がある。
Driver
SPECjAppServer システム本体に対して HTTP 或は RMI/IIOP 経由で負荷を与える役
割。システム本体とは別の計算機上で稼働させなければならない。
Emulator
Supplier システムをエミュレートする役割。Supplier システムは SPECjAppServer
システム本体とは別の計算機上で稼働させなければならない。システム本体とは HTTP
経由でやり取りを行う。
Web サーバ
Driver からの HTTP リクエストを受け付け、AP サーバへ処理を移譲する役割。特に
この役割を持つ計算機を調達せず、AP サーバが Web サーバの役割を兼ねても良い。ま
た、負荷分散装置等が、この役割を担当する場合もあるだろう。
AP サーバ
SPECjAppServer システム本体の役割。Web サーバ或は負荷分散装置からの移譲され
た HTTP リクエストおよび、Driver からの RMI/IIOP リクエストを受け付ける。また
Driver の JNDI 参照リクエストを受け付ける役割も併せて担当する。
DB サーバ(AP 用、JMS 用)
AP 用 DB サーバは、SPECjAppServer システム本体のアプリケーションデータを管
理する役割。JMS 用 DB サーバは、JMS サーバのメッセージデータを管理する役割。
それぞれ AP サーバおよび JMS サーバからの JDBC リクエストを受け付ける。
− 2-2 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JMS サーバ
SPECjAppServer システム内で非同期にやり取りされるメッセージ群を管理する役割。
最低限の構成としては、Driver/Emulator 用の計算機が一台、その他(Web/AP/JMS/DB
サーバ)の役割用の計算機が一台の、併せて二台構成となるが、通常サーバ群は、それぞ
れの役割毎に一台∼数台を割り当てることになるだろう。負荷が高くなると考えられる
のが AP サーバおよび DB サーバであり、低めの負荷が想定されるのが Web サーバおよ
び JMS サーバである。AP サーバはプレゼンテーションロジックの実行(JSP ページの
生成、等)、アプリケーションロジックの実行(EJB)等、負荷が高い処理を担当する。ま
た DB サーバはアプリケーションデータの管理と言う、こちらも負荷が高い処理を担当
する。Web サーバは AP サーバへの処理の委譲と言う、比較的負荷が低い処理を担当す
る。JMS サーバは、非同期にやり取りされるメッセージ群の管理を担当するが、メッセ
ージの発生頻度は、DB サーバへのリクエスト頻度に比して低い為、AP サーバおよび
DB サーバに比べ、負荷は低いと言える。
役割毎の計算機の割り当てを決定する際には、それぞれの役割毎に想定される負荷を
見積り、特定の計算機へ負荷を集中させない事が重要である。多数の計算機を調達する
事が困難な場合、複数の役割を一台の計算機に割り当てることも可能である。また、そ
れなりの高負荷に耐え得る様な環境を構築する場合、ひとつの役割を複数の計算機に分
散させる事も可能である。SPECjAppServer2004 は、Emulator は一台の計算機上で稼
働させる前提となっているが、それ以外の役割(Driver、AP サーバ、DB サーバ、等)に
関しては、一つの役割を複数の計算機群に分散させる事が可能である。
また、DB サーバの役割における、AP 用と JMS 用の違いは、AP 用 DB サーバにおい
ては、SPECjAppServer におけるアプリケーションデータ(Order, Item, etc.)が格納され、
JMS 用 DB サーバにおいては、JMS サーバが内部的に保持するメッセージデータ等が
格納されると言う点である。両者の役割を同一の DB サーバ上で行わせても良いし、そ
れぞれ異なる DB サーバを割り当てる事も可能だろう。
2.1.1.2 計算機の仕様
本評価はハードウェアの性能・信頼性を対象とするものではない為、原則的には、ハ
ードウェアに関して明確な仕様を定めるものではない。しかしながら、以下の点に注意
して計算機の仕様を決定する事が必要だろう。
ボトルネックに関して
本評価は Java アプリケーション層の評価である為、計算機の仕様を定める際には、
Java アプリケーション層以外の部分がなるべくボトルネックにならないようにするこ
とが重要である。例えばネットワーク・インターフェイスが低速(10Mbps 等)な場合、ネ
ットワークがボトルネックになる可能性がある為、ネットワーク・インターフェイスは
高速(Gigabit)なものを採用すべきだろう。また DB サーバの性能が AP サーバに比して
− 2-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
あまりにも低い場合、DB サーバがボトルネックになってしまう可能性もあるだろう。
また例えば、AP サーバの高負荷時の信頼性に着目した評価を行いたい場合、他の計算機
に比して AP サーバのハードウェア性能をより低めにしておくことで、比較的容易に AP
サーバに高負荷を与える事が可能になるだろう。一方、AP サーバ(を含めたシステム全
体)の性能限界に着目した評価を行いたい場合、AP サーバのハードウェア性能をより高
めにする必要があるだろう。
ディスクに関して
また、計算機群に接続されるディスクに関してであるが、トランザクショナルなデー
タ(DB サーバにおけるログファイル、等)が保管されるディスクは、ミラーリング等の障
害対策がなされていることが望ましい。これは SPEC.org への測定結果の公開基準を満
たそうとする際に必須となることはもちろんであるが、実システムにおいても、重要な
データの保管場所は、何らかの形で障害対策が行われているのが一般的だからである。
また、特に高負荷が掛かると予想される、DB サーバのデータ・ログ等がおかれるディ
スクは、他のディスクに比して、より高速な読み書きが可能なものを採用する事が望ま
しい。
上記で述べて来た様に、どのような点に着目して性能・信頼性評価を行うかによって、
計算機の台数や、それぞれの計算機のハードウェア仕様は異なってくる点に、注意が必
要である。
2.1.2 ネットワーク機器の調達
計算機の調達とともに、計算機群を接続するネットワーク機器を調達する必要がある。
評価の際にネットワークをボトルネックとしない為には、高速な転送性能を持つ機器が
必要となるだろう。また、評価環境をどのようなネットワーク構成にするかによっても、
必要となるネットワーク機器は異なるだろう。
例えば全ての計算機群を同一のネットワーク上に接続する場合、一台のスイッチがあ
れば十分だろうが、評価環境を、複数の相互接続されたネットワーク群によって構成す
る場合、ネットワーク毎に転送並びに経路制御を行う機器が必要になる場合もあるだろ
う。
ネットワーク機器の台数としては、VLAN 機能を持つ一台の機器に集約しても構わな
いし、ネットワーク毎に異なる機器を割り当てても構わない。ネットワーク間の経路制
御に関しても、ネットワーク機器が経路制御を行っても構わないし、Web/AP サーバ等
の計算機が経路制御を行っても構わない。
また、高負荷が想定される様な実システムにおいては、クライアント(Driver)とサー
バとの間に、ハードウェアによる負荷分散装置をおく様な事もあるだろう。
− 2-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.2 ソフトウェアの調達
ハードウェアの調達に引き続いて、以下に示すソフトウェア群を調達する必要がある。
2.2.1 SPECjAppServer2004 の調達
SPEC.org から有償で購入する必要がある。以下の URL から購入手続きを行う事が可
能である。
http://www.spec.org/order.html
メディアの輸送方法によっても異なるが、多くの場合、購入手続き後数日から一週間
程度後に、SPECjAppServer2004 が納められた CD メディアが到着する。ソフトウェア
ダウンロードによる提供はなされていない。ソースコードの一般への公開もなされてい
ない。
一方、SPEC.org のメンバ企業の場合、無償で CD メディアを入手可能である。
2.2.2 Web サーバソフトウェアの調達
必要に応じて、Web サーバ機能を提供するソフトウェアを調達する。
より小規模な構成で評価を行いたい場合、AP サーバに含まれる Web サーバ機能をそ
のまま使用する方法もあるだろう。
2.2.3 AP サーバソフトウェアの調達
AP サーバ機能を提供するソフトウェアの調達は必須である。AP サーバソフトウェア
は、J2EE1.3 以降の仕様に対応していることが望ましい。SPEC.org への結果の公開を
前提とする場合、AP サーバソフトウェアは、Sun による J2EE ライセンスを取得して
いる必要がある。
また SPECjAppServer2004 は、以下の二つの Enterprise Application Archive から構
成される。
- SPECjAppServer.ear(AP サーバ上で稼働)
- emulator.ear(Emulator 上で稼働)
SPECjAppServer.ear および emulator.ear は、J2EE1.3(EJB2.0)以降の仕様に対応し
た J2EE(EJB)コンテナ上で稼働可能である。また、emulator.ear は、内部に以下の Web
アプリケーションのみを含むが、
− 2-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- emulator.war(Emulator 上で稼働)
emulator.war は、Servlet 2.1 以降の仕様に対応した Servlet コンテナ上で稼働可能で
ある。したがって、Emulator 上では J2EE(EJB)コンテナ或は Servlet コンテナの何れ
かを選択可能である。
2.2.4 JMS サーバソフトウェアの調達
必要に応じて、JMS サーバ機能を提供するソフトウェアを調達する。JMS サーバソ
フトウェアは、DB サーバとの連携の為、二相コミットに対応していることが望ましい。
より小規模な構成で評価を行いたい場合、AP サーバに含まれる JMS サーバ機能をその
まま使用する方法もあるだろう。
2.2.5 DB サーバソフトウェアの調達
RDBMS サーバ機能を提供するソフトウェアの調達は必須である。DB サーバソフト
ウェアは、JDBC 経由で Java プログラムから接続可能なことが必須である。また DB
サーバソフトウェアは、JMS サーバとの連携の為、二相コミットに対応している事が望
ましい。
2.2.6 Java プラットフォームソフトウェアの調達
Java プラットフォームソフトウェアの調達も必須である。対応バージョンとしては、
1.3 以降のものが必須(J2EE1.3 対応の為)である。
2.2.7 OS ソフトウェアの調達
OS の調達もまた必須である。OS は、上記のソフトウェア群(Web サーバ、AP サーバ、
DB サーバ等)が動作可能な環境を提供することが必須である。
2.2.8 その他のソフトウェア群の調達
その他、必要に応じて、ソフトウェア群を調達(開発)する。これには、例えば測定結果
を収集する様なツールや、測定手順を自動化するようなスクリプトなどが含まれるだろ
う。
− 2-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.3 OS のインストール・設定
調達した計算機に対して、OS をインストールし、以下に示す様な各種設定を行う。
- インストールパッケージの決定
- ファイルシステム配置の決定
- ホスト名の設定
- IP アドレスの設定
- 経路制御の設定
- ユーザアカウントの作成
- 時刻合わせに関する設定
- カーネルパラメータの設定
それぞれの詳細に関しては、オペレーティングシステム付属のマニュアル等を参照さ
れたい。
− 2-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.4 ネットワーク環境の構築
OS がインストールされた計算機群をネットワーク機器に接続し、計算機間が相互に通
信可能な事(ping が到達可能)を確認する。
また、計算機群がそれぞれ複数の異なるネットワーク群に接続される場合、それぞれ
の計算機が正しいネットワークに接続されているかどうかを(netstat –r, traceroute 等
を用いて)確認する。
また、それぞれの計算機群の時刻がきちんと同期しているかどうかを(ntpq, date 等を
用いて)確認する。
図 2.4-1 に最小構成時におけるネットワーク構成を示す。
Emulator
and
Driver
Web/AP/DB/JMS
Server
Network boundary
図 2.4-1 最小構成時におけるネットワーク構成
図 2.4-2 に高負荷を想定した場合のネットワーク構成を示す。
Emulator
AP Server
Web Server
or
Load Balancer
DB Server
Driver(Primary)
AP Server 2
JMS Server
Driver(Satellite)
AP Server 3
Network boundary
Network boundary
Network boundary
図 2.4-2 高負荷時を想定した場合のネットワーク構成
− 2-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.5 ソフトウェア群のインストール・設定
2.5.1 Java プラットフォームソフトウェアのインストール・設定
AP サーバ、JMS サーバ、Driver および Emulator の役割を持つ計算機上に、Java
プラットフォームソフトウェアをインストールする。
2.5.2 DB サーバソフトウェアのインストール・設定
DB サーバの役割を持つ計算機上に、DB サーバソフトウェアをインストールする。ま
た、JMS サーバがメッセージの保管に DB を必要とし、JMS サーバ上で併せて DB サ
ーバを稼働させる場合、
JMS サーバ上にも DB サーバソフトウェアをインストールする。
また、DB サーバに Java プログラムからアクセス可能とするための JDBC クラスラ
イブラリを AP サーバ、Driver および必要があれば JMS サーバ上の適切な場所に、そ
れぞれインストールする。
また DB サーバは、AP サーバおよび Driver からのネットワーク経由での接続を受付
可能なように設定を行う。
2.5.3 JMS サーバソフトウェアのインストール・設定
JMS サーバの役割を持つ計算機上に、JMS サーバソフトウェアをインストールする。
JMS サーバとの通信に必要な Java クラスライブラリを、必要に応じて AP サーバの適
切な場所にインストールする。
また JMS サーバは、AP サーバからのネットワーク経由での接続を受付可能な様に設
定を行う。また JMS サーバは、SPECjAppServer アプリケーションが内部で使用する、
以下のメッセージ・キューを保持可能な様に設定する
- FulfillOrderQueue(注文完了通知)
- LargeOrderQueue(大量注文通知)
- ReceiveQueue(部品納品通知)
- BuyerQueue(部品購入通知)
2.5.4 AP サーバソフトウェアのインストール・設定
AP サーバの役割を持つ計算機上に、AP サーバソフトウェア(J2EE/EJB コンテナ)を
インストールする。AP サーバは、Web サーバ(専用 Web サーバを持たない場合、Driver
から)および Emulator からの HTTP リクエストおよび、Driver からの RMI/IIOP リク
エストを受付可能な様に設定する。また AP サーバは、DB サーバおよび JMS サーバを
− 2-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
利用可能な様に、それぞれ設定する。
Emulator の役割を持つ計算機上に、AP サーバソフトウェア(Servlet コンテナ)をイン
ストールする。Emulator 用 AP サーバは、AP サーバからの HTTP リクエストを受付可
能なように設定する。
2.5.5 Web サーバソフトウェアのインストール・設定
Web サーバの役割を持つ計算機上に、必要に応じて Web サーバソフトウェアをイン
ストールする。Web サーバソフトウェアは、Driver からの HTTP リクエストを受け付
け、AP サーバへ適切に HTTP リクエストを転送するよう設定を行う。
2.5.6 SPECjAppServer2004 のインストール
Driver の役割を持つ計算機上に、SPECjAppServer2004 を CD メディアからインス
トールする。より詳細な設定については「2.7 アプリケーションのビルド・配備」で述
べる。
2.5.7 その他のソフトウェアのインストール・設定
各計算機上に、必要に応じてその他のソフトウェア群をインストールする。
− 2-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.6 データベースの初期化
DB サーバ上で稼働する DB サーバソフトウェアに関して、以下に示す様な設定を行
い、データベースを初期化する。
- データベース接続ユーザアカウントの作成
- 外部(AP サーバ、Driver)からの接続許可設定
- SPECjAppServer アプリケーションデータ格納用データベースの作成
また、JMS サーバが内部的に(上記 DB サーバとは異なる)DB サーバを利用する場合、
JMS 用 DB サーバ上で稼働する DB サーバソフトウェアに関しても、同様に以下に示す
様な設定を行う。
- データベース接続ユーザアカウントの作成
- 外部(JMS サーバ)からの接続許可設定
- JMS データ(Message, etc.)格納用データベースの作成
− 2-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.7 アプリケーションのビルド・配備
以下に示す手順で、アプリケーションのビルド並びに配備を行う。
2.7.1 ビルドファイルの作成・修正
SPECjAppServer2004
に 含 ま れ る
ant
用 の ビ ル ド フ ァ イ ル
($SPEC_HOME/build.xml)は、特定の環境に依存したものではない為、以下に示す様な
機能を、必要に応じてビルドファイルに追加する必要がある。
- コンテナ依存の EJB 配備記述子を、ejb-jar ファイルに含める機能
- コンテナ依存の Web アプリケーション配備記述子を、.war ファイルに含める機能
- コンテナ依存のアプリケーション配備記述子を、.ear ファイルに含める機能
環境依存のビルドファイルのファイル名は、例えば<環境名>-build.xml とするのが良
いだろう。
2.7.2 環境定義ファイルの作成・修正
SPECjAppserver2004 に含まれる、以下の環境依存ファイル群の作成・修正を行う。
2.7.2.1 $SPEC_HOME/bin/setenv.sh
本ファイルは、Driver に参照される。ファイル中の以下の値を、評価環境に応じて修
正する。それぞれの値の意味に関しては、ファイル中にコメントの形で示される。
JAVA_HOME
Java プラットフォームソフトウェアがインストールされているディレクトリを指定。
J2EE_HOME
J2EE アプリケーションサーバがインストールされているディレクトリを指定。
JAS_HOME
SPECjAppServer2004 がインストールされているディレクトリを指定。
APPSERVER
測定環境名を指定。
「2.7.2.2 $SPEC_HOME/config/appserver」と同じ値を指定する。
− 2-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.7.2.2 $SPEC_HOME/config/appserver
本ファイルは、Driver に参照される。ディフォルトの内容は”default”であるが、適切
な測定環境名に修正する。
2.7.2.3 $SPEC_HOME/config/<環境名>.env
本 フ ァ イ ル は 、 Driver お よ び ビ ル ド フ ァ イ ル に 参 照 さ れ る 。
$SPEC_HOME/config/default.env を 複 製 し 、 $SPEC_HOME/config/<測 定 環 境 名
>.env なるファイルを作成する。ここの環境名は$SPEC_HOME/config/appserver で
示した内容とする。最低限、ファイル中の以下の値を評価環境に応じて修正する。そ
れぞれの値の意味に関しては、ファイル中にコメントの形で示される。
JAS_HOME
SPECjAppServer2004 がインストールされているディレクトリを指定。
JAVA_HOME
Java プラットフォームソフトウェアがインストールされているディレクトリを指定。
J2EE_HOME
J2EE アプリケーションサーバがインストールされているディレクトリを指定。
CLASSPATH
Driver が稼働時に参照するクラスパスを指定。
JDBC_CLASSPATH
初期データ投入プログラムが参照する JDBC クラスライブラリ群を指定。
JAVAX_JAR
アプリケーションビルド時に参照する J2EE クラスライブラリ群を指定。
JAS_HOST
Web サーバのホスト名或は IP アドレスを指定。
JAS_PORT
Web サーバの TCP/IP ポート番号を指定。
− 2-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JAS_PREFIX
Web サーバの URL プリフェックスを指定。
EMULATOR_HOST
Emulator のホスト名或は IP アドレスを指定
EMULATOR_PORT
Emulator 上で稼働する Web サーバの TCP/IP ポート番号を指定。
EMLUATOR_PREFIX
Emulator 上で稼働する Web サーバの URL プレフィックスを指定。
NAMING_PROVIDER
Driver が JNDI 名前解決の際に参照する URL を指定
JNDI_CLASS
Driver が JNDI 名前解決の際に使用するクラス名を指定。
本 フ ァ イ ル 中 の JAS_HOST, JAS_PORT, JAS_PREFIX, EMULATOR_HOST,
EMULATOR_PORT, EMULATOR_PREFIX の何れかが変更された場合、アプリケー
ションの再ビルドが必要である。
2.7.2.4 $SPEC_HOME/config/run.properties
本ファイルは Driver に参照される。最低限、ファイル中の以下の値を、評価環境およ
び測定条件に応じて修正する。それぞれの値の意味に関しては、ファイル中にコメント
の形で示される。
Url
Driver が HTTP 経由で SPECjAppServer システム本体に負荷を掛ける際に使用する
URL を指定。
outDir
測定結果の出力ディレクトリを指定。
txRate
測定負荷の値を指定。
rampUp
本測定前のウォームアップ時間を指定(秒)
− 2-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
stdyState
本測定時間を指定(秒)
rampDown
本測定後のクールダウン時間を指定(秒)
2.7.2.5 $SPEC_HOME/config/xxxdb.properties
本ファイルは、初期データ投入プログラムに参照される。”xxx”は、”corp”, “mfg”, “ords”,
“supp”, “util”のそれぞれに対応する。最低限、ファイル中の以下の値を、評価環境に応
じて書き換える。それぞれの値の意味に関しては、ファイル中にコメントの形で示され
る。
dbUser
データベースに接続する際のユーザ名を指定。
dbPassword
データベースに接続する際のパスワードを指定。
dbURL
データベースに接続する際の JDBC URL を指定。
dbDriver
データベースに接続する際の JDBC Driver クラス名を指定。
jdbcVersion
データベースに接続する際の JDBC バージョンを指定。
2.7.3 コンテナ依存 EJB 配備記述子の作成
SPECjAppServer2004 アプリケーションは、複数の ejb-jar ファイルから構成される。
それぞれの ejb-jar 毎に、以下のコンテナ非依存の EJB 配備記述子群が提供される。
$SPEC_HOME/src/deploy/reference/corp.xml
企業ドメインの EJB 配備記述子
$SPEC_HOME/src/deploy/reference/mfg.xml
製造業ドメインの EJB 配備記述子
− 2-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$SPEC_HOME/src/deploy/reference/orders.xml
注文ドメインの EJB 配備記述子
$SPEC_HOME/src/deploy/reference/supplier.xml
サプライヤドメインの EJB 配備記述子
$SPEC_HOME/src/deploy/reference/util.xml
ユーティリティドメインの EJB 配備記述子
しかしながら、コンテナ依存の配備記述子は提供されない。
そこでそれぞれの ejb-jar 毎に、評価環境に依存した、コンテナ依存の配備記述子を作
成する必要がある。それぞれのコンテナ依存配備記述子においては、最低限、以下に示
す内容の設定が必要である。
- EJB 参照の JNDI マッピング
- リソース参照(DataSource, Message Queue, QueueConnectionFactory)の JNDI マ
ッピング
- CMP EntityBean における O/R マッピング、トランザクション分離レベルの設定
2.7.4 コンテナ依存 Web アプリケーション配備記述子の作成
SPECjAppServer2004 アプリケーションは、複数の Web アプリケーション(.war ファ
イル)から構成される。それぞれの.war 毎に、以下のコンテナ非依存の Web アプリケー
ション配備記述子が提供される。
$SPEC_HOME/src/deploy/reference/servlet.xml
対サプライヤ用 Web アプリケーション配備記述子
$SPEC_HOME/src/deploy/reference/web.xml
対ディーラー用 Web アプリケーション配備記述子
しかしながら、コンテナ依存の配備記述子は提供されない。
そこでそれぞれの.war 毎に、評価環境に依存した、コンテナ依存の Web アプリケー
ション配備記述子を作成する必要がある。それぞれのコンテナ依存配備記述子において
は、最低限、以下に示す内容の設定が必要である。
- EJB 参照の JNDI マッピング
また、Emulator アプリケーションは、一つの Web アプリケーション(.war ファイル)
− 2-16 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
から構成され、以下のコンテナ非依存の Web アプリケーション配備記述子が提供される。
$SPEC_HOME/src/deploy/reference/emulator-web.xml
サプライヤエミュレータ Web アプリケーション配備記述子
しかしながら、コンテナ依存の配備記述子は提供されない。そこで必要に応じて、コ
ンテナ依存の Web アプリケーション配備記述子を作成する。Emulator Web アプリケー
ションに関しては、SPECjAppServer 本体とは異なり、EJB 参照の JNDI マッピングな
どは不要である。従って、コンテナ依存の Web アプリケーション配備記述子の作成は不
要な場合がある。
2.7.5 コンテナ依存アプリケーション配備記述子の作成
SPECjAppServer2004 は、複数の J2EE アプリケーション(.ear ファイル)から構成さ
れる。それぞれのアプリケーション毎に、以下のコンテナ非依存の J2EE アプリケーシ
ョン配備記述子が提供される
$SPEC_HOME/src/deploy/reference/application.xml
SPECjAppServer.ear アプリケーション配備記述子
$SPEC_HOME/src/deploy/reference/emulator-app.xml
emulator.ear アプリケーション配備記述子
しかしながら、コンテナ依存の配備記述子は提供されない。
そこで、必要に応じて、それぞれの.ear 毎に、評価環境に依存した、コンテナ依存の
J2EE アプリケーション配備記述子を作成する。コンテナ依存 J2EE アプリケーション
配備記述子は、評価環境によっては不要な場合もある。
2.7.6 アプリケーションのビルド
上記のすべて(ビルドファイル、環境定義ファイル、コンテナ依存配備記述子の作成)
が完了する事で、アプリケーションのビルドが可能となる。SPECjAppServer2004 がイ
ンストールされたディレクトリ上で、以下を実行する事で、
$ cd $SPEC_HOME
$ ./ant/bin/ant -f <環境名>-build.xml clean all
アプリケーションのビルドが行われる。アプリケーションのビルドが正常終了した場
合、ビルドを実行した端末上には以下の内容が表示され、
− 2-17 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
BUILD SUCCESSFUL
Total time: XX minutes YY seconds
以下の場所にビルドされたアプリケーションファイルがおかれる。
- $SPEC_HOME/jars/SPECjAppServer.ear
- $SPEC_HOME/jars/emulator.ear
2.7.7 アプリケーションの配備
ビルドされたアプリケーションを、それぞれ以下の場所に配備する。
SPECjAppServer.ear
AP サーバ上の適切な場所に配備
emulator.ear
Emulator 上にインストールされた AP サーバ上の適切な場所に配備
或は Emulator に関しては、以下のビルドされた Web アプリケーションを配備しても
良い。
emulator.war
Emulator 上にインストールされた Servlet コンテナ上の適切な場所に配備
アプリケーションの動的な配備が可能な場合、上記アプリケーションの配備は、AP
サーバの起動後に行う事も可能である。
− 2-18 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.8 サーバプロセス群の起動
各ソフトウェア群に関する設定が完了した後に、サーバプロセス群を起動する事が可
能となる。サーバプロセス群を起動する場合、それぞれの役割間にある依存関係に注意
して、正しい順序でサーバプロセス群を起動する必要がある。以下の順序でサーバプロ
セス群を起動する。
1.
DB サーバ(AP 用)
2.
DB サーバ(JMS 用)
3.
JMS サーバ(JMS 用 DB サーバに依存)
4.
AP サーバ(JMS サーバおよび AP 用 DB サーバに依存)
5.
Web サーバ
6.
Emulator
− 2-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.9 データベースへの初期データの投入
AP 用 DB サーバが起動した状態において、データベースへの初期データの投入が可能
となる。データベースへの初期データの投入は、以下の三段階の手順で行う。
2.9.1 データベーススキーマの決定
SPECjAppServer には、データベーススキーマとして、以下が提供される。
$SPEC_HOME/schema/oracle/9i/∼
Oracle 9i 用スキーマ
$SPEC_HOME/schema/sybase/∼
Sybase 用スキーマ
$SPEC_HOME/schema/db2/∼
DB/2 用スキーマ
$SPEC_HOME/schema/sql/∼.sql
標準 SQL スキーマ
評価環境に応じて、上記スキーマの何れかを利用して、評価環境用データベーススキ
ーマを作成する。上記スキーマに対して、以下の様な修正が可能である。
- 検索最適化の為の索引の追加
- 楽観的ロックの為の列の追加
しかしながら、以下の様な修正は、許されていない。
- 表の名称変更、列の名称変更
2.9.2 データベース上への表および索引の作成
上記で決定したデータベーススキーマに基づいて、データベース上に表および索引を
作成する。表および索引の作成方法は、データベース実装によってそれぞれ異なるが、
概ねバッチ的にスキーマファイルに含まれる表および索引の作成 SQL 文を実行可能な
ツールが提供されているだろう。
2.9.3 初期データ投入プログラムの実行
表および索引の作成後に、初期データ投入プログラムの実行が可能となる。初期デー
− 2-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
タを投入する際には、全ての表の内容が空でなければいけない点に、注意が必要である。
SPECjAppServer がインストールされたディレクトリ上で、以下の手順で初期データ
投入プログラムを実行する。
$ cd $SPEC_HOME
$ ./ant/bin/ant -f <環境名>-build.xml loaddb -DSCALE=<DB Load Injection Rate>
初期データ投入プログラムが正常終了した場合、以下のような表示がプログラムを起
動した端末上に表示される。
(・・・中略・・・)
loaddb:
[java] INFO : IR supplied : AA
[java] INFO : stepped IR
: BB
[java] STARTING loading of tables in the Corp domain...
(・・・中略・・・)
BUILD SUCCESSFUL
Total time: XX minutes YY seconds
初めてのプログラムの実行後には、対話的なデータベースアクセスプログラム等を用
いて、データがきちんと格納されているか否かをチェックすることが望ましい。
また、初期データ投入プログラムの正常終了後、データベースの統計情報の解析や、
索引の再作成を行う事が効果的な場合がある。
また、初期データ投入プログラムが、何らかの原因で異常終了した場合、全ての表の
内容を空にし、異常終了の原因となった問題を解決した上で、プログラムを再実行する。
ここで Injection Rate は、作成するデータベースの規模を表す数値であり、1 以上の
数値を指定する。この Injection Rate と、ベンチマーク測定実施時に指定する txRate
は密接な関係を持つ。
また、データベース実装が、データベース全体のダンプ機能を提供する場合、初期デ
ータ投入プログラムの実行後にダンプを保持しておく事で、同一 Injection Rate におけ
る再測定を繰り返す様な場合、時間の節約が可能だろう。
− 2-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.10 アプリケーションの動作確認
上記の手順全ての実行に初めて成功した場合、SPECjAppServer アプリケーションが
正しく動作するか否かを、Web ブラウザ経由でチェックしておく事が望ましい。Web ブ
ラウザから以下の URL にアクセスする事で(JAS_HOST, JAS_PORT, JAS_PREFIX は、
$SPEC_HOME/config/<環境名>.env で定義した値)、
http://${JAS_HOST}:${JAS_PORT}${JAS_PREFIX}SPECjAppServer/
Web ブラウザ上に SPECjAppServer アプリケーションの画面が表示される(図 2.10-1)。
図 2.10-1 SPECjAppServer2004 ログイン画面
上記画面からさらに「Go Trade Autos!」や「Go Build Cards!」を選択する事で、デ
ィーラー或は製造者として様々な操作を行う事が可能である。
− 2-22 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.11 ベンチマーク測定の実施
全てのサーバプロセス群の起動が完了し、初期データの投入完了後に、ベンチマーク
測定の実施が可能となる。以下の手順でベンチマーク測定を行う。
2.11.1 測定条件パラメータの設定
SPECjAppServer2004
イ ン ス ト ー ル デ ィ レ ク ト リ 上 の 、
$SPEC_HOME/config/run.properties に測定条件を記述する。最低限、以下のパラメー
タを設定する必要がある。
2.11.1.1 txRate(IR)
AP サーバに与える負荷を示す値。先のデータベースへの初期データ投入時に与えた
DB Load Injection Rate(LIR)値から導きだされる。DB Load Injection Rate(LIR)と
txRate(IR)の関係は、表 2.11-1 に示す通りである。
表 2.11-1 LIR と txRate の関係
txRate(IR)
Step
LIR
1∼10
1
1,2,3,…,10
11∼100
10
20,30,40,..,100
101∼1000
100
200,300,400,…,1000
上記の表で分かる通り、LIR 値は 10 以下では 1 刻みで、100 以下では 10 刻みで、1000
以下では 100 刻みで与える必要があるが、txRate は常に 1 刻みで指定可能である。
2.11.1.2 rampUp
負荷を掛け始めてから測定開始までのウォームアップ時間(秒)。SPEC.org への公開基
準を満たそうとする場合、最低で 600 秒の指定が必要である。
2.11.1.3 stdyState
− 2-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
本測定時間(秒)。SPEC.org への公開基準は、最低で 3600 秒である。トランザクショ
ン処理性能値や、応答時間等に関する測定は、本測定時間内にのみ行われ、ウォームア
ップ時間およびクールダウン時間内には行われない。
2.11.1.4 rampDown
測定後のクールダウン時間(秒)。SPEC.org への公開基準は、最低で 300 秒である。
2.11.1.5 triggerTime
Driver のスレッド群の起動待ち時間(秒)。Driver が複数のスレッド群から負荷を掛け
るが、全てのスレッドが起動するまでにはある程度の時間を要する。ディフォルトでこ
の値は 30(秒)であるが、ある程度以上の高負荷な条件で測定を行う場合、この値の増加
が必要である。
2.11.2 負荷測定プログラムの実行
SPECjAppServer2004 に含まれるベンチマーク測定プログラムは、トランザクション
処理性能や、トランザクション応答時間等の結果を得る事が可能であるが、個々の計算
機の負荷状況(CPU/Memory/Disk/Network)を測定する機能は提供していない。
本評価においては、各計算機の負荷状況も併せて測定する事で、より確かな性能・信
頼性評価を得る事が可能となると考える。そこでベンチマーク測定プログラムの実行前
に、負荷測定プログラムの実行を開始しておき、ベンチマーク実行時における負荷状況
を、併せて記録する。
負荷測定プログラムは、一般的な UNIX 系の OS では、sar コマンド等がそれにあた
るだろう。負荷測定は、最低限、ベンチマーク測定における本測定時間(stdyState 時間)
中における状況を記録しておくべきだろう。
2.11.3 ベンチマーク測定プログラムの実行
測定条件パラメータを設定し、負荷測定の準備が整った時点で、ベンチマーク測定プ
ログラムを開始可能となる。SPECjAppServer2004 がインストールされたディレクトリ
上で、以下を実行する事で、ベンチマーク測定を開始する。
$ cd $SPEC_HOME
$ ./bin/driver.sh
上記コマンドの入力後、端末上に以下の様な表示が出力されれば、ベンチマーク測定
− 2-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
は正常に開始されたことを示す。ベンチマークを測定途中で中止したい場合、端末上で
CTRL-C を入力する事で、ベンチマークプログラムは終了する。
Apps server is XXX
Driver Host: XXXXXX
Binding controller to //XXXXXX/Controller
DriverDebug: DealerAgent <propsFile> <agentName> <masterMachine>
Controller: Registering O1 on machine AAA.BBB.CCC.DDD
Controller: Registering M1 on machine AAA.BBB.CCC.DDD
Controller: Registering L1 on machine AAA.BBB.CCC.DDD
Calling switchLog as master
RunID for this run is : YYY
Output directory for this run is : XXXXX/YYY
TTF1 = 93
ttf = 93
Configuring 1 DealerAgent(s)...
DealerAgent O1, Thread 0 started
(・・・中略・・・)
Configuring 1 MfgAgent(s)...
MfgAgent M1, Thread 0 started
(・・・中略・・・)
Configuring 1 LargeOLAgent(s)...
sleeptime is 28438 note this is time in excess needed for trigger
MfgAgent L1, Thread 0 started
Starting O1:0: at 31895
EndRampUp is at 91895
(・・・中略・・・)
ベ ン チ マ ー ク 測 定 プ ロ グ ラ ム の 開 始 後 、 概 ね
triggerTime+rampUp+stdyTime+rampDown で指定した時間後に、端末上に以下の様
な表示が出力されれば、ベンチマーク測定は正常に終了した事を示す。
Gathering DealerStats ...
Gathering MfgStats ...
summary file is XXXXXXX/YYY/SPECjAppServer.summary
Calling getLog as master
− 2-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.12 ベンチマーク測定結果の評価
ベンチマーク測定プログラムの終了後、ベンチマーク測定開始時に以下の様に表示さ
れたディレクトリ内に、測定結果ファイル群が出力される。
Output directory for this run is : XXXXX/YYY
測定結果ファイル群は、以下の様な構成となっている。すべてテキストファイル形式
のファイルである。ベンチマーク測定を途中で停止したか、異常終了した場合、下記の
全てのファイルが出力されない場合がある。
Atomicity.html
Atomicity Test One∼Three の実行結果がおさめられる。Atomicity Test にパスしな
かった場合、トランザクション処理が atomic に行われていないと考えられる。
Audit.report
トランザクション整合性や、キャッシュ整合性などのチェック結果がおさめられる。
すべての整合性チェックにパスしなかった場合、何らかの原因で処理の整合性が失われ
ていると考えられる。
Dealer.detail
Dealer における Purchase, Manage, Browse 各処理のスループットおよび応答時間に
関する詳細がおさめられる。
Dealer.summary
Dealer における Purchase, Manage, Browse 各処理の結果サマリがおさめられる。こ
のファイルには、各処理の割合、平均応答時間、最大応答時間、90%応答時間等の情報
が得られる。
Mfg.detail
Manufacturing 処理におけるスループットおよび応答時間に関する詳細がおさめられ
る。
Mfg.summary
Manufacturing 処理における結果サマリがおさめられる。このファイルには、平均応
答時間、最大応答時間、90%応答時間等の情報が得られる。
SPECjAppServer.summary
− 2-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
SPECjAppServer2004 全体の結果サマリがおさめられる。このファイルには、総合的
な指標である JOPS 値等の情報が得られる。
dealer.err
Dealer 処理の実行時に何らかのエラーが発生した場合、このファイルにエラー情報が
おさめられる。
delivery.err
Delivery 処理の実行時に何らかのエラーが発生した場合、このファイルにエラー情報
がおさめられる。
emulator.err
Emulator 処理の実行時に何らかのエラーが発生した場合、このファイルにエラー情
報がおさめられる。
loline.err
LargeOrderLine 処理の実行時に何らかのエラーが発生した場合、このファイルにエ
ラー情報がおさめられる。
plannedlines.err
PlannedLines 処理の実行時に何らかのエラーが発生した場合、このファイルにエラー
情報がおさめられる。
result.props
各処理の平均応答時間等の情報や、ベンチマーク測定条件(Injection Rate 等)に関する
情報がおさめられる。
2.12.1 まとめ
上記測定結果ファイルおよび、別途測定した負荷測定プログラムの実行結果を元に、
総合的な性能・信頼性評価を行うこととなる。評価においては、一般的には、与えられ
た幾つかの負荷(Injection Rate)パターンと、それぞれの負荷パターンにおける処理の応
答時間やスループット等の関係や、それぞれの計算機における負荷状況
(CPU/Memory/Disk/Network)との関係などを考察する必要があるだろう。
SPEC.org への公開を前提とする場合、ベンチマーク測定プログラムが実行する全て
のテストにパスしなければならない。また、エラー出力ファイルには、アプリケーショ
ンエラー以外のエラーが発生していてはならない点に注意が必要である。ここで言うア
プリケーションエラーとは、以下に示す様に Application error と明示されているものを
さす。
− 2-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
O1:86: Application error for 67699error is
org.spec.jappserver.driver.http.SJASHttpAppException:
Error vehicle already sold 707
org.spec.jappserver.driver.http.SJASHttpAppException
しかしながら、特に高負荷時においては、当然処理の平均応答時間等に関しては、要
求時間を満たさない結果となる事があるだろう。また、低負荷時には起きなかった、様々
なエラーが高負荷時には発生することが多いかと思われる。
どこまでエラーおよびテストの失敗を許容するかに関してだが、少なくとも、
Atomicity.html における atomicity テストと、Audit.report におけるトランザクション
整合性テスト等に関しては、高負荷時においてもテストをパスしている事が望ましいと
考える。これらのテストをパスしていないと言う事は、システムにおける整合性保持の
観点から見れば、重大な欠陥であると考えられる。また、エラー情報に関しても、アプ
リケーションエラー以外のエラーが発生している場合、システムが正常に作動している
とは言えないだろう。
一方、平均応答時間や 90%応答時間等に関しては、高負荷時には要求時間を満たせな
いだろうが、あまりにも遅い(数十秒以上)応答時間も、実システムを想定した場合、問題
となるだろう。
幾つかの負荷パターンで測定を行う事により、対象となる評価環境における以下に示
す性能限界指標を見極める事が可能だろう。
Green(安全)
全てのテストをパス。応答時間も要求を満たす状況。
Yellow(危険)
応答時間に関する要求は満たさないが、それ以外のテストはパス。
Red(異常)
応答時間以外のテストも失敗。エラーも発生。
− 2-28 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.13 サーバプロセス群の停止
ベンチマーク測定プログラムの終了後に、サーバプロセス群を停止する事が可能とな
る。サーバプロセス群を停止する場合、それぞれの役割間にある依存関係に注意して、
正しい順序でサーバプロセス群を停止する必要がある。サーバプロセス群の起動とは逆
の、以下の順序でサーバプロセス群を停止する。
1.
Emulator
2.
Web サーバ
3.
AP サーバ(JMS サーバおよび AP 用 DB サーバに依存)
4.
JMS サーバ(JMS 用 DB サーバに依存)
5.
DB サーバ(JMS 用)
6.
DB サーバ(AP 用)
− 2-29 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
2.14 チューニングの実施
ベンチマーク測定結果の評価に基づき、チューニングを行い、再測定を行い、以前の
結果と比較評価を行うサイクルが実行されるべきだろう。チューニング対象は、一般的
に、以下の様なものが挙げられるだろう。
2.14.1 OS のチューニング
以下に示す要素に関するチューニングが有効な場合があるだろう。
カーネルパラメータのチューニング
共有メモリ、ネットワークドライバ回り、最大オープンファイル数等に関するチュー
ニングが性能向上につながる場合があるだろう。
2.14.2 DB のチューニング
以下に示す要素に関するチューニングが有効な場合があるだろう。
データベースパラメータのチューニング
最大同時接続数、内部バッファ容量等に関するチューニングが性能向上につながる場
合があるだろう。
データベーススキーマのチューニング
索引の追加や、適切な表領域の割り当て等が、性能向上につながる場合があるだろう。
2.14.3 JavaVM のチューニング
以下に示す要素に関するチューニングが有効な場合があるだろう。
JavaVM 起動パラメータのチューニング
適切なヒープサイズ指定や、ガベージコレクションアルゴリズム指定が、性能向上に
つながる場合があるだろう。
2.14.4 AP サーバのチューニング
以下に示す要素に関するチューニングが有効な場合があるだろう。
− 2-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
スレッド・プーリング・キャッシュ等のチューニング
同時実行スレッド数、Bean やデータベース接続のプーリングサイズ、キャッシュサイ
ズ等に関するチューニングが、性能向上につながる場合があるだろう。
CMP EntityBean の設定のチューニング
適切なトランザクション分離(ロック)レベル指定や、キャッシュサイズ等に関するチュ
ーニングが、性能向上につながる場合があるだろう。
2.14.5 Web サーバのチューニング
以下に示す要素に関するチューニングが有効な場合があるだろう。
Web サーバパラメータのチューニング
最大同時接続数等に関するチューニングが、性能向上につながる場合があるだろう。
− 2-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3 カーネルバージョン間比較
3.1 目的および概要
本評価における目的の一つは、Linux(OS 層)、PostgreSQL(DB 層)、JBoss(AP 層)、
Apache httpd(Web 層 ) と 言 う 、 代 表 的 な OSS 群 で 構 築 さ れ た 評 価 環 境 上 で 、
SPECjAppServer2004 アプリケーションを稼働させる手順を確立することである。本評
価の実施時点においては、SPEC.org Web サイト上においては、商用ソフトウェア群を
用いて測定を行った結果のみが公開されており、DB 層および AP 層において、OSS を
採用した測定結果は公開されていない。また、SPECjAppServer2004, JBoss 4.0.0,
PostgreSQL 7.4 の組み合わせにおける評価手順も、本評価の実施時点においては、一般
に公開されていない。従って、本評価手順の全部或は一部を再利用する事で、利用者は、
OSS による性能・信頼性評価環境を、より容易に構築する事が可能となる。
そしてさらなる目的としては、確立した手順を用いて、同一ハードウェア上で Linux
カーネル 2.4 およびカーネル 2.6 それぞれを採用した Linux ディストリビューション上
で測定を行い、それぞれのカーネルの、特に高負荷時における性能・信頼性を比較・検
証する。本評価の実施時点においては、商用 Linux ディストリビューションは、カーネ
ル 2.4 が主流であったが、今後はカーネル 2.6 へと比重が移る事が想定される。本評価
において、カーネル 2.6 の性能・信頼性等に関する知見が担保される事によって、今後
のカーネル 2.6 システム構築・移行の際の情報源となる事が期待される。
また本評価においては、二つの異なるハードウェア環境上で、同一の手順を用いて性
能・信頼性評価を行う。これによって、評価手順の汎用性(異なるハードウェア環境それ
ぞれに適用可能)を検証し、さらにハードウェア環境毎の性能限界の違いに関しても評価
を行う。
− 3-1 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.2 環境定義
3.2.1 ハードウェアおよびネットワーク構成
本評価においては、以下に示す二種類の環境上で評価を行った。以降、それぞれの環
境を「環境 A」および「環境 B」と呼ぶ。
3.2.1.1 環境 A のハードウェアおよびネットワーク構成
環境 A においては、計算機の役割毎の負荷を鑑み、表 3.2-1 から表 3.2-3 に示す構成(合
計 5 台)を採用した。
表 3.2-1 Driver/Emulator 構成(それぞれ 1 台ずつ)
分類
内容
Type
DELL PowerEdge 750
CPU/Memory
1x3.2GHz Pentium 4, 1GB Memory
Disk
1x120GB HDD(Serial ATA, non-mirroring)
Network
onboard dual Gigabit Ethernet(Intel)
Hostname
ossld, ossem
IP Address
192.168.102.11, 192.168.102.12
表 3.2-2 Web/JMS サーバ、AP サーバ構成(それぞれ 1 台ずつ)
分類
内容
Type
IBM BladeCenter HS20
CPU/Memory
2x2.8GHz Xeon, 2.5GB Memory
Disk
2x36GB HDD(SCSI, mirroring)
Network
onboard dual Gigabit Ethernet(Intel)
Hostname
osswj, ossas1
IP Address
192.168.102.15/192.168.101.15, 192.168.101.11/192.168.104.11
− 3-2 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 3.2-3 DB サーバ構成(1 台)
分類
内容
Type
DELL PowerEdge 1850
CPU/Memory
2x2.8GHz Xeon, 3GB Memory
Disk
2x73GB HDD(SCSI, mirroring)
Network
onboard dual Gigabit Ethernet(Intel)
Hostname
Ossds
IP Address
192.168.104.15
上記計算機群を、IBM BladeCenter Gigabit Ethernet Switch Module に接続し、
Gigabit Switch の VLAN 機能を使用し、図 3.2-1 に示すネットワークに分割した。osswj
および ossas1 は、隣接するネットワーク間の経路制御を行う。
12
Emulator
ossem
15
Web/JMS Server
osswj
11
Driver
ossld
192.168.102.x
15
11
11
AP Server
ossas1
192.168.101.x
15
DB Server
ossds
192.168.104.x
図 3.2-1 環境 A のネットワーク構成
3.2.1.2 環境 B のハードウェアおよびネットワーク構成
環境 B においては、表 3.2-4 から表 3.2-6 に示す 4 台の構成を採用した。
表 3.2-4 Driver/Emulator(兼用)構成(1 台)
分類
内容
Type
DELL PowerEdge 2500
CPU/Memory
1x1.0GHz Pentium III, 1GB Memory
Disk
1x36GB HDD(SCSI, non-mirroring)
Network
1xGigabit Ethernet(Intel)
Hostname
DrvEmu
IP Address
192.168.100.1
− 3-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 3.2-5 Web/JMS サーバ構成(1 台)
分類
内容
Type
DELL PowerEdge 1500SC
CPU/Memory
1x1.4GHz Pentium III, 1GB Memory
Disk
2x36GB HDD(SCSI, mirroring)
Network
1xGigabit Ethernet(Intel)
Hostname
WebJms
IP Address
192.168.100.2/192.168.101.3
表 3.2-6 AP サーバ、DB サーバ構成(それぞれ 1 台ずつ)
分類
内容
Type
HP ProLiant DL380
CPU/Memory
1x2.8GHz Xeon, 2GB Memory
Disk
2x73GB HDD(SCSI, mirroring)
Network
2xGigabit Ethernet(Intel)
Hostname
AppSrv、DBSrv
IP Address
192.168.101.4/192.168.102.5,192.168.102.6
上記計算機群を、Gigabit Ethernet Switch に接続し、図 3.2-2 に示すネットワークに
分散配置した。
又、WebJms および AppSrv は、隣接するネットワーク間のルーティ
ングを行う設定とした。
Driver/Emulator
DrvEmu
1
2
Web/JMS Server
WebJms
192.168.100.x
3
4
AP Server
AppSrv
192.168.101.x
5
6
DB Server
DBSrv
192.168.102.x
図 3.2-2 環境 B のネットワーク構成
また、本評価においては、環境 A および環境 B 共に、ハードウェア負荷分散装置等は
使用しないこととした。
3.2.2 ソフトウェア構成
− 3-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 3.2.7 から表 3.2.11 に、本評価にて使用したソフトウェア郡を、計算機種別毎に示
す。
表 3.2-7 Driver ソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1(環境 A)
Red Hat Enterprise Linux AS 3.0(環境 B)
OS
Miracle Linux 3.0(環境 B)
SUSE LINUX Enterprise Server 9(環境 A/B)
JDK
j2sdk-1.4.2_04
アプリケーション
SPECjAppServer2004
表 3.2-8 Emulator ソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1(環境 A)
Red Hat Enterprise Linux AS 3.0(環境 B)
OS
Miracle Linux 3.0(環境 B)
SUSE LINUX Enterprise Server 9(環境 A/B)
JDK
j2sdk-1.4.2_04
AP サーバ
JBoss-4.0.0
表 3.2-9 Web/JMS サーバソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1(環境 A)
Red Hat Enterprise Linux AS 3.0(環境 B)
OS
Miracle Linux 3.0(環境 B)
SUSE LINUX Enterprise Server 9(環境 A/B)
JDK
J2sdk-1.4.2_04
Web サーバ
Apache-2.0.46
Web-AP コネクタ
mod_jk2.0.4
JMS サーバ
JBoss-4.0.0
JMS ストア
Postgresql-7.4.6
− 3-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 3.2-10 DB サーバソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1(環境 A)
Red Hat Enterprise Linux AS 3.0(環境 B)
OS
Miracle Linux 3.0(環境 B)
SUSE LINUX Enterprise Server 9(環境 A/B)
DB サーバ
Postgresql-7.4.6
表 3.2-11 AP サーバソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1(環境 A)
OS
Red Hat Enterprise Linux AS 3.0(環境 B)
Miracle Linux 3.0(環境 B)
SUSE LINUX Enterprise Server 9(環境 A/B)
JDK
j2sdk-1.4.2_04
AP サーバ
JBoss-4.0.0
3.2.2.1 Web サーバソフトウェア
本評価において、Web サーバとして Apache httpd 2.0 および Jakarta mod_jk2 を採
用した。またこれらのソフトウェアは、原則として OS ディストリビューションに含ま
れているのであれば、それを採用する。もしも OS ディストリビューションに含まれて
いないのであれば、表 3.2-12 に示す URL からソースコードをダウンロードする。
表 3.2-12 Web サーバソフトウェアの入手先
URL
ソフトウェア
http://www.apache.org/
Apache httpd 2.0.x
http://jakarta.apache.org/site/sourceindex.cgi
Jakarta mod_jk2
mod_jk2 は、Web サーバと AP サーバ間の接続の為に必要となる。本評価の実施時点
において、mod_jk2 はメンテナンスが凍結され、mod_jk の開発が再開されたが、本評
価においては、評価実施時点において最も一般的に採用されていると思われる mod_jk2
を採用した。
− 3-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.2.2.2 AP サーバソフトウェア
本評価において、AP サーバソフトウェアとして JBoss 4.0.0 を採用した。JBoss 4.0.0
は、J2EE1.4 仕様に対応し、Sun による J2EE ライセンス認定を受けた AP サーバソフ
トウェアである。JBoss 4.0.0 は、以下の URL からソースコードおよびバイナリをダウ
ンロード可能である。
http://www.jboss.org/
3.2.2.3 JMS サーバソフトウェア
本評価において、JMS サーバソフトウェアとして、JBoss 4.0.0 に含まれる JBoss MQ
を採用した。
3.2.2.4 DB サーバソフトウェア
本評価において、DB サーバソフトウェアとして、PostgreSQL 7.4.6 を採用した。
PostgreSQL は、OS ディストリビューションに含まれるものを使用することも可能であ
るが、本評価では、複数のディストリビューションにおけるバージョンの違いを避ける
為、ソースコードからビルドを行う。以下の URL からソースコードをダウンロード可
能である。
http://www.postgresql.org
3.2.2.5 Java プラットフォームソフトウェア
本評価において、Sun が配布する Java 2 SDK, Standard Edition Version 1.4.2_04 を
採用した。バージョン 1.4.2_04 は、評価の実施時点における最新版(1.4.2_06)ではない
が、バージョン 1.4.2_05 以降には以下に URL に示す問題が発生した為、より古い
1.4.2_04 を採用した。
http://forum.java.sun.com/thread.jspa?threadID=563298&messageID=2773331
Sun が配布する Java プラットフォームソフトウェアは、以下の URL からダウンロー
ド可能である。
http://java.sun.com/j2se/1.4.2/download.html
− 3-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.2.2.6 OS ソフトウェア
本評価において、表 3.2-13 の Linux ディストリビューションを OS ソフトウェアとし
て採用した。
表 3.2-13 OS ソフトウェア構成
OS 種別
環境種別
Red Hat Enterprise Linux AS 2.1(2.4.9)
環境 A
Red Hat Enterprise Linux AS 3.0(2.4.21)
環境 B
Miracle Linux 3.0(2.4.21)
環境 B
SUSE LINUX Enterprise Server 9(2.6.5)
環境 A,環境 B
また本評価において、複数の計算機群から構成される評価環境の構築において、すべ
ての計算機の Linux ディストリビューションを統一し、複数の異なるディストリビュー
ションの混在は、行わない事とした。
それぞれの Linux ディストリビューションは、表 3.2-14 に示す URL から有償で入手
する事が可能である。
表 3.2-14 OS 入手先
URL
入手可能 OS
http://www.redhat.co.jp/
Red Hat Enterprise Linux AS
http://www.novell.co.jp/
SUSE LINUX Enterprise Server
http://www.miraclelinux.com/
Miracle Linux
3.2.2.7 その他のソフトウェア
本評価において、CPU/Memory/Disk/Network の負荷状況を測定する為に、sysstat
に含まれる sar コマンド等を用いているが、一部のディストリビューションにおいて、
正常に値が取得できない不具合が確認された為、sysstat に関しては、最新安定版のソー
スコードからビルドを行った。sysstat のソースコードは、以下の URL からダウンロー
ド可能である。
http://perso.wanadoo.fr/sebastien.godard/
− 3-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.2.3 OS のインストール・設定
「2.3 OS のインストール・設定」の手順に従う。
OS のインストールに先立ち、DB サーバ、AP サーバ、Web/JMS サーバに関しては、
内蔵する 2 台のディスクをハードウェア・ミラーリングする設定を行う。これらの計算
機には、トランザクションログ等の、実システムとしての稼働を想定した場合に重要な
ファイル群が置かれる為である。
続いて各々の Linux ディストリビューション CD を用い OS のインストールを行う。
OS のインストール後、必要に応じてネットワーク経由で OS のアップデートを行う。
ホスト名・IP アドレスは「3.2.1 ハードウェアおよびネットワーク構成」に示した通
りとする。
ファイルシステムは、全ディストリビューションが共通して対応している ext3 を採用
する。ファイルシステムは、Linux で一般的な/boot および/(root)の 2 パーティション構
成とする。ただし DB サーバのみ、データベース格納用の専用パーティション(/data)を
設ける。データベース格納用の専用ディスクを調達可能な場合は、専用ディスク上にパ
ーティションを設ければ良いだろう。
カーネルパラメータに関しては、DB サーバにおいて、以下の共有メモリに関する設
定を行う(値は設定例)
/proc/sys/kernel/shmmax = 2147483648
3.2.4 ネットワーク環境の構築
「2.4 ネットワーク環境の構築」の手順に従う。
ネットワーク構成は、「3.2.1 ハードウェアおよびネットワーク構成」の図 3.2-1 で示
した通りとする。
Web/JMS サーバおよび AP サーバは、隣接するネットワーク間のルータとして機能す
るよう設定を行う。
3.2.5 ソフトウェア群のインストール・設定
3.2.5.1 付録ファイルの一覧
図 3.2-3 に、本章の付録ファイルの一覧を示す。
single/ap/
AP サーバ用付録ファイル群
bin/run.conf
− 3-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
server/default/conf/jk2.properties
server/default/deploy/jbossweb-tomcat50.sar/server.xml
single/driver/
Driver 用付録ファイル群
bin/driver.sh
bin/setenv.sh
config/appserver
config/db.properties.tmpl
config/ear-deployer.xml.tmpl
config/jboss.env
config/jms-ds.xml.tmpl
config/jmsdb-ds.xml.tmpl
config/login-config.xml.tmpl
config/postgres-jdbc-state-service.xml.tmpl
config/postgres-jdbc2-service.xml.tmpl
config/run.properties
config/spec-ds.xml.tmpl
config/workers2.properties.tmpl
jboss-build.xml
schema/sql/schema_I.sql
src/deploy/jboss/application.xml
src/deploy/jboss/corp.jboss.cmp.xml
src/deploy/jboss/corp.jboss.xml
src/deploy/jboss/corp.xml
src/deploy/jboss/emulator-app.xml
src/deploy/jboss/emulator-web.xml
src/deploy/jboss/mfg.jboss.cmp.xml
src/deploy/jboss/mfg.jboss.xml
src/deploy/jboss/mfg.xml
src/deploy/jboss/orders.jboss.cmp.xml
src/deploy/jboss/orders.jboss.xml
src/deploy/jboss/orders.xml
src/deploy/jboss/servlet.jboss.xml
src/deploy/jboss/servlet.xml
src/deploy/jboss/supplier.jboss.cmp.xml
src/deploy/jboss/supplier.jboss.xml
src/deploy/jboss/supplier.xml
src/deploy/jboss/util.jboss.cmp.xml
src/deploy/jboss/util.jboss.xml
src/deploy/jboss/util.xml
src/deploy/jboss/web.jboss.xml
− 3-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
src/deploy/jboss/web.xml
single/emulator/
Emulator 用付録ファイル群
bin/run.conf
server/default/conf/jboss-service.xml
single/jms/
JMS サーバ用付録ファイル群
bin/run.conf
server/default/deploy/jms/jbossmq-destinations-service.xml
図 3.2-3 付録ファイル一覧
3.2.5.2 Java プラットフォームソフトウェアのインストール・設定
DB サーバ以外のすべての計算機上に Java 2 SDK, Standard Edition v1.4.2_04 をイ
ンストールする。インストールディレクトリは以下の場所とする。
JAVA_HOME=/usr/local/j2sdk1.4.2_04
3.2.5.3 DB サーバソフトウェアのインストール・設定
DB サーバ、Web/JMS サーバ上に、PostgreSQL 7.4.6 をインストールする。Web/JMS
サーバ上にインストールするのは、JMS サーバのデータ格納用の為である。PostgreSQL
はソースコードからコンパイルを行い、Web/JMS サーバ上においては JDBC ライブラ
リも併せてビルドする。インストールディレクトリは以下の場所とする。
PGHOME=/usr/local/pgsql
3.2.5.4 JMS サーバソフトウェアのインストール・設定
Web/JMS サーバに、JBoss 4.0.0 をインストールする。インストール場所は以下のデ
ィレクトリとする。
JBOSS_HOME=/usr/local/jboss-4.0.0
インストール後、以下のファイル群を追加・修正・削除する。
$JBOSS_HOME/bin/run.conf(修正)
− 3-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JVM ヒープサイズの設定。3 章付録ファイルの以下を参照。
- single/jms/bin/run.conf
$JBOSS_HOME/server/default/conf/login-config.xml(修正)
ファイル内の dsJndiName 値の修正。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/jmsdb-ds.xml(追加)
メッセージ格納用 DataSource 設定。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/jms/hsqldb-jdbc-state-service.xml(削除)
$JBOSS_HOME/server/default/deploy/jms/hsqldb-jdbc2-service.xml(削除)
メッセージ保管場所をディフォルトの HSQLDB から PostgreSQL に変更するため、
不要。
$JBOSS_HOME/server/default/deploy/jms/jbossmq-destinations-service.xml(修正)
SPECjAppServer2004 が使用する Queue の設定。3 章付録ファイルの以下を参照。
- single/jms/server/default/deploy/jms/jbossmq-destinations-service.xml
$JBOSS_HOME/server/default/deploy/jms/postgres-jdbc-state-service.xml(追加)
$JBOSS_HOME/server/default/deploy/jms/postgres-jdbc2-service.xml(追加)
メッセージ格納 DB に関する設定。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/lib/postgresql.jar(追加)
PostgreSQL JDBC ライブラリ。
「3.2.5.3 DB サーバソフトウェアのインストール・設定」でビルドしたライブラリを
複製。
3.2.5.5 AP サーバソフトウェアのインストール・設定
AP サーバに、JBoss 4.0.0 をインストールする。インストール場所は以下のディレク
トリとする。
JBOSS_HOME=/usr/local/jboss-4.0.0
インストール後、以下のファイル群を追加・修正する。
− 3-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$JBOSS_HOME/bin/run.conf(修正)
JVM ヒープサイズの設定。3 章付録ファイルの以下を参照。
- single/ap/bin/run.conf
$JBOSS_HOME/server/default/conf/jk2.properties(追加)
apache mod_jk2 との通信設定。3 章付録ファイルの以下を参照。
- single/ap/server/default/conf/jk2.properties
$JBOSS_HOME/server/default/deploy/SPECjAppServer.ear(追加)
SPECjAppServer アプリケーション。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/ear-deployer.xml(修正)
CallByValue パラメータの設定。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/jbossweb-tomcat50.sar/server.xml(修正)
mod_jk2 との通信設定。3 章付録ファイルの以下を参照。
- single/ap/server/default/deploy/jbossweb-tomcat50.sar/server.xml
$JBOSS_HOME/server/default/deploy/jms/jms-ds.xml(修正)
JMS サーバの設定。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/spec-ds.xml(追加)
DB サーバの DataSource 設定。
「3.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/lib/postgresql.jar(追加)
PostgreSQL JDBC ライブラリ。
「3.2.5.3 DB サーバソフトウェアのインストール・設定」でビルドしたライブラリを
複製。
Emulator に、JBoss 4.0.0 をインストールする。インストール場所は以下のディレク
トリとする。
JBOSS_HOME=/usr/local/jboss-4.0.0
インストール後、以下のファイル群を追加・修正する。
− 3-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$JBOSS_HOME/bin/run.conf(修正)
JVM ヒープサイズの設定。3 章付録ファイルの以下を参照。
- single/emulator/bin/run.conf
$JBOSS_HOME/server/default/conf/jboss-service.xml(修正)
JNDI ポート値の修正。Driver と Emulator を同一ホスト上で動かす場合(環境 B)、こ
のポート番号が重なるため。3 章付録ファイルの以下を参照。Driver と Emulator を異
なるホスト上で動かす場合(環境 A)、このファイルの修正は不要。
- single/emulator/server/default/conf/jboss-service.xml
$JBOSS_HOME/server/default/deploy/emulator.ear(追加)
emulator アプリケーション。
「3.2.7 アプリケーションのビルド・配備」を参照。
3.2.5.6 Web サーバソフトウェアのインストール・設定
Apache httpd 2.0 および Jakarta mod_jk2 に関して以下のファイル群の追加・修正を
行う。Apache のインストールディレクトリは Linux ディストリビューションにより異
なるが、ここでは便宜的に以下の場所にインストールされていると仮定する。
APACHE_HOME=/usr/local/apache2
$APACHE_HOME/conf/httpd.conf(修正)
以下の LoadModule 文を追加し、mod_jk2 を読み込み可能に設定。
LoadModule jk2_module modules/mod_jk2.so
$APACHE_HOME/conf/workers2.properties(追加)
mod_jk2 の設定。「3.2.7 アプリケーションのビルド・配備」を参照。
$APACHE_HOME/modules/mod_jk2.so(追加)
mod_jk2 本体。必要に応じてソースコードからビルドする。
3.2.5.7 SPECjAppServer2004 のインストール
Driver に、SPECjAppServer2004 をインストールする。インストール場所は、以下
− 3-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
のディレクトリとする。
SPEC_HOME=/usr/local/SPECjAppServer2004_V1.03
3.2.5.8 その他のソフトウェアのインストール・設定
sysstat の最新安定版を、ソースコードからコンパイルし、以下の場所にインストール
する。/usr/local/bin/sar 等がインストールされる。
SYSSSTAT_HOME=/usr/local
3.2.6 データベースの初期化
initdb コマンドを用いてデータベースクラスタを、それぞれ以下の場所に作成する。
DB_HOST$ initdb --no-locale -D /data/data
JMS_HOST$ initdb --no-locale -D /usr/local/pgsql/data
データベースクラスタ作成後、データベースクラスタ内に作成された、以下のファイ
ルを編集する。
postgresql.conf
DB サーバにおいては、以下のように値を変更する(以下は設定の一例)。
tcpip_socket = true
max_connections = 500
shared_buffers = 10000
sort_mem = 4096
wal_buffers = 128
effective_cache_size = 65536
deadlock_timeout = 10000
Web/JMS サーバにおいては、以下のように値を変更する(以下は設定の一例)。
tcpip_socket = true
max_connection = 100
shared_buffers = 1000
− 3-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
pg_hba.conf
DB サーバにおいては、AP サーバおよび Driver からの接続を受け付ける設定を追加
する。
Web/JMS サーバにおいては、自分自身からの接続を受け付ける設定を追加する。
データベースクラスタ作成後、以下の手順でサーバプロセスを立ち上げる。
DB_HOST$ pg_ctl start -D /data/data
JMS_HOST$ pg_ctl start -D /usr/local/pgsql/data
サーバプロセスの立ち上げ後、以下の手順でデータベースユーザを作成する。パスワ
ードはユーザ名と同じ値を指定する。
DB_HOST$ createuser -W spec
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
Password:
CREATE USER
JMS_HOST$ createuser -W jms
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
Password:
CREATE USER
データベースユーザの作成後、以下の手順でデータベースを作成する。
DB_HOST$ createdb -U spec specdb
CREATE DATABASE
JMS_HSOT$ createdb -U jms jmsdb
CREATE DATABASE
3.2.7 アプリケーションのビルド・配備
以下に示す手順で、アプリケーションのビルド並びに配備を行う。
「2.7 アプリケーシ
ョンのビルド・配備」を併せて参照すると良いだろう。
− 3-16 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.2.7.1 ビルドファイルの作成・修正
3 章付録ファイルの以下を、
- single/driver/jboss-build.xml
以下の場所におく。
- $SPEC_HOME/jboss-build.xml
本 ビ ル ド フ ァ イ ル は 、 SPECjAppServer2004 標 準 の ビ ル ド フ ァ イ ル
($SPEC_HOME/build.xml)に、以下の機能を加えたものである。
- コンテナ依存の配備記述子および O/R マッピング指定を ejb-jar に含める機能
- コンテナ依存の Web アプリケーション配備記述子を.war ファイルに含める機能
- $SPEC_HOME/config/jboss.env 中で指定したパラメータに応じて各種設定ファイ
ル群を作成する機能
3.2.7.2 ライブラリの配備
以下のライブラリ群を配備する。これらのライブラリ群は、アプリケーションのビル
ド時、初期データの投入時、およびベンチマーク測定プログラムの実行時にそれぞれ必
要となる。
$SPEC_HOME/jars/postgresql.jar
DB サーバソフトウェアのビルド時に作成した JDBC ライブラリを配備する。
$SPEC_HOME/jars/jbossall-client.jar
AP サーバソフトウェアに含まれる以下の J2EE クライアントライブラリを配備する。
- $JBOSS_HOME/client/jbossall-client.jar
$SPEC_HOME/jars/javax.servlet.jar
AP サーバソフトウェアに含まれる、以下の Servlet API ライブラリを配備する
- $JBOSS_HOME/server/default/lib/javax.servlet.jar
$SPEC_HOME/jars/jboss-j2ee.jar
AP サーバソフトウェアに含まれる、以下の J2EE API ライブラリを配備する
- $JBOSS_HOME/server/default/lib/jboss-j2ee.jar
− 3-17 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.2.7.3 環境定義ファイルの作成・修正
以下の環境依存のファイル群の作成・修正を行う
$SPEC_HOME/bin/driver.sh(修正)
内部で nawk コマンドを呼び出している部分を awk を使用するよう修正。
OS に nawk
コマンドが含まれていないため。3 章付録ファイルの以下を参照。
- single/driver/bin/driver.sh
$SPEC_HOME/bin/setenv.sh(修正)
以下のパラメータ群を環境に合わせて修正。
- JAS_HOME(本評価環境においては/usr/local/SPECjAppServer2004_V1.03)
- JAVA_HOME(本評価環境においては/usr/local/j2sdk1.4.2_04)
- J2EE_HOME(本評価環境においては JAS_HOME と同じで良い)
- APPSERVER(本評価環境においては”jboss”)
3 章付録ファイルの以下を参照。
- single/driver/bin/setenv.sh
$SPEC_HOME/config/appserver(修正)
“jboss”に修正。3 章付録ファイルの以下を参照。
- single/driver/config/appserver
$SPEC_HOME/config/jboss.env(追加)
以下のパラメータ群を環境および測定条件に併せて修正。「*** YOU MUST SET
THIS VARIABLE ***」と書かれているパラメータに関しては、修正が必須である。
- JAS_HOME(本評価環境においては/usr/local/SPECjAppServer2004_V1.03)
- JAVA_HOME(本評価環境においては/usr/local/j2sdk1.4.2_04)
- J2EE_HOME(本評価環境においては JAS_HOME と同じ値)
- JAS_HOST(Web サーバのホスト名を指定)
- JAS_PORT(Web サーバのポート番号を指定)
- JAS_PREFIX(Web サーバの URL プレフィックスを指定)
- EMULATOR_HOST(Emulator のホスト名を指定)
- EMULATOR_PORT(Emulator 上の Web サーバのポート番号を指定)
- EMULATOR_PREFIX(Emulator 上の Web サーバの URL プレフィックスを指定)
- JAS_JNDI_HOST(AP サーバのホスト名を指定)
- JVM_OPTIONS(Driver 起動時の JavaVM オプションを指定)
- DB_JNDI_NAME(データベースの JNDI 名称を指定。ディフォルトは”SpecDB”)
- DB_HOST(DB サーバのホスト名を指定)
− 3-18 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- DB_PORT(DB サーバの JDBC 接続ポート番号を指定、ディフォルトは 5432)
- DB_NAME(DB サ ー バ の JDBC 接 続 デ ー タ ベ ー ス 名 を 指 定 、 デ ィ フ ォ ル ト
は”specdb”)
- DB_USER_NAME(DB サーバの JDBC 接続ユーザ名を指定。ディフォルトは”spec”)
- DB_PASSWORD(DB サーバの JDBC 接続パスワードを指定。ディフォルトは”spec”)
- JMS_HOST(JMS サーバのホスト名を指定)
- JMS_JNDI_PORT(JMS サーバの JNDI 接続ポート番号を指定。ディフォルトは
1099)
- JMS_DB_HOST(JMS サーバのメッセージ格納 DB サーバホスト名を指定)
- JMS_DB_PORT(メッセージ格納 DB の JDBC 接続ポート番号を指定。ディフォル
トは 5432)
- JMS_DB_NAME(メッセージ格納 DB の JDBC 接続 DB 名を指定。ディフォルト
は”jmsdb”)
- JMS_DB_USER_NAME(メッセージ格納 DB の JDBC 接続ユーザ名。ディフォルト
は”jms”)
- JMS_DB_PASSWORD(メッセージ格納 DB の JDBC 接続パスワード。ディフォル
トは”jms”)
- CMP_ROW_LOCKING(行ロックが必要な Entity の行ロック指定。ディフォルト
は”true”)
- CMP_ITEM_ENT_READ_ONLY(ItemEnt EntityBean の read-only 指定。ディフ
ォルトは”false”)
- CMP_OTHER_ENT_READ_ONLY(EntityBean の read-only 指定。ディフォルト
は”false”)
- CMP_ITEM_ENT_CONFIGURATION(ItemEnt EntityBean のコンフィグレーシ
ョン。ディフォルトは”Standard CMP 2.x Entity Bean with cache invalidation”)
- CMP_OTHER_ENT_CONFIGURATION(ItemEnt EntityBean 以外の EntityBean
のコンフィグレーション。ディフォルトは”Instance Per Transaction CMP 2.x
EntityBean”)
- CMP_ITEM_ENT_COMMIT_OPTION(ItemEnt EntityBean のコミットオプショ
ン。ディフォルトは”D”)
- CMP_ITEM_ENT_OPTIOND_REFRESH_RATE(ItemEnt EntityBean のリフレッ
シュ間隔。ディフォルトは”1200”秒)
- EAR_DEPLOYER_CALL_BY_VALUE(引数を値渡しするか否か。ディフォルト
は”true”)
3 章付録ファイルの以下を参照。
- single/driver/config/jboss.env
$SPEC_HOME/config/run.properties(修正)
以下のパラメータ群を環境および測定条件に併せて修正。それぞれの値の意味に関し
− 3-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ては「2.11.1 測定条件パラメータの設定」を参照。」
- Url
- txRate
- rampUp
- stdyState
- rampDown
- triggerTime
3 章付録ファイルの以下を参照。
- single/driver/config/run.properties
$SPEC_HOME/config/db.properties.tmpl(追加)
jboss.env のパラメータ指定に基づき、以下のファイル群を作成する為のテンプレート
ファイル。
- $SPEC_HOME/config/corpdb.properties
- $SPEC_HOME/config/mfgdb.properties
- $SPEC_HOME/config/ordsdb.properties
- $SPEC_HOME/config/suppdb.properties
- $SPEC_HOME/config/utildb.properties
3 章付録ファイルの以下を参照。
- single/driver/config/db.properties.tmpl
$SPEC_HOME/config/ear-deployer.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、AP サーバの以下のファイルを作成する為のテ
ンプレート。
- $JBOSS_HOME/server/default/deploy/ear-deployer.xml
3 章付録ファイルの以下を参照。
- single/driver/config/ear-deployer.xml.tmpl
$SPEC_HOME/config/jms-ds.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、AP サーバの以下のファイルを作成する為のテ
ンプレート。
- $JBOSS_HOME/server/default/deploy/jms/jms-ds.xml
3 章付録ファイルの以下を参照。
- single/driver/config/jms-ds.xml.tmpl
− 3-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$SPEC_HOME/config/jmsdb-ds.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、JMS サーバの以下のファイルを作成する為の
テンプレート。
- $JBOSS_HOME/server/default/deploy/jmsdb-ds.xml
3 章付録ファイルの以下を参照。
- single/driver/config/jmsdb-ds.xml.tmpl
$SPEC_HOME/config/login-config.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、JMS サーバの以下のファイルを作成する為の
テンプレート。
- $JBOSS_HOME/server/default/conf/login-config.xml
3 章付録ファイルの以下を参照。
- single/driver/config/login-config.xml.tmpl
$SPEC_HOME/config/postgres-jdbc-state-service.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、JMS サーバの以下のファイルを作成する為の
テンプレート。
- $JBOSS_HOME/server/default/deploy/jms/postgres-jdbc-state-service.xml
3 章付録ファイルの以下を参照。
- single/driver/config/postgres-jdbc-state-service.xml.tmpl
$SPEC_HOME/config/postgres-jdbc2-service.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、JMS サーバの以下のファイルを作成する為の
テンプレート。
- $JBOSS_HOME/server/default/deploy/jms/postgres-jdbc2-service.xml
3 章付録ファイルの以下を参照。
- single/driver/config/postgres-jdbc2-service.xml.tmpl
$SPEC_HOME/config/spec-ds.xml.tmpl(追加)
jboss.env のパラメータ指定に基づき、AP サーバの以下のファイルを作成する為のテ
ンプレート。
- $JBOSS_HOME/server/default/deploy/spec-ds.xml
3 章付録ファイルの以下を参照。
- single/driver/config/spec-ds.xml.tmpl
− 3-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$SPEC_HOME/config/workers.properties.tmpl(追加)
jboss.env のパラメータ指定に基づき、Web サーバの以下のファイルを作成する為の
テンプレート。
- $APACHE_HOME/conf/workers2.properties
3 章付録ファイルの以下を参照。
- single/driver/config/workers.properties.tmpl
3.2.7.4 EJB 配備記述子の作成・配備
コンテナ依存 EJB 配備記述子は、3 章付録ファイルの以下のファイル群を使用する。
- single/driver/src/deploy/jboss/corp.jboss.xml
- single/driver/src/deploy/jboss/mfg.jboss.xml
- single/driver/src/deploy/jboss/orders.jboss.xml
- single/driver/src/deploy/jboss/supplier.jboss.xml
- single/driver/src/deploy/jboss/util.jboss.xml
また、コンテナ依存 CMP EntityBean 配備記述子は、3 章付録ファイルの以下のファ
イル群を使用する。
- single/driver/src/deploy/jboss/corp.jboss.cmp.xml
- single/driver/src/deploy/jboss/mfg.jboss.cmp.xml
- single/driver/src/deploy/jboss/orders.jboss.cmp.xml
- single/driver/src/deploy/jboss/supplier.jboss.cmp.xml
- single/driver/src/deploy/jboss/util.jboss.cmp.xml
コンテナ依存 EJB 配備記述子格納ディレクトリとして、以下のディレクトリを作成し、
- $SPEC_HOME/src/deploy/jboss
付録のコンテナ依存 EJB 配備記述子群、CMP EntityBean 配備記述子群、および
SPECjAppServer2004 に付属の以下のコンテナ非依存配備記述子群を、同ディレクトリ
内に複製する。
- $SPEC_HOME/src/deploy/reference/corp.xml
- $SPEC_HOME/src/deploy/reference/mfg.xml
- $SPEC_HOME/src/deploy/reference/orders.xml
− 3-22 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- $SPEC_HOME/src/deploy/reference/supplier.xml
- $SPEC_HOME/src/deploy/reference/util.xml
3.2.7.5 Web アプリケーション配備記述子の作成・配備
コンテナ依存 Web アプリケーション配備記述子は、3 章付録ファイルの以下のファイ
ル群を使用する。
- single/driver/src/deploy/jboss/web.jboss.xml
- single/driver/src/deploy/jboss/servlet.jboss.xml
そして以下の SPECjAppServer2004 付属のコンテナ非依存の Web アプリケーション
記述子と併せて$SPEC_HOME/src/deploy/jboss ディレクトリ内に複製する。
- $SPEC_HOME/src/deploy/reference/emulator-web.xml
- $SPEC_HOME/src/deploy/reference/web.xml
- $SPEC_HOME/src/deploy/reference/servlet.xml
また本環境においてはコンテナ依存の J2EE アプリケーション記述子の作成は不要で
あ る が 、 コ ン テ ナ 非 依 存 の 、 以 下 の J2EE ア プ リ ケ ー シ ョ ン 配 備 記 述 子 を
$SPEC_HOME/src/deploy/jboss ディレクトリ以下に複製する。
- $SPEC_HOME/src/deploy/reference/application.xml
- $SPEC_HOME/src/deploy/reference/emulator-app.xml
3.2.7.6 アプリケーションのビルド
「2.7.6 アプリケーションのビルド」の手順に従う。本環境におけるビルドファイル
名は jboss-build.xml である。
3.2.7.7 アプリケーションの配備
ビルドされた以下のアプリケーション群を、それぞれ以下の場所に配備する。
$SPEC_HOME/jars/SPECjAppServer.ear
AP サーバ上の以下のディレクトリ配備。
- $JBOSS_HOME/server/default/deploy/
− 3-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$SPEC_HOME/jars/emulator.ear
Emulator 上の以下のディレクトリ配備。
- $JBOSS_HOME/server/default/deploy/
3.2.7.8 その他の設定ファイル群の配備
その他アプリケーションビルド時に併せて生成された、以下のファイル群を、それぞ
れ指定する場所に配備する。
$SPEC_HOME/config/ear-deployer.xml
AP サーバ上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/
$SPEC_HOME/config/jms-ds.xml
AP サーバ上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/jms/
$SPEC_HOME/config/jmsdb-ds.xml
JMS サーバ上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/
$SPEC_HOME/config/login-config.xml
JMS サーバ上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/conf/
$SPEC_HOME/config/postgres-jdbc-state-service.xml
JMS サーバ上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/jms/
$SPEC_HOME/config/postgres-jdbc2.service.xml
JMS サーバ上の以下のディレクトリ配備。
- $JBOSS_HOME/server/default/deploy/jms/
$SPEC_HOME/config/spec-ds.xml
AP サーバ上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/
$SPEC_HOME/config/workers2.properties
− 3-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Web サーバ上の以下のディレクトリに配備。
- $APACHE_HOME/conf/
3.2.8 環境定義のまとめ
図 3.2-4 に、環境定義において、追加・変更・削除すべきファイル群に関する情報を
示す。
Web サーバ($APACHE_HOME)
conf/httpd.conf
(修正:mod_jk2 読込設定)
conf/workers2.properties
(追加:$SPEC_HOME/config/workers2.properties)
modules/mod_jk2.so
(追加:必要に応じソースコードからビルド)
JMS サーバ($JBOSS_HOME)
bin/run.conf
(修正:付録 single/jms/bin/run.conf)
server/default/conf/login-config.xml
(修正:$SPEC_HOME/config/login-config.xml)
server/default/deploy/jmsdb-ds.xml
(追加:$SPEC_HOME/config/jmsdb-ds.xml)
server/default/deploy/jms/hsqldb-jdbc-state-service.xml
(削除)
server/default/deploy/jms/hsqldb-jdbc2-service.xml
(削除)
server/default/deploy/jms/jbossmq-destinations-service.xml
(修正:付録 single/jms/server/default/deploy/jms/jbossmq-destinations-service.xml)
server/default/deploy/jms/postgres-jdbc-state-service.xml
(追加:$SPEC_HOME/config/postgres-jdbc-state-service.xml)
server/default/deploy/jms/postgres-jdbc2-service.xml
(追加:$SPEC_HOME/config/postgres-jdbc2-service.xml)
server/default/lib/postgresql.jar
(追加:DB サーバビルド時に併せてビルド)
AP サーバ($JBOSS_HOME)
bin/run.conf
(修正:付録 single/ap/bin/run.conf)
server/default/conf/jk2.properties
(追加:付録 single/ap/server/default/conf/jk2.properties)
server/default/deploy/SPECjAppServer.ear
− 3-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
(追加:$SPEC_HOME/jars/SPECjAppServer.ear)
server/default/deploy/ear-deployer.xml
(修正:$SPEC_HOME/config/ear-deployer.xml)
server/default/deploy/jbossweb-tomcat50.sar/server.xml
(修正:付録 single/ap/server/default/deploy/jbossweb-tomcat50.sar/server.xml)
server/default/deploy/jms/jms-ds.xml
(追加:$SPEC_HOME/config/jms-ds.xml)
server/default/deploy/spec-ds.xml
(追加:$SPEC_HOME/config/spec-ds.xml)
server/default/lib/postgresql.jar
(追加:DB サーバビルド時に併せてビルド)
Emulator($JBOSS_HOME)
bin/run.conf
(修正:付録 single/emulator/bin/run.conf)
server/default/conf/jboss-service.xml
(修正:付録 single/emulator/server/default/conf/jboss-service.xml)
server/default/deploy/emulator.ear
(追加:$SPEC_HOME/jars/emulator.ear)
Driver($SPEC_HOME)
bin/driver.sh
(修正:付録 single/driver/bin/driver.sh)
bin/setenv.sh
(修正:付録 single/driver/bin/setenv.sh)
config/appserver
(修正:付録 single/driver/config/appserver)
config/db.properties.tmpl
(追加:付録 single/driver/config/db.properties.tmpl)
config/corpdb.properties
(修正:アプリケーションビルド時に自動修正)
config/mfgdb.properties
(修正:アプリケーションビルド時に自動修正)
config/ordrsdb.properties
(修正:アプリケーションビルド時に自動修正)
config/suppdb.properties
(修正:アプリケーションビルド時に自動修正)
config/utildb.properties
(修正:アプリケーションビルド時に自動修正)
config/ear-deployer.xml.tmpl
(追加:付録 single/driver/config/ear-deployer.xml.tmpl)
config/ear-deployer.xml
− 3-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
(追加:アプリケーションビルド時に自動追加)
config/jboss.env
(追加:付録 single/driver/config/jboss.env)
config/jms-ds.xml.tmpl
(追加:付録 single/driver/config/jms-ds.xml.tmpl)
config/jms-ds.xml
(追加:アプリケーションビルド時に自動追加)
config/jmsdb-ds.xml.tmpl
(追加:付録 single/driver/config/jmsdb-ds.xml.tmpl)
config/jmsdb-ds.xml
(追加:アプリケーションビルド時に自動追加)
config/login-config.xml.tmpl
(追加:付録 single/driver/config/login-config.xml.tmpl)
config/login-config.xml
(追加:アプリケーションビルド時に自動追加)
config/postgres-jdbc-state-service.xml.tmpl
(追加:付録 single/driver/config/postgres-jdbc-state-service.xml.tmpl)
config/postgres-jdbc-state-service.xml
(追加:アプリケーションビルド時に自動追加)
config/postgres-jdbc2-service.xml.tmpl
(追加:付録 single/driver/config/postgres-jdbc2-service.xml.tmpl)
config/postgres-jdbc2-service.xml
(追加:アプリケーションビルド時に自動追加)
config/run.properties
(修正:付録 single/driver/config/run.properties)
config/spec-ds.xml.tmpl
(追加:付録 single/driver/config/spec-ds.xml.tmpl)
config/spec-ds.xml
(追加:アプリケーションビルド時に自動追加)
config/workers2.properties.tmpl
(追加:付録 single/driver/config/workers2.properties.tmpl)
config/workers2.properties
(追加:アプリケーションビルド時に自動追加)
jboss-build.xml
(追加:付録 single/driver/config/jboss-build.xml)
schema/sql/schema_I.sql
(追加:付録 single/driver/schema/sql/schema_I.sql)
src/deploy/jboss/application.xml
(追加:付録 single/driver/src/deploy/jboss/application.xml)
src/deploy/jboss/corp.jboss.cmp.xml
− 3-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
(追加:付録 single/driver/src/deploy/jboss/corp.jboss.cmp.xml)
src/deploy/jboss/corp.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/corp.jboss.xml)
src/deploy/jboss/corp.xml
(追加:付録 single/driver/src/deploy/jboss/corp.xml)
src/deploy/jboss/emulator-app.xml
(追加:付録 single/driver/src/deploy/jboss/emulator-app.xml)
src/deploy/jboss/emulator-web.xml
(追加:付録 single/driver/src/deploy/jboss/emulator-web.xml)
src/deploy/jboss/mfg.jboss.cmp.xml
(追加:付録 single/driver/src/deploy/jboss/mfg.jboss.cmp.xml)
src/deploy/jboss/mfg.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/mfg.jboss.xml)
src/deploy/jboss/mfg.xml
(追加:付録 single/driver/src/deploy/jboss/mfg.xml)
src/deploy/jboss/orders.jboss.cmp.xml
(追加:付録 single/driver/src/deploy/jboss/orders.jboss.cml.xml)
src/deploy/jboss/orders.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/orders.jboss.xml)
src/deploy/jboss/orders.xml
(追加:付録 single/driver/src/deploy/jboss/orders.xml)
src/deploy/jboss/servlet.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/servlet.jboss.xml)
src/deploy/jboss/servlet.xml
(追加:付録 single/driver/src/deploy/jboss/servlet.xml)
src/deploy/jboss/supplier.jboss.cmp.xml
(追加:付録 single/driver/src/deploy/jboss/supplier.jboss.cmp.xml)
src/deploy/jboss/supplier.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/supplier.jboss.xml)
src/deploy/jboss/supplier.xml
(追加:付録 single/driver/src/deploy/jboss/supplier.xml)
src/deploy/jboss/util.jboss.cmp.xml
(追加:付録 single/driver/src/deploy/jboss/util.jboss.cmp.xml)
src/deploy/jboss/util.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/util.jboss.xml)
src/deploy/jboss/util.xml
(追加:付録 single/driver/src/deploy/jboss/util.xml)
src/deploy/jboss/web.jboss.xml
(追加:付録 single/driver/src/deploy/jboss/web.jboss.xml)
src/deploy/jboss/web.xml
− 3-28 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
(追加:付録 single/driver/src/deploy/jboss/web.xml)
jars/postgresql.jar
(追加:DB サーバビルド時に併せてビルド)
jars/jbossall-client.jar
(追加:$JBOSS_HOME/client/jbossall-client.jar)
jars/javax.servlet.jar
(追加:$JBOSS_HOME/server/default/lib/javax.servlet.jar)
jars/jboss-j2ee.jar
(追加:$JBOSS_HOME/server/default/lib/jboss-j2ee.jar)
jars/SPECjAppServer.ear
(アプリケーションビルド時に生成)
jars/emulator.ear
(アプリケーションビルド時に生成)
図 3.2-4 環境定義のまとめ
− 3-29 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.3 評価手順
3.3.1 サーバプロセス群の起動
以下に示す手順でサーバプロセス群を起動する。
3.3.1.1 Web サーバの起動
Web サーバ上で以下を実行する。
$ $APACHE_HOME/bin/httpd -d $APACHE_HOME
3.3.1.2 DB サーバの起動
DB サーバ上で以下を実行し、サーバプロセスの起動およびデータベースの作成を行
う。
$ pg_ctl start -D /data/data
$ dropdb -U spec specdb
$ createdb -U spec specdb
JMS サーバ上で以下を実行し、サーバプロセスの起動およびデータベースの作成を行
う。
$ pg_ctl start -D /usr/local/pgsql/data
$ dropdb -U jms jmsdb
$ createdb -U jms jmsdb
3.3.1.3 JMS サーバの起動
JMS サーバ上で以下を実行する。
$ cd $JBOSS_HOME
$ ./bin/run.sh -b <AP サーバとの境界 IP アドレス>
− 3-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.3.1.4 Emulator の起動
Emulator 上で以下を実行する。
$ cd $JBOSS_HOME
$ ./bin/run.sh
3.3.1.5 AP サーバの起動
AP サーバ上で以下を実行する。
$ cd $JBOSS_HOME
$ ./bin/run.sh -b <JMS サーバとの境界 IP アドレス>
3.3.2 データベースへの初期データの投入
以下の手順でデータベースへの初期データ投入を行う。
3.3.2.1 データベーススキーマの決定
本環境においては、データベーススキーマとして、以下の SPECjAppServer2004 付
属の標準 SQL スキーマを採用し、
- $SPEC_HOME/schema/sql/∼.sql
上記に以下の索引を追加することで検索のチューニングを行う。
CREATE INDEX C_ci_customerid_idx ON C_customerinventory (ci_customerid);
上記の内容は、以下の 3 章付録ファイルにおかれる。
- single/driver/schema/sql/schema_I.sql
− 3-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.3.2.2 データベース上への表および索引の作成
以下の手順で表および索引を作成する。
データベーススキーマファイル群の DB サーバへの複製
SPECjAppServer2004 付属の標準 SQL スキーマおよび、付録の索引ファイルを DB
サーバ上に複製する。
表および索引の作成
DB サーバ上で以下を実行する事で、表および索引を作成する。schema_∼.sql は、複
製されたファイル群である。
$ psql -U spec specdb < schema_C.sql
$ psql -U spec specdb < schema_M.sql
$ psql -U spec specdb < schema_O.sql
$ psql -U spec specdb < schema_S.sql
$ psql -U spec specdb < schema_U.sql
$ psql -U spec specdb < schema_I.sql
3.3.2.3 初期データ投入プログラムの実行
「2.9.3 初期データ投入プログラムの実行」の手順に従う。
3.3.2.4 データベースの統計解析および索引の再構成
初期データ投入プログラムの実行後、DB サーバ上で以下を実行する事により、デー
タベースの統計解析および索引の再構成を行う。
$ echo
REINDEX DATABASE specdb
¦ psql -U spec specdb
$ vacuumdb --full --analyze -U spec specdb
3.3.3 ベンチマーク測定の実施
3.3.3.1 測定条件パラメータの設定
本評価においては、測定条件は以下の通りとする。
− 3-32 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
txRate(Load Injection Rate)
本評価においては、最低負荷から最高負荷まで、5 段階の負荷を与える。ただし負荷
の値は等間隔ではなく、高負荷になるほど間隔をより大きくする。
rampUp
600 秒を指定する。
stdyState
3600 秒を指定する。
rampDown
300 秒を指定する。
triggerTime
負荷の値に応じてそれぞれ適切に指定する。
その他のパラメータ
jboss.env で指定する各種パラメータは、ディフォルト(3 章付録ファイルのまま)を採
用する。ただし EAR_DEPLOYER_CALL_BY_VALUE 値に関しては、最高負荷の測定
において、true および false の両パターンで測定を行う。
カーネルバージョンおよびハードウェア環境
本評価はカーネル 2.4 およびカーネル 2.6 の評価である為、両バージョンでそれぞれ
測定を行う。また、環境 A においては二種の Linux ディストリビューションを、環境 B
においては三種の Linux ディストリビューション上で、それぞれ測定を行う。従って測
定パターン数は合計 30 パターン(5×(5+1))となる。
3.3.3.2 負荷測定プログラムの実行
ベンチマーク測定プログラムの実行直前に、各計算機上で以下を実行する事で、負荷
状況の測定を開始する。
$ sar -A -o sar.out 60 77
$ iostat -dkt 60.77 > iostat.out
$ vmstat 60 77 > vmstat.out
測定間隔は 60 秒、測定時間は 77 分(測定時間 75 分にドライバ起動時間分の余裕を加
えたもの)とする。
− 3-33 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.3.3.3 ベンチマーク測定プログラムの実行
「2.11.3 ベンチマーク測定プログラムの実行」の手順に従う。
3.3.4 サーバプロセス群の停止
ベンチマーク測定プログラムの終了後、以下の手順でサーバプロセス群を停止する。
3.3.4.1 AP サーバの停止
AP サーバを起動した端末上で、CTRL-C を入力する。
3.3.4.2 Emulator の停止
Emulator 用 AP サーバを起動した端末上で、CTRL-C を入力する。
3.3.4.3 JMS サーバの停止
JMS サーバを起動した端末上で CTRL-C を入力する。
3.3.4.4 DB サーバの停止
JMS 用 DB サーバ上で以下を実行し、サーバプロセスを停止する。
$ pg_ctl stop -D /usr/local/pgsql/data
AP 用 DB サーバ上で以下を実行し、サーバプロセスを停止する。
$ pg_ctl stop -D /data/data
3.3.4.5 Web サーバの停止
Web サーバ上で以下を実行し、サーバプロセスを停止する。
− 3-34 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$ kill `cat $APACHE_HOME/run/httpd.pid`
− 3-35 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.4 評価結果
本評価においては、カーネル 2.4 とカーネル 2.6 に対応する 4 つの Linux ディストリ
ビューションそれぞれにおいて、最低負荷から最大負荷まで 5 段階の負荷を与えた。た
だし負荷の値は等間隔ではなく、負荷が高くなるほど間隔がより大きくなるようにした。
また最大負荷を与える際には、引数を参照渡しとする場合における測定も併せて行った
(通常引数は値渡し)。また、環境 A において二種の Linux ディストリビューションを採
用し、環境 B において三種の Linux ディストリビューションを採用した。つまり合計
30 パターンの測定を行った。
以下の評価結果グラフにおいて、グラフの横軸(負荷)の値および、処理性能の縦軸の値
に関しては、本評価結果においては絶対値を公開しない。絶対値を公開できない理由は
「1.2.2 SPECjAppServer2004 評価結果の公開について」で述べられる。
3.4.1 負荷(規模)と処理性能に関する測定結果
負荷と処理性能に関する測定結果を以下に示す。Dealer 処理性能と Mfg 処理性能の和
が、全体処理性能となる。横軸がシステムに与える負荷およびデータベースの規模に対
応し、縦軸が単位時間あたりのトランザクション処理性能を表す。理想直線は、低負荷
時における処理性能値を、負荷の比率に応じて直線化したものである。
3.4.1.1 環境 A における測定結果
理想直線
処理性能
負荷と処理性能の関係(全体)
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
A
B
C
D
E
負荷
図 3.4-1 負荷と処理性能の関係(全体)(環境 A)
− 3-36 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
理想直線
処理性能
負荷と処理性能の関係(Dealer)
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
A
B
C
D
E
負荷
図 3.4-2 負荷と処理性能の関係(Dealer)(環境 A)
負荷と処理性能の関係(Mfg)
処理性能
理想直線
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
A
B
C
D
E
負荷
図 3.4-3 負荷と処理性能の関係(Mfg)(環境 A)
以下に最大負荷を与えた時の、値渡しと参照渡しの比較結果を示す。
− 3-37 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
値渡しと参照渡しの比較(処理性能)
処理性能
値渡し:RHEL2.1(2.4) AP1台
参照渡し:RHEL2.1(2.4) AP1台
値渡し:SLES9(2.6) AP1台
参照渡し:SLES9(2.6) AP1台
Dealer
Mfg
Total
図 3.4-4 値渡しと参照渡しの比較(処理性能)(環境 A)
3.4.1.2 環境 B における測定結果
− 3-38 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と処理性能の関係(全体)
処理性能
理想直線
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
A
B
C
D
E
負荷
図 3.4-5 負荷と処理性能の関係(全体)(環境 B)
負荷と処理性能の関係(Dealer)
処理性能
理想直線
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
A
B
C
D
E
負荷
図 3.4-6 負荷と処理性能の関係(Dealer)(環境 B)
− 3-39 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と処理性能の関係(Mfg)
処理性能
理想直線
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
A
B
C
D
E
負荷
図 3.4-7 負荷と処理性能の関係(Mfg)(環境 B)
以下に最大負荷を与えた時の、値渡しと参照渡しの比較結果を示す。
値渡しと参照渡しの比較(処理性能)
処理性能
値渡し :SLES9(2.6)
参照渡し:SLES9(2.6)
値渡し :RHEL3(2.4)
参照渡し:RHEL3(2.4)
値渡し :MIRC3(2.4)
参照渡し:MIRC3(2.4)
Dealer
Manufacturing
Total
図 3.4-8 値渡しと参照渡しの比較(処理性能)(環境 B)
− 3-40 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.4.2 負荷(規模)と応答時間に関する測定結果
負荷と平均応答時間に関する測定結果を以下に示す。Dealer 系のトランザクションと
して Purchase, Manage, Browse が、Mfg 系のトランザクションとして Mfg が、それぞ
れ対応する。
また、処理性能と同様に、最大負荷を与えた時の、値渡しと参照渡しの比較結果も併
せて示す。
3.4.2.1 環境 A における測定結果
負荷と平均応答時間の関係(Purchase)
18
16
平均応答時間(秒)
14
12
10
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
8
6
4
要求応答時間
2
0
A
B
C
D
E
負荷
図 3.4-9 負荷と平均応答時間の関係(Purchase)(環境 A)
− 3-41 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と平均応答時間の関係(Manage)
35
平均応答時間(秒)
30
25
20
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
15
10
5
要求応答時間
0
A
B
C
D
E
負荷
図 3.4-10 負荷と平均応答時間の関係(Manage)(環境 A)
負荷と平均応答時間の関係(Browse)
40
35
平均応答時間(秒)
30
25
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
20
15
10
5
要求応答時間
0
A
B
C
D
E
負荷
図 3.4-11 負荷と平均応答時間の関係(Browse)(環境 A)
− 3-42 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と平均応答時間の関係(Mfg)
要求応答時間
5
4.5
平均応答時間(秒)
4
3.5
3
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
2.5
2
1.5
1
0.5
0
A
B
C
D
E
負荷
図 3.4-12 負荷と平均応答時間の関係(Mfg)(環境 A)
値渡しと参照渡しの比較(平均応答時間)
40
35
平均応答時間(秒)
30
25
値渡し:RHEL2.1(2.4) AP1台
参照渡し:RHEL2.1(2.4) AP1台
値渡し:SLES9(2.6) AP1台
参照渡し:SLES9(2.6) AP1台
20
15
10
5
0
Purchase
Manage
Browse
Mfg
図 3.4-13 値渡しと参照渡しの比較(平均応答時間)(環境 A)
3.4.2.2 環境 B における測定結果
− 3-43 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と平均応答時間の関係(Purchase)
20
18
平均応答時間(秒)
16
14
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
12
10
8
6
4
要求応答時間
2
0
A
B
C
D
E
負荷
図 3.4-14 負荷と平均応答時間の関係(Purchase)(環境 B)
負荷と平均応答時間の関係(Manage)
45
40
平均応答時間(秒)
35
30
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
25
20
15
10
5
要求応答時間
0
A
B
C
D
E
負荷
図 3.4-15 負荷と平均応答時間の関係(Manage)(環境 B)
− 3-44 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と平均応答時間の関係(Browse)
40
平均応答時間(秒)
35
30
25
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
20
15
10
5
0
要求応答時間
A
B
C
D
E
負荷
図 3.4-16 負荷と平均応答時間の関係(Browse)(環境 B)
負荷と平均応答時間の関係(Mfg)
要求応答時間
5
4.5
平均応答時間(秒)
4
3.5
SLES9(2.6)
RHEL3(2.4)
MIRC3(2.4)
3
2.5
2
1.5
1
0.5
0
A
B
C
D
E
負荷
図 3.4-17 負荷と平均応答時間の関係(Mfg)(環境 B)
− 3-45 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
値渡しと参照渡しの比較(平均応答時間)
45
40
平均応答時間(秒)
35
値渡し :SLES9(2.6)
参照渡し:SLES9(2.6)
値渡し :RHEL3(2.4)
参照渡し:RHEL3(2.4)
値渡し :MIRC3(2.4)
参照渡し:MIRC3(2.4)
30
25
20
15
10
5
0
Purchase
Manage
Browse
Mfg
図 3.4-18 値渡しと参照渡しの比較(平均応答時間)(環境 B)
3.4.3 計算機群の負荷状況に関する測定結果
計算機群の負荷状況に関しては、比較的負荷が高い AP サーバ、DB サーバおよび
Web/JMS サーバの測定結果のみを示す。
3.4.3.1 CPU 負荷状況に関する測定結果
CPU 負荷状況に関しては、sar –u で取得可能な%user, %sys 値および、sar –w で取
得可能な cswch/s 値をそれぞれ示す。
3.4.3.1.1
環境 A における測定結果
− 3-46 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とCPU負荷の関係(APサーバ)
100
90
80
CPU負荷(%)
70
RHEL2.1(2.4) %user
RHEL2.1(2.4) %sys
SLES9(2.6) %user
SLES9(2.6) %sys
60
50
40
30
20
10
0
A
B
C
D
E
負荷
図 3.4-19 負荷と CPU 負荷(利用率)の関係(AP サーバ)(環境 A)
負荷とCPU負荷の関係(DBサーバ)
10
CPU負荷(%)
8
RHEL2.1(2.4) %user
RHEL2.1(2.4) %sys
SLES9(2.6) %user
SLES9(2.6) %sys
6
4
2
0
A
B
C
D
E
負荷
図 3.4-20 負荷と CPU 負荷(利用率)の関係(DB サーバ)(環境 A)
− 3-47 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とCPU負荷の関係(Web/JMSサーバ)
10
CPU負荷(%)
8
RHEL2.1(2.4) %user
RHEL2.1(2.4) %sys
SLES9(2.6) %user
SLES9(2.6) %sys
6
4
2
0
A
B
C
D
E
負荷
図 3.4-21 負荷と CPU 負荷(利用率)の関係(Web/JMS サーバ)(環境 A)
負荷とCPU負荷の関係(APサーバ)
16000
CPU負荷(cswch/s)
14000
12000
10000
RHEL2.1(2.4) cswch/s
SLES9(2.6) cswch/s
8000
6000
4000
2000
0
A
B
C
D
E
負荷
図 3.4-22 負荷と CPU 負荷(コンテキストスイッチ)の関係(AP サーバ)(環境 A)
− 3-48 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とCPU負荷の関係(DBサーバ)
CPU負荷(cswch/s)
2000
1500
RHEL2.1(2.4) cswch/s
SLES9(2.6) cswch/s
1000
500
0
A
B
C
D
E
負荷
図 3.4-23 負荷と CPU 負荷(コンテキストスイッチ)の関係(DB サーバ)(環境 A)
負荷とCPU負荷の関係(Web/JMSサーバ)
CPU負荷(cswch/s)
2000
1500
RHEL2.1(2.4) cswch/s
SLES9(2.6) cswch/s
1000
500
0
A
B
C
D
E
負荷
図 3.4-24 負荷と CPU 負荷(コンテキストスイッチ)の関係(Web/JMS サーバ)(環境 A)
3.4.3.1.2
環境 B における測定結果
− 3-49 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
CPU負荷(%)
負荷とCPU負荷の関係(APサーバ)
100
90
80
70
60
50
40
30
20
10
0
SLES9(2.6) %user
SLES9(2.6) %sys
RHEL3(2.4) %user
RHEL3(2.4) %sys
MIRC3(2.4) %user
MIRC3(2.4) %sys
A
B
C
D
E
負荷
図 3.4-25 負荷と CPU 負荷(利用率)の関係(AP サーバ)(環境 B)
負荷とCPU負荷の関係(DBサーバ)
14
CPU負荷(%)
12
SLES9(2.6) %user
SLES9(2.6) %sys
RHEL3(2.4) %user
RHEL3(2.4) %sys
MIRC3(2.4) %user
MIRC3(2.4) %sys
10
8
6
4
2
0
A
B
C
D
E
負荷
図 3.4-26 負荷と CPU 負荷(利用率)の関係(DB サーバ)(環境 B)
− 3-50 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とCPU負荷の関係(Web/JMSサーバ)
3
CPU負荷(%)
2.5
SLES9(2.6) %user
SLES9(2.6) %sys
RHEL3(2.4) %user
RHEL3(2.4) %sys
MIRC3(2.4) %user
MIRC3(2.4) %sys
2
1.5
1
0.5
0
A
B
C
D
E
負荷
図 3.4-27 負荷と CPU 負荷(利用率)の関係(Web/JMS サーバ)(環境 B)
CPU負荷(cswch/s)
負荷とCPU負荷の関係(APサーバ)
2000
1800
1600
1400
1200
1000
800
600
400
200
0
SLES9(2.6) cswch/s
RHEL3(2.4) cswch/s
MIRC3(2.4) cswch/s
A
B
C
D
E
負荷
図 3.4-28 負荷と CPU 負荷(コンテキストスイッチ)の関係(AP サーバ)(環境 B)
− 3-51 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
CPU負荷(cswch/s)
負荷とCPU負荷の関係(DBサーバ)
2000
1800
1600
1400
1200
1000
800
600
400
200
0
SLES9(2.6) cswch/s
RHEL3(2.4) cswch/s
MIRC3(2.4) cswch/s
A
B
C
D
E
負荷
図 3.4-29 負荷と CPU 負荷(コンテキストスイッチ)の関係(DB サーバ)(環境 B)
負荷とCPU負荷の関係(Web/JMSサーバ)
CPU負荷(cswch/s)
1200
1000
800
SLES9(2.6) cswch/s
RHEL3(2.4) cswch/s
MIRC3(2.4) cswch/s
600
400
200
0
A
B
C
D
E
負荷
図 3.4-30 負荷と CPU 負荷(コンテキストスイッチ)の関係(Web/JMS サーバ)(環境 B)
3.4.3.2 ネットワーク負荷状況に関する測定結果
ネットワーク負荷状況に関しては、
sar –n DEV で取得可能な rxbyt/s 値および txbyt/s
− 3-52 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
値をそれぞれ示す。
3.4.3.2.1
環境 A における測定結果
負荷とネットワーク負荷の関係(APサーバ)
1600000
ネットワーク負荷(byte/s)
1400000
1200000
1000000
RHEL2.1(2.4) rxbyt/s
RHEL2.1(2.4) txbyt/s
SLES9(2.6) rxbyt/s
SLES9(2.6) txbyt/s
800000
600000
400000
200000
0
A
B
C
D
E
負荷
図 3.4-31 負荷とネットワーク負荷の関係(AP サーバ)(環境 A)
負荷とネットワーク負荷の関係(DBサーバ)
ネットワーク負荷(byte/s)
1600000
1400000
1200000
RHEL2.1(2.4) rxbyt/s
RHEL2.1(2.4) txbyt/s
SLES9(2.6) rxbyt/s
SLES9(2.6) txbyt/s
1000000
800000
600000
400000
200000
0
A
B
C
D
E
負荷
図 3.4-32 負荷とネットワーク負荷の関係(DB サーバ)(環境 A)
− 3-53 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とネットワーク負荷の関係(Web/JMSサーバ)
ネットワーク負荷(byte/s)
1600000
1400000
1200000
RHEL2.1(2.4) rxbyt/s
RHEL2.1(2.4) txbyt/s
SLES9(2.6) rxbyt/s
SLES9(2.6) txbyt/s
1000000
800000
600000
400000
200000
0
A
B
C
D
E
負荷
図 3.4-33 負荷とネットワーク負荷の関係(Web/JMS サーバ)(環境 A)
3.4.3.2.2
環境 B における測定結果
− 3-54 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とネットワーク負荷の関係(APサーバ)
1200000
ネットワーク負荷
1000000
SLES9(2.6)-0 rxbyt/s
SLES9(2.6)-0 txbyt/s
SLES9(2.6)-1 rxbyt/s
SLES9(2.6)-1 txbyt/s
RHEL3(2.4)-0 rxbyt/s
RHEL3(2.4)-0 txbyt/s
RHEL3(2.4)-1 rxbyt/s
RHEL3(2.4)-1 txbyt/s
MIRC3(2.4)-0 rxbyt/s
MIRC3(2.4)-0 txbyt/s
MIRC3(2.4)-1 rxbyt/s
MIRC3(2.4)-1 txbyt/s
800000
600000
400000
200000
0
A
B C
D
E
負荷
図 3.4-34 負荷とネットワーク負荷の関係(AP サーバ)(環境 B)
負荷とネットワーク負荷の関係(DBサーバ)
160000
ネットワーク負荷
140000
120000
SLES9(2.6)-0 rxbyt/s
SLES9(2.6)-0 txbyt/s
RHEL3(2.4)-0 rxbyt/s
RHEL3(2.4)-0 txbyt/s
MIRC3(2.4)-0 rxbyt/s
MIRC3(2.4)-0 txbyt/s
100000
80000
60000
40000
20000
0A
B
C
D
E
負荷
図 3.4-35 負荷とネットワーク負荷の関係(DB サーバ)(環境 B)
− 3-55 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とネットワーク負荷の関係(Web/JMSサーバ)
1200000
ネットワーク負荷
1000000
SLES9(2.6)-0
SLES9(2.6)-0
SLES9(2.6)-1
SLES9(2.6)-1
RHEL3(2.4)-0
RHEL3(2.4)-0
RHEL3(2.4)-1
RHEL3(2.4)-1
MIRC3(2.4)-0
MIRC3(2.4)-0
MIRC3(2.4)-1
MIRC3(2.4)-1
800000
600000
400000
200000
0
A
B
C
D
rxbyt/s
txbyt/s
rxbyt/s
txbyt/s
rxbyt/s
txbyt/s
rxbyt/s
txbyt/s
rxbyt/s
txbyt/s
rxbyt/s
txbyt/s
E
負荷
図 3.4-36 負荷とネットワーク負荷の関係(Web/JMS サーバ)(環境 B)
− 3-56 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.5 分析と考察
以下に個々の測定結果に関して、特に以下の観点から見た分析および考察を行う。
・
カーネル 2.4 とカーネル 2.6 の、高負荷時における性能比較
・
計算機の役割(AP サーバ、DB サーバ、Web/JMS サーバ)毎に見た負荷状況
・
ハードウェア環境の違いと性能限界の関係
3.5.1 負荷(規模)と処理性能に関する分析と考察
負荷と処理性能の関係は、理想的(計算機が無限の処理性能を持つ)には、低負荷時にお
ける直線が、高負荷時にもそのまま伸びる事が想定される。しかしながら、計算機の性
能は有限である為、両環境におけるカーネル 2.4 およびカーネル 2.6 共に、高負荷時に
は低負荷時と同様の直線の傾きを維持できない事が「負荷と処理性能の関係(全体)」結果
グラフ(図 3.4-1、図 3.4-5)から分かる。また、両環境共に、カーネル 2.4 とカーネル 2.6
では、カーネル 2.6 の方が、高負荷時における性能劣化の度合いが、カーネル 2.4 に比
べより低い事もグラフから読み取れるが、環境 A におけるカーネル 2.4 の性能劣化の度
合いが、環境 B におけるそれに比して、より大きい事も、グラフから読み取れる。これ
は環境 B におけるカーネル 2.4 は、環境 A におけるそれよりも、より新しく、カーネル
2.6 で導入された機能の一部が取り込まれているためではないかと推測される。
次に個々のトランザクション種別毎に分析を行うと、Dealer トランザクションにおけ
る高負荷時の性能劣化がより著しい事も、
「負荷と処理性能の関係(Dealer)」結果グラフ
(図 3.4-2、図 3.4-6)から分かる。また環境 A のカーネル 2.4 および環境 B の全てのカー
ネルバージョンにおいては、最大負荷の前の時点で既に性能限界に達している事もグラ
フから読み取れる。
一方、Mfg トランザクションに関しては、高負荷時においても理想直線により近い形
を保っている事が「負荷と処理性能の関係(Mfg)」結果グラフ(図 3.4-3、図 3.4-7)から分
かる。またカーネル 2.4 とカーネル 2.6 の差もほんのわずかである。
また、評価環境と処理性能の関係についてであるが、環境 A の方が、環境 B に比べ、
最大負荷時における性能劣化の度合いがより少ない事が、グラフから読み取れる。これ
はおそらく両環境における AP サーバのハードウェア性能の違いによるものだろう。
3.5.2 負荷(規模)と応答時間に関する分析と考察
負荷と平均応答時間の関係については、概ね高負荷になるに従って、応答時間が遅く
なる傾向が、
「負荷と平均応答時間の関係(Purchase/Manage/Browse/Mfg)」結果グラフ
群(図 3.4-9∼図 3.4-12、図 3.4-14∼図 3.4-17)から分かる。またカーネル 2.4 の方が、カ
ーネル 2.6 に比して、高負荷時の遅延の度合いが高い事もグラフから読み取れる。また、
− 3-57 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Dealer 系トランザクション(Purchase, Manage, Browse)の遅延の度合いが、Mfg 系トラ
ンザクション(Mfg)よりも高い事も、グラフから読み取れる。
また、SPEC における平均応答時間の要求基準は、90%応答時間+0.1 秒以内であり、
90%応答時間に関する要求基準は、Dealer 系トランザクションは 2 秒以内、Mfg 系トラ
ンザクションは 5 秒以内であるが、Dealer 系トランザクション群は、最大負荷時(カー
ネル 2.4 においてはそれより前)には、要求基準を満たせていない事もグラフから読み取
れる。
また、評価環境と応答時間の関係については、環境 A の方が、環境 B に比べ、最大負
荷時における平均応答時間が概ねより速い事が、グラフから読み取れる。これもおそら
く両環境における AP サーバのハードウェア性能の違いによるものだろう。
3.5.3 計算機群の負荷状況に関する分析と考察
3.5.3.1 CPU の負荷状況に関する分析と考察
計算機の役割別の観点から見ると、AP サーバに最も高負荷が掛かっている事が、
「負
荷と CPU 負荷の関係(AP サーバ/DB サーバ/Web/JMS サーバ)」結果グラフ群(図 3.4-19
∼図 3.4-30)から分かる。また、全てのサーバ群において、与える負荷に応じて CPU 負
荷も併せて増大する傾向が、結果グラフ群から読み取れる。
一般的に、J2EE(特に EJB)による多層 C/S システムにおいては、AP サーバの CPU
負荷が、他の役割(DB, Web 等)を担当するサーバ群に比して高いと言われるが、本測定
環境においてもその傾向が見られるようである。特に環境 B においては、負荷 D の時点
で AP サーバが性能限界に達していることが分かる(図 3.4-25)
また、コンテキストスイッチ回数に着目してみると、特に環境 A の高負荷時のカーネ
ル 2.4 における AP サーバのコンテキストスイッチ回数が、他のサーバ群に比して非常
に多い事が分かる(図 3.4-22)。これはおそらく多数の Java のスレッドがアクティブに活
動している状況において、OS レベルでは非常に短い時間で Java の実行スレッドが切り
替わるようなスケジューリングが行われてしまい、結果としてコンテキストスイッチ回
数が非常に多く(効率が悪く)なってしまったのではないかと推測される。そして環境 A
のカーネル 2.4 の AP サーバにおいては、最大負荷に到達する前にコンテキストスイッ
チ回数が頭打ち(14000 回/秒程度)となっており、トランザクション処理性能の低下や、
応答時間の遅延などにつながっている様に見受けられる。
3.5.3.2 ネットワークの負荷状況に関する分析と考察
計算機の役割別の観点から見ると、AP サーバおよび Web/JMS サーバが、DB サーバ
に比してより活発に通信を行っている事が、
「負荷とネットワーク負荷の関係(AP サーバ
/DB サーバ/Web/JMS サーバ)」結果グラフ群(図 3.4-31∼図 3.4-36)から分かる。
− 3-58 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
この原因としては、Driver と Web/JMS サーバの間および、Web/JMS サーバと AP
サーバの間は、HTTP Request/Response と言う、比較的大きなサイズを持つデータ群
がやり取りされるのに比して、AP サーバと DB サーバ間は、JDBC 通信のみが行われる
為だろう。
また、AP サーバの送信パケット数(txbyt/s)と、Web/JMS サーバの送受信パケット数
(rxbyt/s, txbyt/s)がほぼ等しいのは、Web/JMS サーバが、Driver と AP サーバの中間に
位置し、両者の間のパケットの中継の役割に徹している為と思われる。
また、高負荷時には、転送量が直線的に伸びず、直線の傾きが低めになることも、結
果グラフから読み取れる。特に環境 A のカーネル 2.4 の AP サーバおよび Web/JMS サ
ーバにおいては、最大負荷時において転送量が減少している(図 3.4-31、図 3.4-33)が、
これは恐らく AP サーバが性能限界に達している(コンテキストスイッチの負荷が非常に
高い)為ではないかと考えられる。
3.5.4 値渡しと参照渡しの比較に関する分析と考察
値渡しと参照渡しの違いとは、同一 Java 仮想マシン内の、同一クラスローダ空間内
において、リモートインターフェイス経由で Enterprise Bean が呼び出される際に、引
数を値渡し(呼び出し時に引数の内容が複製され、複製されたインスタンスが渡される)
とするか、参照渡し(呼び出し時に引数の内容を複製せず、そのままインスタンスを渡す)
するかの違いである。Enterprise Java Beans 仕様においては、このような場合におい
ては引数を値渡しとする事が義務づけられ、SPECjAppServer2004 の要求基準も同様で
ある。
しかしながら、多くの J2EE(EJB)コンテナは、このような場合において、引数を参照
渡しする機能を提供する事で性能強化を図っており、一般的に J2EE(EJB)システムを構
築する際には、引数を参照渡しされても良い様にアプリケーションロジックを実装する
事が多いかと思われる。SPECjAppServer2004 アプリケーションも、引数を参照渡しと
した場合においても正常に動作する。
そこで本評価においては、最大負荷時においてのみ、引数を参照渡しとする様な設定
で、値渡しの場合との比較を行ってみた。結果は非常に興味深いものであり、引数を参
照渡しとする事で、性能が大幅に向上する事が、「値渡しと参照渡しの比較(処理性能/平
均応答時間)」結果グラフ群(図 3.4-4、図 3.4-8)から分かる。
個々の結果について見て行くと、まず処理性能に関しては、Dealer トランザクション
の処理性能の向上が、Mfg トランザクションに比して、著しい。これは恐らく、Dealer
トランザクションにおいては、図 3.5-1 に示す様に、
− 3-59 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Presentation Logic
Application Logic
Servlet
SessionBean
Database Logic
HTTP
Dealer Agent
call by value or
call by reference
EntitiBean
call by reference only
図 3.5-1 Dealer トランザクションにおける値渡しと参照渡し
値渡し(call by value)か参照渡し(call by reference)の違いによる影響部分が大きいの
に対し、Mfg トランザクションにおいては、図 3.5-2 に示す様に、
Application Logic
Database Logic
RMI/IIOP
Mfg Agent
SessionBean
call by value only
EntitiBean
call by reference only
図 3.5-2 Mfg トランザクションにおける値渡しと参照渡し
値渡しか参照渡しの違いによる影響部分が比較的小さい(MfgAgent と SessionBean 間
は、異なる計算機上でのプロセス間通信となる為、無条件で値渡しとなる)為ではないか
と推測される。なお上記の図は処理の流れを単純化したものであり、実際には
SessionBean から他の SessionBean を呼び出したり等、それぞれ処理の流れはやや複雑
なものとなる。また、SPECjAppServer2004 においては、EntityBean は全てローカル
インターフィスが提供される為、引数は無条件で参照渡しとなる。
応答時間に関しても同様の結果であり、平均応答時間が大幅に改善される事が結果グ
ラフ群(図 3.4-13、図 3.4-18)から読み取れる。この結果から言える点として、本評価で
構築した様な環境においては、可能であれば参照渡しで引数をやり取りする方が、値渡
しで引数をやり取りするのに比して、より容易に性能向上を見込めると言う点である。
しかしながら、参照渡しで引数をやり取りすると言う事は、EJB 仕様に準拠しない、つ
まり様々な EJB コンテナ間での可搬性が保証されないやり方でシステムを構築すると
言うことも認識する必要があるだろう。また、AP サーバ(JBoss)のバージョンアップ等
によって、この辺りの処理性能が将来的に改善される可能性もあるだろう。
− 3-60 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
3.5.5 まとめ
本評価において、同一の評価手順を用いて、カーネル 2.4 およびカーネル 2.6 両方の
Linux ディストリビューション上で評価環境を構築し、測定を実施可能な事が確認でき
た。また、複数の異なるハードウェア環境上で、同一の評価手順を用いて測定を実施可
能な事も確認できた。
また、本評価においては、Linux, Apache httpd, JBoss, PostgreSQL と言う組み合わ
せにおける評価手順を確立したが、本評価手順の一部を再利用する事で、例えばデータ
ベース部分を他のものに置き換えてみたり(MySQL や商用 DB 等)、OS 部分を他のもの
に置き換えてみたり(商用 OS 等)することは、比較的容易であると考える。今後の OSS
の発展に伴い、本評価手順がさらにブラッシュアップされる事で、J2EE システムの性
能・信頼性評価を誰もがより容易に行えるようになることが期待される。
また、カーネル 2.4 とカーネル 2.6 の性能比較と言う観点から見た場合、全体的に見
て、高負荷時においては、概ねカーネル 2.6 の方が高性能であると言う結果が得られた。
また、カーネル 2.6 の諸機能が取り込まれたカーネル 2.4 と、カーネル 2.6 の諸機能が取
り込まれていないカーネル 2.4 では、カーネル 2.6 の諸機能が取り込まれたカーネル 2.4
の方が、より高性能であると言う結果も得られた。
また本測定は、各々のパターンで 1 回のみの測定しか行っておらず、特に高負荷時に
おいては、測定結果に多少のぶれがあることが考えられる。本来的には、それぞれのパ
ターン毎に複数回の測定を行い、平均値を求めるべきであろう。
− 3-61 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4 分散処理性能比較
4.1 目的および概要
本評価における目的の一つは、Linux(OS 層)、PostgreSQL(DB 層)、JBoss(AP 層)、
Apache httpd(Web 層)と言う、代表的な OSS 群で構築された、高性能クラスタ評価環境
上で、SPECjAppServer2004 アプリケーションを稼働させる手順を確立することである。
カーネルバージョン間比較との違いは、カーネルバージョン間比較は、AP サーバ単体(一
台)における評価に対して、本評価は、複数台の AP サーバ群による、高性能クラスタを
構築する、と言う点である。ここで言う高性能クラスタ(High Performance Cluster)と
は、高可用性クラスタ(High Availability Cluster)とは異なり、可用性向上の為の AP サ
ーバ間におけるリプリケーション等は行わず、性能向上を主な目的としたクラスタを指
す。
本評価の実施時点においては、SPEC.org Web サイト上においては、商用ソフトウェ
ア群を用いて高性能クラスタ(高可用性クラスタではない)環境を構築し、測定を行った結
果のみが公開されており、DB 層および AP 層において、OSS を採用した測定結果は公
開されていない。また、SPECjAppServer2004, JBoss 4.0.0, PostgreSQL 7.4 の組み合
わせにおける評価手順も、本評価の実施時点においては、一般に公開されていない。従
って、本評価手順の全部或は一部を再利用する事で、利用者は、OSS による性能・信頼
性評価環境を、より容易に構築する事が可能となる。
そしてさらなる目的としては、確立した手順を用いて、カーネルバージョン間比較と
同様に、同一ハードウェア上で Linux 2.4 および Linux 2.6 カーネルそれぞれを採用し
た Linux ディストリビューション上で、AP サーバ台数を変化させつつ測定を行い、そ
れぞれのカーネルの、特に高負荷時における性能・信頼性を比較・検証する。また併せ
て、AP サーバ台数と処理性能の関係や、それぞれの役割(AP/DB/Web/JMS サーバ)毎の
負荷状況なども併せて検証する。
− 4-1 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.2 環境定義
4.2.1 ハードウェアおよびネットワーク構成
本評価においては、計算機の役割毎の負荷を鑑み、表 4.2-1 から表 4.2-3 に示す構成構
成(合計 8 台)を採用した。
表 4.2-1 Driver/Emulator 構成(それぞれ 1 台ずつ)
分類
内容
Type
DELL PowerEdge 750
CPU/Memory
1x3.2GHz Pentium 4, 1GB Memory
Disk
1x120GB HDD(Serial ATA, non-mirroring)
Network
onboard dual Gigabit Ethernet(Intel)
Hostname
ossld, ossem
IP Address
192.168.102.11, 192.168.102.12
表 4.2-2 Web/JMS サーバ(1 台)、AP サーバ(4 台)構成
分類
内容
Type
IBM BladeCenter HS20
CPU/Memory
2x2.8GHz Xeon, 2.5GB Memory
Disk
2x36GB HDD(SCSI, mirroring)
Network
onboard dual Gigabit Ethernet(Intel)
Hostname
osswj, ossas1∼ossas4
IP Address
192.168.102.15/192.168.101.15, 192.168.101.11∼14/192.168.104.11∼
14
表 4.2-3 DB サーバ構成(1 台)
分類
内容
Type
DELL PowerEdge 1850
CPU/Memory
2x2.8GHz Xeon, 3GB Memory
Disk
2x73GB HDD(SCSI, mirroring)
Network
onboard dual Gigabit Ethernet(Intel)
Hostname
ossds
IP Address
192.168.104.15
− 4-2 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
上記計算機群を、IBM BladeCenter Gigabit Ethernet Switch Module に接続し、
Gigabit Switch の VLAN 機能を使用し図 4.2-1 に示すネットワークに分割した。osswj
および ossas1 は、隣接するネットワーク間の経路制御を行う。
11
AP Server
ossas1
11
12
AP Server
ossas2
12
13
AP Server
ossas3
13
14
AP Server
ossas4
14
12
Emulator
ossem
15
11
Driver
ossld
Web/JMS Server
osswj
192.168.102.x
15
192.168.101.x
15
DB Server
ossds
192.168.104.x
図 4.2-1 ネットワーク構成
また、本評価においては、ハードウェア負荷分散装置は使用しないこととした。
4.2.2 ソフトウェア構成
表 4.2.4 から表 4.2.8 に、
本評価にて使用したソフトウェア郡を、計算機種別毎に示す。
表 4.2-4 Driver ソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1
OS
SUSE LINUX Enterprise Server 9
JDK
j2sdk-1.4.2_04
アプリケーション
SPECjAppServer2004
表 4.2-5 Emulator ソフトウェア
分類
OS
ソフトウェア
Red Hat Enterprise Linux AS 2.1
SUSE LINUX Enterprise Server 9
− 4-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JDK
j2sdk-1.4.2_04
AP サーバ
JBoss-4.0.0
表 4.2-6 Web/JMS サーバソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1
OS
SUSE LINUX Enterprise Server 9
JDK
J2sdk-1.4.2_04
Web サーバ
Apache-2.0.46
Web-AP コネクタ
mod_jk2.0.4
JMS サーバ
JBoss-4.0.0
JMS ストア
Postgresql-7.4.6
表 4.2-7 DB サーバソフトウェア
分類
ソフトウェア
Red Hat Enterprise Linux AS 2.1
OS
SUSE LINUX Enterprise Server 9
DB サーバ
Postgresql-7.4.6
表 4.2-8 AP サーバソフトウェア
分類
OS
ソフトウェア
Red Hat Enterprise Linux AS 2.1
SUSE LINUX Enterprise Server 9
JDK
j2sdk-1.4.2_04
AP サーバ
JBoss-4.0.0
4.2.2.1 Web サーバソフトウェア
本評価において、Web サーバとして Apache httpd 2.0 および Jakarta mod_jk2 を採
用した。またこれらのソフトウェアは、原則として OS ディストリビューションに含ま
れているのであれば、それを採用する。もしも OS ディストリビューションに含まれて
いないのであれば、表 4.2-9 に示す URL からソースコードをダウンロードする。
− 4-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 4.2-9 Web サーバソフトウェアの入手先
URL
ソフトウェア
http://www.apache.org/
Apache httpd 2.0.x
http://jakarta.apache.org/site/sourceindex.cgi
Jakarta mod_jk2
mod_jk2 は、Web サーバと AP サーバ間の接続の為に必要となる。本評価の実施時点
において、mod_jk2 はメンテナンスが凍結され、mod_jk の開発が再開されたが、本評
価においては、評価実施時点において最も一般的に採用されていると思われる mod_jk2
を採用した。
4.2.2.2 AP サーバソフトウェア
本評価において、AP サーバソフトウェアとして JBoss 4.0.0 を採用した。JBoss 4.0.0
は、J2EE1.4 仕様に対応し、Sun による J2EE ライセンス認定を受けた AP サーバソフ
トウェアである。JBoss 4.0.0 は、以下の URL からソースコードおよびバイナリをダウ
ンロード可能である。
http://www.jboss.org/
4.2.2.3 JMS サーバソフトウェア
本評価において、JMS サーバソフトウェアとして、JBoss 4.0.0 に含まれる JBoss MQ
を採用した。
4.2.2.4 DB サーバソフトウェア
本評価において、DB サーバソフトウェアとして、PostgreSQL 7.4.6 を採用した。
PostgreSQL は、OS ディストリビューションに含まれるものを使用することも可能であ
るが、本評価では、複数のディストリビューションにおけるバージョンの違いを避ける
為、ソースコードからビルドを行う。以下の URL からソースコードをダウンロード可
能である。
http://www.postgresql.org
− 4-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.2.2.5 Java プラットフォームソフトウェア
本評価において、Sun が配布する Java 2 SDK, Standard Edition Version 1.4.2_04 を
採用した。バージョン 1.4.2_04 は、評価の実施時点における最新版(1.4.2_06)ではない
が、バージョン 1.4.2_05 以降には以下に URL に示す問題が発生した為、より古い
1.4.2_04 を採用した。
http://forum.java.sun.com/thread.jspa?threadID=563298&messageID=2773331
Sun が配布する Java プラットフォームソフトウェアは、以下の URL からダウンロー
ド可能である。
http://java.sun.com/j2se/1.4.2/download.html
4.2.2.6 OS ソフトウェア
本評価において、表 4.2-10 の Linux ディストリビューションを OS ソフトウェアとし
て採用した。
表 4.2-10 OS ソフトウェア構成
OS 種別
Red Hat Enterprise Linux AS 2.1(2.4.9)
SUSE LINUX Enterprise Server 9(2.6.5)
また本評価において、複数の計算機群から構成される評価環境の構築において、すべ
ての計算機の Linux ディストリビューションを統一し、複数の異なるディストリビュー
ションの混在は、行わない事とした。
それぞれの Linux ディストリビューションは、表 4.2-11 に示す URL から有償で入手
する事が可能である。
表 4.2-11 OS 入手先
URL
入手可能 OS
http://www.redhat.co.jp/
Red Hat Enterprise Linux AS
http://www.novell.co.jp/
SUSE LINUX Enterprise Server
− 4-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.2.2.7 その他のソフトウェア
本評価において、CPU/Memory/Disk/Network の負荷状況を測定する為に、sysstat
に含まれる sar コマンド等を用いているが、一部のディストリビューションにおいて、
正常に値が取得できない不具合が確認された為、sysstat に関しては、最新安定版のソー
スコードからビルドを行った。sysstat のソースコードは、以下の URL からダウンロー
ド可能である。
http://perso.wanadoo.fr/sebastien.godard/
4.2.3 OS のインストール・設定
「2.3 OS のインストール・設定」の手順に従う。
OS のインストールに先立ち、DB サーバ(ossds)、AP サーバ群(ossas1∼ossas4)、
Web/JMS サーバ(osswj)に関しては、内蔵する 2 台のディスクをハードウェア・ミラー
リングする設定を行う。これらの計算機には、トランザクションログ等の、実システム
としての稼働を想定した場合に重要なファイル群が置かれる為である。
続いて各々の Linux ディストリビューション CD を用い OS のインストールを行う。
OS のインストール後、必要に応じてネットワーク経由で OS のアップデートを行う。
ホスト名・IP アドレスは「4.2.1 ハードウェアおよびネットワーク構成」に示した通
りとする。
ファイルシステムは、全ディストリビューションが共通して対応している ext3 を採用
する。ファイルシステムは、Linux で一般的な/boot および/(root)の 2 パーティション構
成とする。ただし DB サーバ(ossds)のみ、データベース格納用の専用パーティション
(/data)を設ける。データベース格納用の専用ディスクを調達可能な場合は、専用ディス
ク上にパーティションを設ければ良いだろう。
カーネルパラメータに関しては、DB サーバにおいて、以下の共有メモリに関する設
定を行う(値は設定例)
/proc/sys/kernel/shmmax = 2147483648
4.2.4 ネットワーク環境の構築
「2.4 ネットワーク環境の構築」の手順に従う。
ネットワーク構成は、「4.2.1 ハードウェアおよびネットワーク構成」の図 4.2-1 で示
した通りとする。
Web/JMS サーバ(osswj)および AP サーバ(ossas1)は、隣接するネットワーク間のルー
タとして機能するよう設定を行う。また、AP サーバ群に関しては、マルチキャストネッ
トワークへの経路制御指定を行う。具体的には以下の手順で行う。
− 4-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ossas1# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
ossas2# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
ossas3# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
ossas4# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
これは JBoss をクラスタ構成で稼働させる為に必要となる設定である。
4.2.5 ソフトウェア群のインストール・設定
4.2.5.1 付録ファイルの一覧
図 4.2-2 に、本章の付録ファイルの一覧を示す。
cluster/ap/
AP サーバ群用ファイル群
bin/run.conf
server/all/conf/jk2.properties
server/all/conf/log4j.xml
server/all/conf/standardjboss.xml
server/all/deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml
cluster/driver/ Driver 用ファイル群
bin/driver.sh
bin/setenv.sh
config/appsserver
config/cluster-service.xml.tmpl
config/db.properties.tmpl
config/ear-deployer.xml.tmpl
config/hajndi-jms-ds.xml.tmpl
config/jboss-cluster.env
config/jmsdb-ds.xml.tmpl
config/login-config.xml.tmpl
config/postgres-jdbc-state-service.xml.tmpl
config/postgres-jdbc2-service.xml.tmpl
config/run.properties
config/server.xml.tmpl
config/spec-ds.xml.tmpl
config/tc5-cluster-service.xml.tmpl
config/workers2.properties.tmpl
− 4-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
jboss-cluster-build.xml
schema/sql/schema_I.sql
src/deploy/jboss-cluster/application.xml
src/deploy/jboss-cluster/corp.jboss.cmp.xml
src/deploy/jboss-cluster/corp.jboss.xml
src/deploy/jboss-cluster/corp.xml
src/deploy/jboss-cluster/emulator-app.xml
src/deploy/jboss-cluster/emulator-web.xml
src/deploy/jboss-cluster/mfg.jboss.cmp.xml
src/deploy/jboss-cluster/mfg.jboss.xml
src/deploy/jboss-cluster/mfg.xml
src/deploy/jboss-cluster/orders.jboss.cmp.xml
src/deploy/jboss-cluster/orders.jboss.xml
src/deploy/jboss-cluster/orders.xml
src/deploy/jboss-cluster/servlet.jboss.xml
src/deploy/jboss-cluster/servlet.xml
src/deploy/jboss-cluster/supplier.jboss.cmp.xml
src/deploy/jboss-cluster/supplier.jboss.xml
src/deploy/jboss-cluster/supplier.xml
src/deploy/jboss-cluster/util.jboss.cmp.xml
src/deploy/jboss-cluster/util.jboss.xml
src/deploy/jboss-cluster/util.xml
src/deploy/jboss-cluster/web.jboss.xml
src/deploy/jboss-cluster/web.xml
cluster/emulator/
Emulator 用ファイル群
bin/run.conf
server/default/conf/log4j.xml
cluster/jms/
JMS サーバ用ファイル群
bin/run.conf
server/default/conf/log4j.xml
server/default/deploy/jms/jbossmq-destinations-service.xml
図 4.2-2 付録ファイル一覧
4.2.5.2 Java プラットフォームソフトウェアのインストール・設定
DB サーバ以外のすべての計算機上に Java 2 SDK, Standard Edition v1.4.2_04 をイ
ンストールする。インストールディレクトリは以下の場所とする。
− 4-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JAVA_HOME=/usr/local/j2sdk1.4.2_04
4.2.5.3 DB サーバソフトウェアのインストール・設定
DB サーバ(ossds)、Web/JMS サーバ(osswj)上に、PostgreSQL 7.4.6 をインストール
する。Web/JMS サーバ上にインストールするのは、JMS サーバのデータ格納用の為で
ある。PostgreSQL はソースコードからコンパイルを行い、osswj 上においては JDBC
ライブラリも併せてビルドする。インストールディレクトリは以下の場所とする。
PGHOME=/usr/local/pgsql
4.2.5.4 JMS サーバソフトウェアのインストール・設定
Web/JMS サーバ(osswj)に、JBoss 4.0.0 をインストールする。インストール場所は以
下のディレクトリとする。
JBOSS_HOME=/usr/local/jboss-4.0.0
インストール後、以下のファイル群を追加・修正・削除する。
$JBOSS_HOME/bin/run.conf(修正)
JVM ヒープサイズの設定。4 章付録ファイルの以下を参照。
- cluster/jms/bin/run.conf
$JBOSS_HOME/server/default/conf/log4j.xml(修正)
すべてのログ出力レベルを”INFO”に修正。4 章付録ファイルの以下を参照。
- cluster/jms/server/default/conf/log4j.xml
$JBOSS_HOME/server/default/conf/login-config.xml(修正)
ファイル内の dsJndiName 値の修正。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/jmsdb-ds.xml(追加)
メッセージ格納用 DataSource 設定。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/deploy/jms/hsqldb-jdbc-state-service.xml(削除)
− 4-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$JBOSS_HOME/server/default/deploy/jms/hsqldb-jdbc2-service.xml(削除)
メッセージ保管場所をディフォルトの HSQLDB から PostgreSQL に変更するため、
不要。
$JBOSS_HOME/server/default/deploy/jms/jbossmq-destinations-service.xml(修正)
SPECjAppServer2004 が使用する Queue の設定。4 章付録ファイルの以下を参照。
- cluster/jms/server/default/deploy/jms/jbossmq-destinations-service.xml
$JBOSS_HOME/server/default/deploy/jms/postgres-jdbc-state-service.xml(追加)
$JBOSS_HOME/server/default/deploy/jms/postgres-jdbc2-service.xml(追加)
メッセージ格納 DB に関する設定。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/default/lib/postgresql.jar(追加)
PostgreSQL JDBC ライブラリ。
「4.2.5.3 DB サーバソフトウェアのインストール・設定」でビルドしたライブラリを
複製。
4.2.5.5 AP サーバソフトウェアのインストール・設定
AP サーバ群(ossas1∼ossas4)に、JBoss 4.0.0 をインストールする。インストール場
所は以下のディレクトリとする。
JBOSS_HOME=/usr/local/jboss-4.0.0
インストール後、以下のファイル群を追加・修正する。
$JBOSS_HOME/bin/run.conf(修正)
JVM ヒープサイズの設定。4 章付録ファイルの以下を参照。
- cluster/ap/bin/run.conf
$JBOSS_HOME/server/all/conf/jk2.properties(追加)
apache mod_jk2 との通信設定。4 章付録ファイルの以下を参照。
- cluster/ap/server/all/conf/jk2.properties
$JBOSS_HOME/server/all/conf/log4j.xml(修正)
すべてのログ出力レベルを”INFO”に修正。4 章付録ファイルの以下を参照。
- cluster/ap/server/all/conf/log4j.xml
− 4-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$JBOSS_HOME/server/all/conf/standardjboss.xml(修正)
“Clustered Stateless SessionBean”の不具合修正。4 章付録ファイルの以下を参照。
- cluster/ap/server/all/conf/standardjboss.xml
$JBOSS_HOME/server/all/deploy/SPECjAppServer.ear(追加)
SPECjAppServer アプリケーション。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/deploy/cluster-service.xml(修正)
AP サーバが複数のネットワークインターフェイスを持つ場合、bind_addr に関する修
正。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/deploy/ear-deployer.xml(修正)
Isolated パラメータ並びに CallByValue パラメータの設定。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml(
修正)
sticky session 対応の為の修正(UseJK=true)。4 章付録ファイルの以下を参照。
- cluster/server/all/deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml
$JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/tomcat50-service.jar(修正)
アプリケーション配備に失敗する不具合を修正。JBoss 4.0.0 のソースコードの以下の
ファイルの、
- jboss-4.0.0-src/tomcat/src/main/org/jboss/web/tomcat/tc5/JvmRouteFilter.java
以下の部分(37 行目)を
35
public void init(FilterConfig filterConfig) throws ServletException
36
{
37
manager_ = (AbstractJBossManager) filterConfig.getServletContext()
37 .getAttribute(AbstractJBossManager.class.getName());
38
if (manager_ == null)
39
{
以下の様に修正し、jar ファイルを再作成する。この不具合は JBoss 4.0.1 で修正済。
− 4-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
35
public void init(FilterConfig filterConfig) throws ServletException
36
{
37
manager_ = (AbstractJBossManager) filterConfig.getServletContext()
37 .getAttribute(JBossManager.class.getName());
38
if (manager_ == null)
39
{
$JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xml(修正)
mod_jk2 との通信設定。4 章付録ファイルの以下を参照。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/deploy/jms/hajndi-jms-ds.xml(修正)
JMS サーバの設定。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/deploy/spec-ds.xml(追加)
DB サーバの DataSource 設定。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/deploy/tc5-cluster-service.xml(修正)
AP サーバが複数のネットワークインターフェイスを持つ場合、bind_addr に関する修
正。
「4.2.7 アプリケーションのビルド・配備」を参照。
$JBOSS_HOME/server/all/lib/postgresql.jar(追加)
PostgreSQL JDBC ライブラリ。
「4.2.5.3 DB サーバソフトウェアのインストール・設定」でビルドしたライブラリを
複製。
Emulator(ossem)に、JBoss 4.0.0 をインストールする。インストール場所は以下のデ
ィレクトリとする。
JBOSS_HOME=/usr/local/jboss-4.0.0
インストール後、以下のファイル群を追加・修正する。
$JBOSS_HOME/bin/run.conf(修正)
JVM ヒープサイズの設定。4 章付録ファイルの以下を参照。
- cluster/emulator/bin/run.conf
− 4-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$JBOSS_HOME/server/default/conf/log4j.xml(修正)
すべてのログ出力レベルを”INFO”に修正。4 章付録ファイルの以下を参照。
- cluster/emulator/server/default/conf/log4j.xml
$JBOSS_HOME/server/default/deploy/emulator.ear(追加)
emulator アプリケーション。
「4.2.7 アプリケーションのビルド・配備」を参照。
4.2.5.6 Web サーバソフトウェアのインストール・設定
Apache httpd 2.0 および Jakarta mod_jk2 に関して以下のファイル群の追加・修正を
行う。Apache のインストールディレクトリは Linux ディストリビューションにより異
なるが、ここでは便宜的に以下の場所にインストールされていると仮定する。
APACHE_HOME=/usr/local/apache2
$APACHE_HOME/conf/httpd.conf(修正)
以下の LoadModule 文を追加し、mod_jk2 を読み込み可能に設定。
LoadModule jk2_module modules/mod_jk2.so
また、高負荷時に備え、以下の部分のチューニングを行う事が望ましい(数値は設定例)。
ServerLimit 500
∼
<IfModule prefork.c>
∼
MaxClients 500
∼
</IfModule>
$APACHE_HOME/conf/workers2.properties(追加)
mod_jk2 の設定。「4.2.7 アプリケーションのビルド・配備」を参照。
$APACHE_HOME/modules/mod_jk2.so(追加)
mod_jk2 本体。必要に応じてソースコードからビルドする。
− 4-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.2.5.7 SPECjAppServer2004 のインストール
Driver(ossld)に、SPECjAppServer2004 をインストールする。インストール場所は、
以下のディレクトリとする。
SPEC_HOME=/usr/local/SPECjAppServer2004_V1.03
4.2.5.8 その他のソフトウェアのインストール・設定
sysstat の最新安定版を、ソースコードからコンパイルし、以下の場所にインストール
する。/usr/local/bin/sar 等がインストールされる筈である。
SYSSSTAT_HOME=/usr/local
4.2.6 データベースの初期化
initdb コマンドを用いてデータベースクラスタを、それぞれ以下の場所に作成する。
ossds$ initdb --no-locale -D /data/data
osswj$ initdb --no-locale -D /usr/local/pgsql/data
データベースクラスタ作成後、データベースクラスタ内に作成された、以下のファイ
ルを編集する。
postgresql.conf
DB サーバにおいては、以下のように値を変更する(以下は設定の一例)。
tcpip_socket = true
max_connections = 500
shared_buffers = 10000
sort_mem = 4096
wal_buffers = 128
effective_cache_size = 65536
deadlock_timeout = 10000
Web/JMS サーバにおいては、以下のように値を変更する(以下は設定の一例)。
tcpip_socket = true
− 4-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
max_connection = 100
shared_buffers = 1000
pg_hba.conf
DB サーバにおいては、AP サーバおよび Driver からの接続を受け付ける設定を追加
する。
Web/JMS サーバにおいては、自分自身からの接続を受け付ける設定を追加する。
データベースクラスタ作成後、以下の手順でサーバプロセスを立ち上げる。
ossds$ pg_ctl start -D /data/data
osswj$ pg_ctl start -D /usr/local/pgsql/data
サーバプロセスの立ち上げ後、以下の手順でデータベースユーザを作成する。パスワ
ードはユーザ名と同じ値を指定する。
ossds$ createuser -W spec
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
Password:
CREATE USER
osswj$ createuser -W jms
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
Password:
CREATE USER
データベースユーザの作成後、以下の手順でデータベースを作成する。
ossds$ createdb -U spec specdb
CREATE DATABASE
osswj$ createdb -U jms jmsdb
CREATE DATABASE
4.2.7 アプリケーションのビルド・配備
以下に示す手順で、アプリケーションのビルド並びに配備を行う。
「2.7 アプリケーシ
− 4-16 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ョンのビルド・配備」を併せて参照すると良いだろう。
4.2.7.1 ビルドファイルの作成・修正
4 章付録ファイルの以下を、
- cluster/driver/jboss-cluster-build.xml
以下の場所におく。
- $SPEC_HOME/jboss-cluster-build.xml
本 ビ ル ド フ ァ イ ル は 、 SPECjAppServer2004 標 準 の ビ ル ド フ ァ イ ル
($SPEC_HOME/build.xml)に、以下の機能を加えたものである。
- コンテナ依存の配備記述子および O/R マッピング指定を ejb-jar に含める機能
- コンテナ依存の Web アプリケーション配備記述子を.war ファイルに含める機能
- $SPEC_HOME/config/jboss-cluster.env 中で指定したパラメータに応じて各種設定
ファイル群を作成する機能
4.2.7.2 ライブラリの配備
以下のライブラリ群を配備する。これらのライブラリ群は、アプリケーションのビル
ド時、初期データの投入時、およびベンチマーク測定プログラムの実行時にそれぞれ必
要となる。
$SPEC_HOME/jars/postgresql.jar
DB サーバソフトウェアのビルド時に作成した JDBC ライブラリを配備する。
$SPEC_HOME/jars/jbossall-client.jar
AP サーバソフトウェアに含まれる以下の J2EE クライアントライブラリを配備する。
- $JBOSS_HOME/client/jbossall-client.jar
$SPEC_HOME/jars/javax.servlet.jar
AP サーバソフトウェアに含まれる、以下の Servlet API ライブラリを配備する
- $JBOSS_HOME/server/default/lib/javax.servlet.jar
$SPEC_HOME/jars/jboss-j2ee.jar
− 4-17 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
AP サーバソフトウェアに含まれる、以下の J2EE API ライブラリを配備する
- $JBOSS_HOME/server/default/lib/jboss-j2ee.jar
4.2.7.3 環境定義ファイルの作成・修正
以下の環境依存のファイル群の作成・修正を行う
$SPEC_HOME/bin/driver.sh(修正)
内部で nawk コマンドを呼び出している部分を awk を使用するよう修正。
OS に nawk
コマンドが含まれていないため。4 章付録ファイルの以下を参照。
- cluster/driver/bin/driver.sh
$SPEC_HOME/bin/setenv.sh(修正)
以下のパラメータ群を環境に合わせて修正。
- JAS_HOME(本評価環境においては/usr/local/SPECjAppServer2004_V1.03)
- JAVA_HOME(本評価環境においては/usr/local/j2sdk1.4.2_04)
- J2EE_HOME(本評価環境においては JAS_HOME と同じで良い)
- APPSERVER(本評価環境においては”jboss-cluster”)
4 章付録ファイルの以下を参照。
- cluster/driver/bin/setenv.sh
$SPEC_HOME/config/appserver(修正)
“jboss-cluster”に修正。4 章付録ファイルの以下を参照。
- cluster/driver/config/appserver
$SPEC_HOME/config/jboss-cluster.env(追加)
以下のパラメータ群を環境および測定条件に併せて修正。「*** YOU MUST SET
THIS VARIABLE ***」と書かれているパラメータに関しては、修正が必須である。
- JAS_HOME(本評価環境においては/usr/local/SPECjAppServer2004_V1.03)
- JAVA_HOME(本評価環境においては/usr/local/j2sdk1.4.2_04)
- J2EE_HOME(本評価環境においては JAS_HOME と同じ値)
- JAS_HOST(Web サーバのホスト名を指定)
- JAS_PORT(Web サーバのポート番号を指定)
- JAS_PREFIX(Web サーバの URL プレフィックスを指定)
- EMULATOR_HOST(Emulator のホスト名を指定)
- EMULATOR_PORT(Emulator 上の Web サーバのポート番号を指定)
- EMULATOR_PREFIX(Emulator 上の Web サーバの URL プレフィックスを指定)
- AP1_HOST(AP サーバ 1 のホスト名を指定)
− 4-18 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- AP1_ADDR(AP サーバ 1 の IP アドレスを指定)
- AP2_HOST(AP サーバ 2 のホスト名を指定)
- AP2_ADDR(AP サーバ 2 の IP アドレスを指定)
- AP3_HOST(AP サーバ 3 のホスト名を指定)
- AP3_ADDR(AP サーバ 3 の IP アドレスを指定)
- AP4_HOST(AP サーバ 4 のホスト名を指定)
- AP4_ADDR(AP サーバ 4 の IP アドレスを指定)
- JAS_JNDI_HOST(AP サーバ 1 のホスト名を指定)
- JVM_OPTIONS(Driver 起動時の JavaVM オプションを指定)
- DB_JNDI_NAME(データベースの JNDI 名称を指定。ディフォルトは”SpecDB”)
- DB_HOST(DB サーバのホスト名を指定)
- DB_PORT(DB サーバの JDBC 接続ポート番号を指定、ディフォルトは 5432)
- DB_NAME(DB サ ー バ の JDBC 接 続 デ ー タ ベ ー ス 名 を 指 定 、 デ ィ フ ォ ル ト
は”specdb”)
- DB_USER_NAME(DB サーバの JDBC 接続ユーザ名を指定。ディフォルトは”spec”)
- DB_PASSWORD(DB サーバの JDBC 接続パスワードを指定。ディフォルトは”spec”)
- JMS_HOST(JMS サーバのホスト名を指定)
- JMS_JNDI_PORT(JMS サーバの JNDI 接続ポート番号を指定。ディフォルトは
1099)
- JMS_DB_HOST(JMS サーバのメッセージ格納 DB サーバホスト名を指定)
- JMS_DB_PORT(メッセージ格納 DB の JDBC 接続ポート番号を指定。ディフォル
トは 5432)
- JMS_DB_NAME(メッセージ格納 DB の JDBC 接続 DB 名を指定。ディフォルト
は”jmsdb”)
- JMS_DB_USER_NAME(メッセージ格納 DB の JDBC 接続ユーザ名。ディフォルト
は”jms”)
- JMS_DB_PASSWORD(メッセージ格納 DB の JDBC 接続パスワード。ディフォル
トは”jms”)
- CMP_ROW_LOCKING(行ロックが必要な Entity の行ロック指定。ディフォルト
は”true”)
- CMP_ITEM_ENT_READ_ONLY(ItemEnt EntityBean の read-only 指定。ディフ
ォルトは”false”)
- CMP_OTHER_ENT_READ_ONLY(EntityBean の read-only 指定。ディフォルト
は”false”)
- CMP_ITEM_ENT_CONFIGURATION(ItemEnt EntityBean のコンフィグレーシ
ョン。ディフォルトは”Standard CMP 2.x Entity Bean with cache invalidation”)
- CMP_OTHER_ENT_CONFIGURATION(ItemEnt EntityBean 以外の EntityBean
のコンフィグレーション。ディフォルトは”Instance Per Transaction CMP 2.x
EntityBean”)
- CMP_ITEM_ENT_COMMIT_OPTION(ItemEnt EntityBean のコミットオプショ
− 4-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ン。ディフォルトは”D”)
- CMP_ITEM_ENT_OPTIOND_REFRESH_RATE(ItemEnt EntityBean のリフレッ
シュ間隔。ディフォルトは”1200”秒)
- EAR_DEPLOYER_ISOLATED(アプリケーションを隔離されたクラスローダ空間
上で実行するか否か。ディフォルトは”false”)
- EAR_DEPLOYER_CALL_BY_VALUE(引数を値渡しするか否か。ディフォルト
は”false”)
4 章付録ファイルの以下を参照。
- cluster/driver/config/jboss-cluster.env
$SPEC_HOME/config/run.properties(修正)
以下のパラメータ群を環境および測定条件に併せて修正。それぞれの値の意味に関し
ては「2.11.1 測定条件パラメータの設定」を参照。」
- Url
- txRate
- rampUp
- stdyState
- rampDown
- triggerTime
4 章付録ファイルの以下を参照。
- cluster/driver/config/run.properties
$SPEC_HOME/config/db.properties.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、以下のファイル群を作成する為のテン
プレートファイル。
- $SPEC_HOME/config/corpdb.properties
- $SPEC_HOME/config/mfgdb.properties
- $SPEC_HOME/config/ordsdb.properties
- $SPEC_HOME/config/suppdb.properties
- $SPEC_HOME/config/utildb.properties
4 章付録ファイルの以下を参照。
- cluster/driver/config/db.properties.tmpl
$SPEC_HOME/config/ear-deployer.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、AP サーバ群(ossas1∼ossas4)の以下の
ファイルを作成する為のテンプレート(全 AP サーバ共通)。
− 4-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- $JBOSS_HOME/server/all/deploy/ear-deployer.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/ear-deployer.xml.tmpl
$SPEC_HOME/config/jms-ds.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、AP サーバ群(ossas1∼ossas4)の以下の
ファイルを作成する為のテンプレート(全 AP サーバ共通)。
- $JBOSS_HOME/server/all/deploy/jms/hajndi-jms-ds.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/hajndi-jms-ds.xml.tmpl
$SPEC_HOME/config/jmsdb-ds.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、JMS サーバ(osswj)の以下のファイルを
作成する為のテンプレート。
- $JBOSS_HOME/server/default/deploy/jmsdb-ds.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/jmsdb-ds.xml.tmpl
$SPEC_HOME/config/login-config.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、JMS サーバ(osswj)の以下のファイルを
作成する為のテンプレート。
- $JBOSS_HOME/server/default/conf/login-config.xml
4 章付録ファイルの以下を参照
- cluster/driver/config/login-config.xml.tmpl
$SPEC_HOME/config/postgres-jdbc-state-service.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、JMS サーバ(osswj)の以下のファイルを
作成する為のテンプレート。
- $JBOSS_HOME/server/default/deploy/jms/postgres-jdbc-state-service.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/postgres-jdbc-state-service.xml.tmpl
$SPEC_HOME/config/postgres-jdbc2-service.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、JMS サーバ(osswj)の以下のファイルを
− 4-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
作成する為のテンプレート。
- $JBOSS_HOME/server/default/deploy/jms/postgres-jdbc2-service.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/postgres-jdbc2-service.xml.tmpl
$SPEC_HOME/config/spec-ds.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、AP サーバ群(ossas1∼ossas4)の以下の
ファイルを作成する為のテンプレート(全 AP サーバ共通)。
- $JBOSS_HOME/server/all/deploy/spec-ds.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/spec-ds.xml.tmpl
$SPEC_HOME/config/server.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、AP サーバ群(ossas1∼ossas4)の以下の
ファイルを作成する為のテンプレート(サーバ毎に生成内容は異なる)
- $JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/server.xml.tmpl
$SPEC_HOME/config/cluster-service.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、AP サーバ群(ossas1∼ossas4)の以下の
ファイルを作成する為のテンプレート(サーバ毎に生成内容は異なる)
- $JBOSS_HOME/server/all/deploy/cluster-service.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/cluster-service.xml.tmpl
$SPEC_HOME/config/tc5-cluster-service.xml.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、AP サーバ群(ossas1∼ossas4)の以下の
ファイルを作成する為のテンプレート(サーバ毎に生成内容は異なる)
- $JBOSS_HOME/server/all/deploy/tc5-cluster-service.xml
4 章付録ファイルの以下を参照。
- cluster/driver/config/tc5-cluster-service.xml.tmpl
$SPEC_HOME/config/workers.properties.tmpl(追加)
jboss-cluster.env のパラメータ指定に基づき、Web サーバ(osswj)の以下のファイルを
− 4-22 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
作成する為のテンプレート。
- $APACHE_HOME/conf/workers2.properties
4 章付録ファイルの以下を参照。
- cluster/driver/config/workers.properties.tmpl
4.2.7.4 EJB 配備記述子の作成・配備
コンテナ依存 EJB 配備記述子は、付録の以下のファイル群を使用する。
- cluster/driver/src/deploy/jboss-cluster/corp.jboss.xml
- cluster/driver/src/deploy/jboss-cluster /mfg.jboss.xml
- cluster/driver/src/deploy/jboss-cluster /orders.jboss.xml
- cluster/driver/src/deploy/jboss-cluster /supplier.jboss.xml
- cluster/driver/src/deploy/jboss-cluster /util.jboss.xml
また、コンテナ依存 CMP EntityBean 配備記述子は、付録の以下のファイル群を使用
する。
- cluster/driver/src/deploy/jboss-cluster /corp.jboss.cmp.xml
- cluster/driver/src/deploy/jboss-cluster /mfg.jboss.cmp.xml
- cluster/driver/src/deploy/jboss-cluster /orders.jboss.cmp.xml
- cluster/driver/src/deploy/jboss-cluster /supplier.jboss.cmp.xml
- cluster/driver/src/deploy/jboss-cluster /util.jboss.cmp.xml
コンテナ依存 EJB 配備記述子格納ディレクトリとして、以下のディレクトリを作成し、
- $SPEC_HOME/src/deploy/jboss-cluster
付録のコンテナ依存 EJB 配備記述子群、CMP EntityBean 配備記述子群、および
SPECjAppServer2004 に付属の以下のコンテナ非依存配備記述子群を、同ディレクトリ
内に複製する。
- $SPEC_HOME/src/deploy/reference/corp.xml
- $SPEC_HOME/src/deploy/reference/mfg.xml
- $SPEC_HOME/src/deploy/reference/orders.xml
- $SPEC_HOME/src/deploy/reference/supplier.xml
- $SPEC_HOME/src/deploy/reference/util.xml
− 4-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.2.7.5 Web アプリケーション配備記述子の作成・配備
コンテナ依存 Web アプリケーション配備記述子は、付録の以下のファイル群を使用す
る。
- cluster/driver/src/deploy/jboss-cluster /web.jboss.xml
- cluster/driver/src/deploy/jboss-cluster /servlet.jboss.xml
である。以下の SPECjAppServer2004 付属のコンテナ非依存の Web アプリケーショ
ン記述子と併せて$SPEC_HOME/src/deploy/jboss-cluster ディレクトリ内に複製する。
- $SPEC_HOME/src/deploy/reference/emulator-web.xml
- $SPEC_HOME/src/deploy/reference/web.xml
- $SPEC_HOME/src/deploy/reference/servlet.xml
また本環境においてはコンテナ依存の J2EE アプリケーション記述子の作成は不要で
あ る が 、 コ ン テ ナ 非 依 存 の 、 以 下 の J2EE ア プ リ ケ ー シ ョ ン 配 備 記 述 子 を
$SPEC_HOME/src/deploy/jboss-cluster ディレクトリ以下に複製する。
- $SPEC_HOME/src/deploy/reference/application.xml
- $SPEC_HOME/src/deploy/reference/emulator-app.xml
4.2.7.6 アプリケーションのビルド
「2.7.6 アプリケーションのビルド」の手順に従う。本環境におけるビルドファイル
名は jboss-cluster-build.xml である。
4.2.7.7 アプリケーションの配備
ビルドされた以下のアプリケーション群を、それぞれ以下の場所に配備する。
$SPEC_HOME/jars/SPECjAppServer.ear
AP サーバ群(ossas1∼ossas4)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/all/deploy/
$SPEC_HOME/jars/emulator.ear
Emulator(ossem)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/
− 4-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.2.7.8 その他の設定ファイル群の配備
その他アプリケーションビルド時に併せて生成された、以下のファイル群を、それぞ
れ指定する場所に配備する。
$SPEC_HOME/config/ear-deployer.xml
AP サーバ群(ossas1∼ossas4)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/all/deploy/
$SPEC_HOME/config/hajndi-jms-ds.xml
AP サーバ群(ossas1∼ossas4)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/all/deploy/jms/
$SPEC_HOME/config/jmsdb-ds.xml
JMS サーバ(osswj)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/
$SPEC_HOME/config/login-config.xml
JMS サーバ(osswj)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/conf/
$SPEC_HOME/config/postgres-jdbc-state-service.xml
JMS サーバ(osswj)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/default/deploy/jms/
$SPEC_HOME/config/postgres-jdbc2.service.xml
JMS サーバ(osswj)上の以下のディレクトリ配備。
- $JBOSS_HOME/server/default/deploy/jms/
$SPEC_HOME/config/spec-ds.xml
AP サーバ群(ossas1∼ossas4)上の以下のディレクトリに配備。
- $JBOSS_HOME/server/all/deploy/
$SPEC_HOME/config/server-ap[1-4].xml
AP サーバ群(ossas1∼ossas4)上の以下にそれぞれ複製。サーバ毎にファイルが異なる
点に注意。
- $JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xml
− 4-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$SPEC_HOME/config/cluster-service-ap[1-4].xml
AP サーバ群(ossas1∼ossas4)上の以下にそれぞれ複製。サーバ毎にファイルが異なる
点に注意。
- $JBOSS_HOME/server/all/deploy/cluster-service.xml
$SPEC_HOME/config/tc5-cluster-service-ap[1-4].xml
AP サーバ群(ossas1∼ossas4)上の以下にそれぞれ複製。サーバ毎にファイルが異なる
点に注意。
- $JBOSS_HOME/server/all/deploy/tc5-cluster-service.xml
$SPEC_HOME/config/workers2.properties
Web サーバ(osswj)上の以下のディレクトリに配備。
- $APACHE_HOME/conf/
配備前に、測定に使用する AP サーバの台数に応じて、以下の様にファイルの一部を
コメントアウトする必要がある。
[lb:lb]
[channel.socket:AAA.BBB.CCC.DDD:EEEE]
host=AAA.BB.CCC.DDD
port=EEEE
tomcatId=FFFFF
group=lb
[channel.socket:GGG.HHH.III.JJJ:KKKK]
host=GGG.HHH.III.JJJ
port=KKKK
tomcatId=LLLLL
group=lb
#[channel.socket:MMM.NNN.OOO.PPP:QQQQ]
#host=MMM.NNN.OOO.PPP
#port=QQQQ
#tomcatId=RRRRR
#group=lb
#[channel.socket:SSS.TTT.UUU.VVV:WWWW]
#host=SSS.TTT.UUU.VVV
#port=WWWW
− 4-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
#tomcatId=XXXXX
#group=lb
上記の例では、AP サーバ二台での負荷分散を行う設定となる。
4.2.8 環境定義のまとめ
図 4.2-3 に、環境定義において、追加・変更・削除すべきファイル群に関する情報を
示す。
Web サーバ($APACHE_HOME)
conf/httpd.conf
(修正:mod_jk2 読込、最大同時接続数等)
conf/workers2.properties
(追加:$SPEC_HOME/config/workers2.properties)
modules/mod_jk2.so
(追加:必要に応じソースコードからビルド)
JMS サーバ($JBOSS_HOME)
bin/run.conf
(修正:付録 cluster/jms/bin/run.conf)
server/default/conf/log4j.xml
(修正:付録 cluster/jms/server/default/conf/log4j.xml)
server/default/conf/login-config.xml
(修正:$SPEC_HOME/config/login-config.xml)
server/default/deploy/jmsdb-ds.xml
(追加:$SPEC_HOME/config/jmsdb-ds.xml)
server/default/deploy/jms/hsqldb-jdbc-state-service.xml
(削除)
server/default/deploy/jms/hsqldb-jdbc2-service.xml
(削除)
server/default/deploy/jms/jbossmq-destinations-service.xml
(修正:付録 cluster/jms/server/default/deploy/jms/jbossmq-destinations-service.xml)
server/default/deploy/jms/postgres-jdbc-state-service.xml
(追加:$SPEC_HOME/config/postgres-jdbc-state-service.xml)
server/default/deploy/jms/postgres-jdbc2-service.xml
(追加:$SPEC_HOME/config/postgres-jdbc2-service.xml)
server/default/lib/postgresql.jar
(追加:DB サーバビルド時に併せてビルド)
AP サーバ群($JBOSS_HOME)
− 4-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
bin/run.conf
(修正:付録 cluster/ap/bin/run.conf)
server/all/conf/jk2.properties
(追加:付録 cluster/ap/server/all/conf/jk2.properties)
server/all/conf/log4j.xml
(修正:付録 cluster/ap/server/all/conf/log4j.xml)
server/all/conf/standardjboss.xml
(修正:付録 cluster/ap/server/all/conf/standardjboss.xml)
server/all/deploy/SPECjAppServer.ear
(追加:$SPEC_HOME/jars/SPECjAppServer.ear)
server/all/deploy/cluster-service.xml
(修正:$SPEC_HOME/config/cluster-service-ap[1-4].xml)
server/all/deploy/ear-deployer.xml
(修正:$SPEC_HOME/config/ear-deployer.xml)
server/all/deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml
(修正:付録 server/all/deploy/jbossweb-tomcat50.sar/META-INF/jboss-service.xml)
server/all/deploy/jbossweb-tomacat50.sar/tomcat50-service.jar
(修正:ソースコードを修正し再ビルド)
server/all/deploy/jbossweb-tomcat50.sar/server.xml
(修正:$SPEC_HOME/config/server-ap[1-4].xml)
server/all/deploy/jms/hajndi-jms-ds.xml
(修正:$SPEC_HOME/config/hajndi-jms-ds.xml)
server/all/deploy/spec-ds.xml
(追加:$SPEC_HOME/config/spec-ds.xml)
server/all/deploy/tc5-cluster-service.xml
(修正:$SPEC_HOME/config/tc5-cluster-service-ap[1-4].xml)
server/all/lib/postgresql.jar
(追加:DB サーバビルド時に併せてビルド)
Emulator($JBOSS_HOME)
bin/run.conf
(修正:付録 cluster/emulator/bin/run.conf)
server/default/conf/log4j.xml
(修正:付録 cluster/emulator/server/default/conf/log4j.xml)
server/default/deploy/emulator.ear
(追加:$SPEC_HOME/jars/emulator.ear)
Driver($SPEC_HOME)
bin/driver.sh
(修正:付録 cluster/driver/bin/driver.sh)
bin/setenv.sh
(修正:付録 cluster/driver/bin/setenv.sh)
− 4-28 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
config/appsserver
(修正:付録 cluster/driver/config/appserver)
config/cluster-service.xml.tmpl
(追加:付録 cluster/driver/config/cluster-service.xml.tmpl)
config/cluster-service-ap[1-4].xml
(追加:アプリケーションビルド時に自動追加)
config/db.properties.tmpl
(追加:付録 cluster/driver/config/db.properties.tmpl)
config/corpdb.properties
(修正:アプリケーションビルド時に自動修正)
config/mfgdb.properties
(修正:アプリケーションビルド時に自動修正)
config/ordsdb.properties
(修正:アプリケーションビルド時に自動修正)
config/suppdb.properties
(修正:アプリケーションビルド時に自動修正)
config/utildb.properties
(修正:アプリケーションビルド時に自動修正)
config/ear-deployer.xml.tmpl
(追加:付録 cluster/driver/config/ear-deployer.xml.tmpl)
config/ear-deployer.xml
(追加:アプリケーションビルド時に自動追加)
config/hajndi-jms-ds.xml.tmpl
(追加:付録 cluster/driver/config/hajndi-jms-ds.xml.tmpl)
config/hajndi-jms-ds.xml
(追加:アプリケーションビルド時に自動追加)
config/jboss-cluster.env
(追加:付録 cluster/driver/config/jboss-cluster.env)
config/jmsdb-ds.xml.tmpl
(追加:付録 cluster/driver/config/jmsdb-ds.xml.tmpl)
config/jmsdb-ds.xml
(追加:アプリケーションビルド時に自動追加)
config/login-config.xml.tmpl
(追加:付録 cluster/driver/config/login-config.xml.tmpl)
config/login-config.xml
(追加:アプリケーションビルド時に自動追加)
config/postgres-jdbc-state-service.xml.tmpl
(追加:付録 cluster/driver/config/postgres-jdbc-state-service.xml.tmpl)
config/postgres-jdbc-state-service.xml
(追加:アプリケーションビルド時に自動追加)
− 4-29 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
config/postgres-jdbc2-service.xml.tmpl
(追加:付録 cluster/driver/config/postgres-jdbc2-service.xml.tmpl)
config/postgres-jdbc2-service.xml
(追加:アプリケーションビルド時に自動追加)
config/run.properties
(修正:付録 cluster/driver/config/run.properties)
config/server.xml.tmpl
(追加:付録 cluster/driver/config/server.xml.tmpl)
config/server-ap[1-4].xml
(追加:アプリケーションビルド時に自動追加)
config/spec-ds.xml.tmpl
(追加:付録 cluster/driver/config/spec-ds.xml.tmpl)
config/spec-ds.xml
(追加:アプリケーションビルド時に自動追加)
config/tc5-cluster-service.xml.tmpl
(追加:付録 cluster/driver/config/tc5-cluster-service.xml.tmpl)
config/tc5-cluster-service-ap[1-4].xml
(追加:アプリケーションビルド時に自動追加)
config/workers2.properties.tmpl
(追加:付録 clsuter/config/workers2.properties.tmpl)
config/workers2.properties
(追加:アプリケーションビルド時に自動追加)
jboss-cluster-build.xml
(追加:付録 cluster/driver/jboss-cluster-build.xml)
schema/sql/schema_I.sql
(追加:付録 cluster/driver/schema/sql/schema_I.sql)
src/deploy/jboss-cluster/application.xml
(追加:付録 cluster/src/deploy/jboss-cluster/application.xml)
src/deploy/jboss-cluster/corp.jboss.cmp.xml
(追加:付録 cluster/src/deploy/jboss-cluster/corp.jboss.cmp.xml)
src/deploy/jboss-cluster/corp.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/corp.jboss.xml)
src/deploy/jboss-cluster/corp.xml
(追加:付録 cluster/src/deploy/jboss-cluster/corp.xml)
src/deploy/jboss-cluster/emulator-app.xml
(追加:付録 cluster/src/deploy/jboss-cluster/emulator-app.xml)
src/deploy/jboss-cluster/emulator-web.xml
(追加:付録 cluster/src/deploy/jboss-cluster/emulator-web.xml)
src/deploy/jboss-cluster/mfg.jboss.cmp.xml
(追加:付録 cluster/src/deploy/jboss-cluster/mfg.jboss.cmp.xml)
− 4-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
src/deploy/jboss-cluster/mfg.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/mfg.jboss.xml)
src/deploy/jboss-cluster/mfg.xml
(追加:付録 cluster/src/deploy/jboss-cluster/mfg.xml)
src/deploy/jboss-cluster/orders.jboss.cmp.xml
(追加:付録 cluster/src/deploy/jboss-cluster/orders.jboss.cmp.xml)
src/deploy/jboss-cluster/orders.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/orders.jboss.xml)
src/deploy/jboss-cluster/orders.xml
(追加:付録 cluster/src/deploy/jboss-cluster/orders.xml)
src/deploy/jboss-cluster/servlet.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/servlet.jboss.xml)
src/deploy/jboss-cluster/servlet.xml
(追加:付録 cluster/src/deploy/jboss-cluster/servlet.xml)
src/deploy/jboss-cluster/supplier.jboss.cmp.xml
(追加:付録 cluster/src/deploy/jboss-cluster/supplier.jboss.cmp.xml)
src/deploy/jboss-cluster/supplier.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/supplier.jboss.xml)
src/deploy/jboss-cluster/supplier.xml
(追加:付録 cluster/src/deploy/jboss-cluster/supplier.xml)
src/deploy/jboss-cluster/util.jboss.cmp.xml
(追加:付録 cluster/src/deploy/jboss-cluster/util.jboss.cmp.xml)
src/deploy/jboss-cluster/util.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/util.jboss.xml)
src/deploy/jboss-cluster/util.xml
(追加:付録 cluster/src/deploy/jboss-cluster/util.xml)
src/deploy/jboss-cluster/web.jboss.xml
(追加:付録 cluster/src/deploy/jboss-cluster/web.jboss.xml)
src/deploy/jboss-cluster/web.xml
(追加:付録 cluster/src/deploy/jboss-cluster/web.xml)
jars/postgresql.jar
(追加:DB サーバビルド時に併せてビルド)
jars/jbossall-client.jar
(追加:$JBOSS_HOME/client/jbossall-client.jar)
jars/javax.servlet.jar
(追加:$JBOSS_HOME/server/default/lib/javax.servlet.jar)
jars/jboss-j2ee.jar
(追加:$JBOSS_HOME/server/default/lib/jboss-j2ee.jar)
jars/SPECjAppServer.ear
(アプリケーションビルド時に生成)
− 4-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
jars/emulator.ear
(アプリケーションビルド時に生成)
図 4.2-3 環境定義のまとめ
− 4-32 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.3 評価手順
4.3.1 サーバプロセス群の起動
以下に示す手順でサーバプロセス群を起動する。
4.3.1.1 Web サーバの起動
Web サーバ(osswj)上で以下を実行する。
$ $APACHE_HOME/bin/httpd -d $APACHE_HOME
4.3.1.2 DB サーバの起動
DB サーバ(ossds)上で以下を実行し、サーバプロセスの起動およびデータベースの作
成を行う。
$ pg_ctl start -D /data/data
$ dropdb -U spec specdb
$ createdb -U spec specdb
JMS サーバ(osswj)上で以下を実行し、サーバプロセスの起動およびデータベースの作
成を行う。
$ pg_ctl start -D /usr/local/pgsql/data
$ dropdb -U jms jmsdb
$ createdb -U jms jmsdb
4.3.1.3 JMS サーバの起動
JMS サーバ(osswj)上で以下を実行する。
$ cd $JBOSS_HOME
$ ./bin/run.sh -b <AP サーバとの境界 IP アドレス>
− 4-33 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.3.1.4 Emulator の起動
Emulator(ossem)上で以下を実行する。
$ cd $JBOSS_HOME
$ ./bin/run.sh
4.3.1.5 AP サーバ群の起動
AP サーバ群(ossas1∼ossas4)上で以下を実行する。
$ cd $JBOSS_HOME
$ ./bin/run.sh -c all -b <JMS サーバとの境界 IP アドレス>
サーバプロセスの起動は、実際に使用する AP サーバ上でのみ行えば良い。
4.3.2 データベースへの初期データの投入
以下の手順でデータベースへの初期データ投入を行う。
4.3.2.1 データベーススキーマの決定
本環境においては、データベーススキーマとして、以下の SPECjAppServer2004 付
属の標準 SQL スキーマを採用し、
- $SPEC_HOME/schema/sql/∼.sql
上記に以下の索引を追加することで検索のチューニングを行う
CREATE INDEX C_ci_customerid_idx ON C_customerinventory (ci_customerid);
上記の内容は、以下の 4 章付録ファイルにおかれる。
- cluster/driver/schema/sql/schema_I.sql
− 4-34 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.3.2.2 データベース上への表および索引の作成
以下の手順で表および索引を作成する。
データベーススキーマファイル群の DB サーバへの複製
SPECjAppServer2004 付属の標準 SQL スキーマおよび、付録の索引ファイルを DB
サーバ上に複製する。
表および索引の作成
DB サーバ上で以下を実行する事で、表および索引を作成する。schema_∼.sql は、複
製されたファイル群である。
$ psql -U spec specdb < schema_C.sql
$ psql -U spec specdb < schema_M.sql
$ psql -U spec specdb < schema_O.sql
$ psql -U spec specdb < schema_S.sql
$ psql -U spec specdb < schema_U.sql
$ psql -U spec specdb < schema_I.sql
4.3.2.3 初期データ投入プログラムの実行
「2.9.3 初期データ投入プログラムの実行」の手順に従う。
4.3.2.4 データベースの統計解析および索引の再構成
初期データ投入プログラムの実行後、DB サーバ上で以下を実行する事により、デー
タベースの統計解析および索引の再構成を行う。
$ echo
REINDEX DATABASE specdb
¦ psql -U spec specdb
$ vacuumdb --full --analyze -U spec specdb
4.3.3 ベンチマーク測定の実施
4.3.3.1 測定条件パラメータの設定
本評価においては、測定条件は以下の通りとする。
− 4-35 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
txRate(Load Injection Rate)
本評価においては、最低負荷から最高負荷まで、5 段階の負荷を与える。ただし負荷
の値は等間隔ではなく、高負荷になるほど間隔をより大きくする。
rampUp
600 秒を指定する。
stdyState
3600 秒を指定する。
rampDown
300 秒を指定する。
triggerTime
負荷の値に応じてそれぞれ適切に指定する。
その他のパラメータ
jboss-cluster.env で指定する各種パラメータは、ディフォルト(付録ファイルのまま)
を採用する。
AP サーバ台数
AP サーバ台数は、1 台から 4 台まで、4 段階で測定を行う。その際の最高段階の負荷
に関しては、AP サーバ 2 台の場合、AP サーバ 1 台の場合の 2 倍の負荷を、AP サーバ
3 台の場合、AP サーバ 1 台の場合の 3 倍の負荷を、AP サーバ 4 台の場合、AP サーバ 1
台の場合の 4 倍の負荷を、それぞれ与える。
カーネルバージョン
本評価においてはカーネル 2.4 およびカーネル 2.6 両バージョンでそれぞれ測定を行
う。従って測定パターン数は合計 40 パターン(5×4×2)となる。
4.3.3.2 負荷測定プログラムの実行
ベンチマーク測定プログラムの実行直前に、各計算機上で以下を実行する事で、負荷
状況の測定を開始する。
$ sar -A -o sar.out 60 77
$ iostat -dkt 60.77 > iostat.out
$ vmstat 60 77 > vmstat.out
− 4-36 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
測定間隔は 60 秒、測定時間は 77 分(測定時間 75 分にドライバ起動時間分の余裕を加
えたもの)とする。
4.3.3.3 ベンチマーク測定プログラムの実行
「2.11.3 ベンチマーク測定プログラムの実行」の手順に従う。
4.3.4 サーバプロセス群の停止
ベンチマーク測定プログラムの終了後、以下の手順でサーバプロセス群を停止する。
4.3.4.1 AP サーバ群の停止
AP サーバ群(ossas1∼ossas4)を起動した端末上で、それぞれ CTRL-C を入力する。
4.3.4.2 Emulator の停止
Emulator 用 AP サーバ(ossem)を起動した端末上で、CTRL-C を入力する。
4.3.4.3 JMS サーバの停止
JMS サーバ(osswj)を起動した端末上で CTRL-C を入力する。
4.3.4.4 DB サーバの停止
JMS 用 DB サーバ(osswj)上で以下を実行し、サーバプロセスを停止する。
$ pg_ctl stop -D /usr/local/pgsql/data
AP 用 DB サーバ(ossds)上で以下を実行し、サーバプロセスを停止する。
$ pg_ctl stop -D /data/data
− 4-37 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.3.4.5 Web サーバの停止
Web サーバ(osswj)上で以下を実行し、サーバプロセスを停止する。
$ kill `cat $APACHE_HOME/run/httpd.pid`
− 4-38 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.4 評価結果
本評価においては、AP サーバを 1 台から 4 台まで増加させた際の測定を行い、それ
ぞれの台数毎に最低負荷から最大負荷まで 5 段階の負荷を与えた。最大負荷の値は、AP
サーバ台数毎にそれぞれ異なり、AP サーバ 2 台の時は AP サーバ 1 台の時の 2 倍の負
荷を、AP サーバ 3 台の時は AP サーバ 1 台の時の 3 倍の負荷を、AP サーバ 4 台の時は
AP サーバ 1 台の時の 4 倍の負荷を、それぞれ与えた。
また、カーネルバージョン間比較の評価と同様に、カーネル 2.4 とカーネル 2.6 に対
応する 2 つの Linux ディストリビューションそれぞれにおいて、上記の測定を行った。
つまり合計 40(4×5×2)パターンの測定を行った。
以下の評価結果グラフにおいて、グラフの横軸(負荷)の値および、処理性能の縦軸の値
に関しては、本評価結果においては絶対値を公開しない。絶対値を公開できない理由は
「1.2.2 SPECjAppServer2004 評価結果の公開について」で述べられる。
4.4.1 負荷(規模)と処理性能に関する測定結果
負荷と処理性能に関する測定結果を以下に示す。Dealer 処理性能と Mfg 処理性能の和
が、全体処理性能となる。横軸がシステムに与える負荷およびデータベースの規模に対
応し、縦軸が単位時間あたりのトランザクション処理性能を表す。理想直線は、低負荷
時における処理性能値を、負荷の比率に応じて直線化したものである。以下のグラフ群
において、AP サーバ 1 台の時の最大負荷は、横軸の「B」に対応し、以下 AP サーバ 2
台の時は「C」、AP サーバ 3 台の時は「D」、AP サーバ 4 台の時は「E」に、それぞれ対
応する。
− 4-39 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と処理性能の関係(全体)
理想直線
処理性能
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
A
B
C
D
E
負荷
図 4.4-1 負荷と処理性能の関係(全体)
負荷と処理性能の関係(Dealer)
理想直線
処理性能
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
A
B
C
D
E
負荷
図 4.4-2 負荷と処理性能の関係(Dealer)
− 4-40 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と処理性能の関係(Mfg)
理想直線
処理性能
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
A
C
B
E
D
負荷
図 4.4-3 負荷と処理性能の関係(Mfg)
4.4.2 負荷(規模)と応答時間等に関する測定結果
負荷と平均応答時間に関する測定結果を以下に示す。Dealer 系のトランザクションと
して Purchase, Manage, Browse が、Mfg 系のトランザクションとして Mfg が、それぞ
れ対応する。
負荷と平均応答時間の関係(Purchase)
要求応答時間
平均応答時間(秒)
2
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
1.5
1
0.5
0
A
B
C
D
E
負荷
図 4.4-4 負荷と平均応答時間の関係(Purchase)
− 4-41 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と平均応答時間の関係(Manage)
要求応答時間
平均応答時間(秒)
2
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
1.5
1
0.5
0
A
C
B
D
E
負荷
図 4.4-5 負荷と平均応答時間の関係(Manage)
負荷と平均応答時間の関係(Browse)
平均応答時間(秒)
5
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
4
3
2
要求応答時間
1
0
A
B
C
D
E
負荷
図 4.4-6 負荷と平均応答時間の関係(Browse)
− 4-42 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷と平均応答時間の関係(Mfg)
要求応答時間
平均応答時間(秒)
5
RHEL2.1(2.4) AP1台
SLES9(2.6) AP1台
RHEL2.1(2.4) AP2台
SLES9(2.6) AP2台
RHEL2.1(2.4) AP3台
SLES9(2.6) AP3台
RHEL2.1(2.4) AP4台
SLES9(2.6) AP4台
4
3
2
1
0
A
B
C
D
E
負荷
図 4.4-7 負荷と平均応答時間の関係(Mfg)
4.4.3 計算機群の負荷状況に関する測定結果
計算機群の負荷状況に関しては、比較的負荷が高い AP サーバ群、DB サーバおよび
Web/JMS サーバの測定結果のみを示す。AP サーバ群に関しては、4 台の計算機の平均
値を示す。
4.4.3.1 CPU 負荷状況に関する測定結果
CPU 負荷状況に関しては、sar –u で取得可能な%user, %sys 値および、sar –w で取
得可能な cswch/s 値をそれぞれ示す。
− 4-43 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
CPU負荷(%)
負荷とCPU負荷の関係(APサーバ群)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
負荷
RHEL2.1(2.4) %user AP1台
RHEL2.1(2.4) %sys AP1台
SLES9(2.6) %user AP1台
SLES9(2.6) %sys AP1台
RHEL2.1(2.4) %user AP2台
RHEL2.1(2.4) %sys AP2台
SLES9(2.6) %user AP2台
SLES9(2.6) %sys AP2台
RHEL2.1(2.4) %user AP3台
RHEL2.1(2.4) %sys AP3台
SLES9(2.6) %user AP3台
SLES9(2.6) %sys AP3台
RHEL2.1(2.4) %user AP4台
RHEL2.1(2.4) %sys AP4台
SLES9(2.6) %user AP4台
SLES9(2.6) %sys AP4台
図 4.4-8 負荷と CPU 負荷(利用率)の関係(AP サーバ群)
CPU負荷(%)
負荷とCPU負荷の関係(DBサーバ)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
負荷
RHEL2.1(2.4) %user AP1台
RHEL2.1(2.4) %sys AP1台
SLES9(2.6) %user AP1台
SLES9(2.6) %sys AP1台
RHEL2.1(2.4) %user AP2台
RHEL2.1(2.4) %sys AP2台
SLES9(2.6) %user AP2台
SLES9(2.6) %sys AP2台
RHEL2.1(2.4) %user AP3台
RHEL2.1(2.4) %sys AP3台
SLES9(2.6) %user AP3台
SLES9(2.6) %sys AP3台
RHEL2.1(2.4) %user AP4台
RHEL2.1(2.4) %sys AP4台
SLES9(2.6) %user AP4台
SLES9(2.6) %sys AP4台
図 4.4-9 負荷と CPU 負荷(利用率)の関係(DB サーバ)
− 4-44 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とCPU負荷の関係(Web/JMSサーバ)
100
CPU負荷(%)
80
60
40
20
0
B
A
C
D
E
負荷
RHEL2.1(2.4) %user AP1台
RHEL2.1(2.4) %sys AP1台
SLES9(2.6) %user AP1台
SLES9(2.6) %sys AP1台
RHEL2.1(2.4) %user AP2台
RHEL2.1(2.4) %sys AP2台
SLES9(2.6) %user AP2台
SLES9(2.6) %sys AP2台
RHEL2.1(2.4) %user AP3台
RHEL2.1(2.4) %sys AP3台
SLES9(2.6) %user AP3台
SLES9(2.6) %sys AP3台
RHEL2.1(2.4) %user AP4台
RHEL2.1(2.4) %sys AP4台
SLES9(2.6) %user AP4台
SLES9(2.6) %sys AP4台
図 4.4-10 負荷と CPU 負荷(利用率)の関係(Web/JMS サーバ)
負荷とCPU負荷の関係(APサーバ群)
CPU負荷(cswch/s)
10000
8000
RHEL2.1(2.4) cswch/s AP1台
SLES9(2.6) cswch/s AP1台
RHEL2.1(2.4) cswch/s AP2台
SLES9(2.6) cswch/s AP2台
RHEL2.1(2.4) cswch/s AP3台
SLES9(2.6) cswch/s AP3台
RHEL2.1(2.4) cswch/s AP4台
SLES9(2.6) cswch/s AP4台
6000
4000
2000
0
A
B
C
D
E
負荷
図 4.4-11 負荷と CPU 負荷(コンテキストスイッチ)の関係(AP サーバ群)
− 4-45 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とCPU負荷の関係(DBサーバ)
CPU負荷(cswch/s)
10000
8000
RHEL2.1(2.4) cswch/s AP1台
SLES9(2.6) cswch/s AP1台
RHEL2.1(2.4) cswch/s AP2台
SLES9(2.6) cswch/s AP2台
RHEL2.1(2.4) cswch/s AP3台
SLES9(2.6) cswch/s AP3台
RHEL2.1(2.4) cswch/s AP4台
SLES9(2.6) cswch/s AP4台
6000
4000
2000
0
B
A
C
D
E
負荷
図 4.4-12 負荷と CPU 負荷(コンテキストスイッチ)の関係(DB サーバ)
負荷とCPU負荷の関係(Web/JMSサーバ)
CPU負荷(cswch/s)
10000
8000
RHEL2.1(2.4) cswch/s AP1台
SLES9(2.6) cswch/s AP1台
RHEL2.1(2.4) cswch/s AP2台
SLES9(2.6) cswch/s AP2台
RHEL2.1(2.4) cswch/s AP3台
SLES9(2.6) cswch/s AP3台
RHEL2.1(2.4) cswch/s AP4台
SLES9(2.6) cswch/s AP4台
6000
4000
2000
0
B
A
C
D
E
負荷
図 4.4-13 負荷と CPU 負荷(コンテキストスイッチ)の関係(Web/JMS サーバ)
4.4.3.2 ネットワーク負荷状況に関する測定結果
ネットワーク負荷状況に関しては、
sar –n DEV で取得可能な rxbyt/s 値および txbyt/s
値をそれぞれ示す。
− 4-46 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とネットワーク負荷の関係(APサーバ群)
RHEL2.1(2.4) rxbyt/s AP1台
RHEL2.1(2.4) txbyt/s AP1台
SLES9(2.6) rxbyt/s AP1台
SLES9(2.6) txbyt/s AP1台
RHEL2.1(2.4) rxbyt/s AP2台
RHEL2.1(2.4) txbyt/s AP2台
SLES9(2.6) rxbyt/s AP2台
SLES9(2.6) txbyt/s AP2台
RHEL2.1(2.4) rxbyt/s AP3台
RHEL2.1(2.4) txbyt/s AP3台
SLES9(2.6) rxbyt/s AP3台
SLES9(2.6) txbyt/s AP3台
RHEL2.1(2.4) rxbyt/s AP4台
RHEL2.1(2.4) txbyt/s AP4台
SLES9(2.6) rxbyt/s AP4台
SLES9(2.6) txbyt/s AP4台
ネットワーク負荷(byte/s)
10000000
8000000
6000000
4000000
2000000
0
A
B
C
D
E
負荷
図 4.4-14 負荷とネットワーク負荷の関係(AP サーバ群)
負荷とネットワーク負荷の関係(DBサーバ)
ネットワーク負荷(byte/s)
10000000
8000000
6000000
4000000
2000000
0
A
B
C
D
E
負荷
RHEL2.1(2.4) rxbyt/s AP1台
RHEL2.1(2.4) txbyt/s AP1台
SLES9(2.6) rxbyt/s AP1台
SLES9(2.6) txbyt/s AP1台
RHEL2.1(2.4) rxbyt/s AP2台
RHEL2.1(2.4) txbyt/s AP2台
SLES9(2.6) rxbyt/s AP2台
SLES9(2.6) txbyt/s AP2台
RHEL2.1(2.4) rxbyt/s AP3台
RHEL2.1(2.4) txbyt/s AP3台
SLES9(2.6) rxbyt/s AP3台
SLES9(2.6) txbyt/s AP3台
RHEL2.1(2.4) rxbyt/s AP4台
RHEL2.1(2.4) txbyt/s AP4台
SLES9(2.6) rxbyt/s AP4台
SLES9(2.6) txbyt/s AP4台
図 4.4-15 負荷とネットワーク負荷の関係(DB サーバ)
− 4-47 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷とネットワーク負荷の関係(Web/JMSサーバ)
ネットワーク負荷(byte/s)
10000000
8000000
6000000
4000000
2000000
0
A
B
C
D
E
負荷
RHEL2.1(2.4) rxbyt/s AP1台
RHEL2.1(2.4) txbyt/s AP1台
SLES9(2.6) rxbyt/s AP1台
SLES9(2.6) txbyt/s AP1台
RHEL2.1(2.4) rxbyt/s AP2台
RHEL2.1(2.4) txbyt/s AP2台
SLES9(2.6) rxbyt/s AP2台
SLES9(2.6) txbyt/s AP2台
RHEL2.1(2.4) rxbyt/s AP3台
RHEL2.1(2.4) txbyt/s AP3台
SLES9(2.6) rxbyt/s AP3台
SLES9(2.6) txbyt/s AP3台
RHEL2.1(2.4) rxbyt/s AP4台
RHEL2.1(2.4) txbyt/s AP4台
SLES9(2.6) rxbyt/s AP4台
SLES9(2.6) txbyt/s AP4台
図 4.4-16 負荷とネットワーク負荷の関係(Web/JMS サーバ)
− 4-48 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.5 分析と考察
以下に個々の測定結果に関して、特に以下の観点から見た分析および考察を行う。
・
カーネル 2.4 とカーネル 2.6 の、高負荷時における性能比較
・
計算機の役割(AP サーバ群、DB サーバ、Web/JMS サーバ)毎に見た負荷状況
・
AP サーバ台数の違いと性能限界の関係
4.5.1 負荷(規模)と処理性能に関する分析と考察
負荷と処理性能の関係は、理想的(計算機が無限の処理性能を持つ)には、低負荷時にお
ける直線が、高負荷時にもそのまま伸びる事が想定される。本測定結果においては、高
負荷時には、カーネル 2.4 の処理性能が、わずかではあるが劣化することが、
「負荷と処
理性能の関係(全体)」(図 4.4-1)および「負荷と処理性能の関係(Dealer)」グラフ(図 4.4-2)
群から分かる。ただし「負荷と処理性能の関係(Mfg)」グラフ(図 4.4-3)においては、カー
ネル 2.4 およびカーネル 2.6 共に、ほぼ理想通りの値となっている。Dealer 系トランザ
クションの方が、Mfg 系トランザクションよりも性能劣化の度合いが高いのは、カーネ
ルバージョン間比較(AP サーバ単体)の測定結果とも一致する。
また、AP サーバ台数と負荷ならびに処理性能の関係について、AP サーバ台数が 3 台
までの場合、最大負荷を与えた場合においても処理性能はほぼ理想値を保っているが、
AP サーバ台数が 4 台の時に、わずかながら処理性能が低下している事が分かる。
4.5.2 負荷(規模)と応答時間に関する分析と考察
負荷と平均応答時間の関係は、概ね高負荷になるに従って、応答時間が遅くなる傾向
が、
「負荷と平均応答時間の関係(Purchase/Manage/Browse/Mfg)」結果グラフ群(図 4.4.4
∼図 4.4.7)から分かる。また、Dealer 系トランザクション(Purchase, Manage, Browse)
トランザクションに関しては、カーネル 2.4 の方が、カーネル 2.6 に比して、高負荷時
の遅延の度合いが高い事もグラフから読み取れる。ただし Mfg トランザクションに関し
ては、ほぼ同じ値(最高負荷時にはカーネル 2.4 の方がわずかながら高性能)であることも
グラフから分かる。
また、AP サーバ台数と負荷並びに応答時間の関係について、AP サーバが 3 台までの
場合、最大負荷を与えた場合においても応答時間は短いが、AP サーバ台数が 4 台の時
に、応答時間が明らかに長くなっている事が分かる。
− 4-49 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.5.3 計算機群の負荷状況に関する分析と考察
4.5.3.1 CPU の負荷状況に関する分析と考察
計算機の役割別の観点から見ると、カーネルバージョン間比較(AP サーバ単体)におい
ては、AP サーバの負荷が最も高かったが、本評価においては、DB サーバの CPU 負荷
の方が、高負荷時にはより高くなっていることが、「負荷と CPU 負荷の関係(AP サーバ
群/DB サーバ/Web/JMS サーバ)」結果グラフ群(図 4.4.8∼図 4.4.13)から分かる。これは
複数の AP サーバ群が同時にひとつの DB サーバにアクセスする為、結果として DB サ
ーバがより効率的に使用されるようになったと言える。Web/JMS サーバに関しては、依
然として低負荷であり、より高負荷に耐えうる余裕があると言えるだろう。また、全て
のサーバ群において、与える負荷に応じて CPU 負荷も併せて増大する傾向が、結果グ
ラフ群から読み取れる。
また、AP サーバ台数と CPU 負荷の関係について、AP サーバ台数それぞれのパター
ン(1 台∼4 台)に対して最大負荷を与えた時に、CPU 利用率が最も高くなることが分か
る(図 4.4-8)。他のサーバ(DB および Web/JMS)においては、CPU 利用率は直線的な伸
びを示しているのとは対照的である。
また、Linux カーネル 2.4 とカーネル 2.6 の比較と言う意味においては、高負荷時の
コンテキストスイッチ回数が、カーネル 2.6 の方が、カーネル 2.4 に比べより少ない事
が分かる(図 4.4-11)。
一般的に、J2EE による多層 C/S システムにおいては、高性能クラスタ或は高可用性
クラスタを構築する場合、AP サーバを複数台用意する事が多いかと思われるが、本測定
結果においても、複数の AP サーバ群を用意する事で、より高負荷に耐えうる環境を構
築できたと考える。ただし AP サーバ群だけをむやみに増やしても、そのまま性能向上
につながるとは限らない。本測定環境においては、高負荷時において DB サーバの負荷
が高くなっており、ボトルネックが AP サーバから DB サーバへと移りつつある。
4.5.3.2 ネットワークの負荷状況に関する分析と考察
計算機の役割別の観点から見ると、Web/JMS サーバの通信が、他のサーバ群に比して
より活発である事が、「負荷とネットワーク負荷の関係(AP サーバ群/DB サーバ
/Web/JMS サーバ)」結果グラフ群(図 4.4-14∼図 4.4-16)から分かる。
これは Web/JMS サーバと、複数台の AP サーバ群との通信が行われる事を鑑みれば、
順当な結果だろう。また、全てのサーバ群において、与える負荷に応じて通信量も併せ
て増大する傾向が、結果グラフ群から読み取れる。
− 4-50 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
4.5.4 まとめ
本評価において、カーネルバージョン間比較と同様に、同一の評価手順を用いて、カ
ーネル 2.4 およびカーネル 2.6 両方の Linux ディストリビューション上で評価環境を構
築し、測定を実施可能な事が確認できた。本評価手順を、新旧両システムの性能・信頼
性評価に用いる事が可能である。
また、カーネルバージョン間比較と同様に、本評価手順の一部を再利用する事で、デ
ータベース部分や OS 分を他のもの(商用或は他の OSS)に置き換えた評価手順の確立は、
比較的容易であると言えるだろう。
また、計算機の役割毎の負荷の観点から見た場合、AP サーバの台数を増やす事で、よ
り高負荷に耐えうる、高性能クラスタ環境を構築可能な事が、結果として得られた。た
だし、むやみに AP サーバの台数のみを増やしても、システム全体の性能向上は望めな
い。AP サーバ台数を増やす事で、次はシステムのどの部分がボトルネックになるのかを
考慮しながら全体の負荷バランスを見積もる事が重要だろう。
また、カーネル 2.4 とカーネル 2.6 の性能比較と言う観点から見た場合、カーネルバ
ージョン間比較(AP サーバ単体)と同様に、高負荷時にはややカーネル 2.6 の方が高性能
であると言う結果が得られた。ただし本比較は、比較的古い(カーネル 2.6 の新機能が取
り込まれていない)カーネル 2.4 と、(評価時点においてほぼ最新の)カーネル 2.6 の比較
である事に注意が必要である。カーネル 2.6 の新機能群が取り込まれたカーネル 2.4 と、
カーネル 2.6 の比較結果は、自ずから上記とは異なる結果になる事が予想される。
また本測定は、各々のパターンで 1 回のみの測定しか行っておらず、特に高負荷時に
おいては、測定結果に多少のぶれがあることが考えられる。本来的には、それぞれのパ
ターン毎に複数回の測定を行い、平均値を求めるべきであろう。
− 4-51 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5 トランザクション特性評価
5.1 目的および概要
ベンチマーク評価では、特定のシステム環境下における性能解析を行うために、ベン
チマーク・プログラムを、あらかじめ定められた条件下で実行させて、スループット性
能や応答時間を求めるのが一般的である。
本評価では、ベンチマーク・ツールを用いて、実ユーザ環境下への近似化を図る試み
をするとともに、サーバ内でのプログラム動作の状況を検証する試みをする。
各評価を説明する図を、図 5.1-1 に示す。以下、各評価の概要を記述する。
5.1.1 実ユーザ環境下への近似化とそれによる傾向解析
SPECjAppServer2004 では、3 種類のトランザクション・タイプの投入割合があらか
じめ定められている。この 3 種類のトランザクション・タイプの投入割合を変化させる
ことによって、SPECjAppServer2004 を用いて、個々のユーザの動作環境に類似させて
性能検証することができるのではないかと考えた。
そこで、本評価では、以下 2 点を目的に活動を推進することにした。
• 投入割合を指定したパラメータを変更した場合に、実際に、指定通りにトランザクショ
ン・パターンを発生させることができることを確認する。
• トランザクション・タイプの投入割合を変更した場合のスループットの変動や、計算機
資源の利用状況の変動を観測する。
これにより、参照系トランザクションが多いモデルや、更新系トランザクションが多
いモデルの傾向解析を、SPECjAppServer2004 ベースで実施することが可能になる。
なお、今回の評価では、このような傾向解析の一例として、AP サーバが 1 台構成(非
クラスタ構成)の場合のスループット解析を実施した結果を記述する。
5.1.2 プログラム動作の解析
システム構成時に、想定した性能が出せないケースがある。また、トランザクション
負荷の増大等に伴い、システム性能がダウンする事象が発生するケースもある。このよ
うなケースでは、システムの設計者や管理者は、システム全体の動作状況はもとより、
プログラムの動作状況を掌握し、システム性能の阻害要因を究明しなければならない。
こうしたプログラムの動作状況の掌握を支援することを目的に、JBoss のインタセプ
タ機能を用いて、EJB コンテナのメソッド毎に実行回数や実行時間の平均値等を取得で
きるツール(EJB Profiler)を用意する。
− 5-1 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
そして、5.1.1 に示す傾向解析に加えて、EJB Profiler を用いて、SPECjAppServer2004
にかかる負荷の変動に伴って、どのような手続き(EJB コンテナ)の動作が大きく変化
するかを解析するとともに、EJB Profiler の有効性を検証する。
なお、今回の評価では、5.1.1 同様、AP サーバが 1 台構成(非クラスタ構成)の場合
のスループット解析を実施した結果を記述する。
トランザクション特性評価
実ユーザ環境
下への近似
参照+更新系
:x%
更新系:y%
DB
参照系:z%
スループット
x%,y%,z%を変更することで、
サイト環境に近似
コンテナ毎に、動作回数と
経過時間を計測
標準時
動作回数
x%,y%,z%変更時
プログラム
負荷
動作の解析
図 5.1-1 トランザクション特性の解析
5.1.3 凡例
以降、本評価では、表 5.1-1 および 5.1-2 の凡例を用いて記述するものとする。
表 5.1-1 本評価で使用する凡例(ホスト)
略号
説明
DB_HOST
DB サーバ(PostgreSQL)を実行するホスト
AP_HOST
AP サーバ(JBoss)を実行するホスト
WEB_HOST
Web サーバ(Apache httpd)を実行するホスト
JMS_HOST
JMS サーバ(JBoss)および JMS サーバ用 DB サーバ
(PostgreSQL)を実行するホスト
− 5-2 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
略号
説明
DRIVER_HOST
Load Driver を実行するホスト
EMULATOR_HOST Supplier Emulator(JBoss)を実行するホスト
表 5.1-2 本評価で使用する凡例(ディレクトリ)
略号
説明
JAVA_DIR
JDK のインストール先ディレクトリ
ANT_DIR
Ant のインストール先ディレクトリ
PG_DIR
PostgreSQL のインストール先ディレクトリ
JBOSS_DIR
JBoss のインストール先ディレクトリ
SPEC_DIR
SPECjAppServer2004 インストール先ディレクトリ
なお、インストールおよび設定手順説明に際して、コマンドやパラメータ値と明示し
て区別するために、これらの略号および環境により変わる部分を、必要に応じて斜体に
より表記することとする。
− 5-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.2 環境定義
本評価における SPECjAppServer2004 の環境定義について記載する。
5.2.1
ハードウェアおよびネットワーク構成
本評価で用いた計算機の情報を、表 5.2-1∼表 5.2-3 に示す。
表 5.2-1 DRIVER_HOST/WEB_HOST/EMULATOR_HOST/JMS_HOST
Type
HITACHI HA8000/110
CPU/Memory
2 x 1.0GHz Pentium III, 512MB Memory
Disk
18GB, SCSI
Network
Intel PRO/1000 MT Server Adaptor
Hostname
ap1, ap2, ap3, ap4
IP Address
192.168.61.11,
192.168.61.12,
192.168.61.13,
192.168.61.14
表 5.2-2 AP_HOST
Type
Dell PowerEdge 1600SC
CPU/Memory
2 x 2.8GHz Xeon, 2GB Memory
(ただし、評価は 1CPU で実施)
Disk
108GB (36GB x 3, SCSI) RAID-5
Network
onboard Gigabit Ethernet (Intel)
Hostname
web2
IP Address
192.168.61.15
表 5.2-3 DB_HOST
Type
EPSON DIRECT Endeavor MT7000
CPU/Memory
3.0GHz Pentium IV (Hyper Thread), 1GB Memory
Disk
20GB, IDE
Network
Intel PRO/100MT Desktop Adaptor
Hostname
db1
IP Address
192.168.61.16
− 5-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
各計算機は、GIGABIT INTELLIGENT SWITCHING HUB FMG-226TX にて接続し
ている。図 5.2-1 にネットワーク構成を示す。
DRIVER_HOST
ap1
11
14
JMS_HOST
ap4
WEB_HOST
ap2
12
15
AP_HOST
web2
EMULATOR_HOST
ap3
13
16
DB_HOST
db1
192.168.61.×
図 5.2-1 ネットワーク構成
ソフトウェア一覧
5.2.2
本評価において使用したソフトウェエアを、サーバ毎に表 5.2-4∼表 5.2-9 に示す。
表 5.2-4 DRIVER_HOST ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS3.0(U3)
JDK
j2sdk-1.4.2_04
J2EE クライアント
JBoss-4.0.0
ビルド・ツール
Apache ant 1.6.2
カーネル・トレース・ツール
sysstat 5.0.6
表 5.2-5 WEB_HOST ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS3.0(U3)
Web サーバ
Apache-2.0.46(OS 付属のもの)
Web-AP コネクタ
mod_jk2.0.4
カーネル・トレース・ツール
sysstat 5.0.6
表 5.2-6 EMULATOR_HOST ソフトウェア
分類
OS
ソフトウェア
Red Hat Enterprise Linux AS3.0(U3)
− 5-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
分類
ソフトウェア
JDK
J2sdk-1.4.2_04
Emulator サーバ(Web コンテナ) JBoss-4.0.0
カーネル・トレース・ツール
sysstat 5.0.6
表 5.2-7 JMS_HOST ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS3.0(U3)
JDK
j2sdk-1.4.2_04
JMS サーバ
JBoss-4.0.0
JMS 用 DB サーバ
PostgreSQL 7.4.6
ビルド・ツール
Apache ant 1.6.2
カーネル・トレース・ツール
sysstat 5.0.6
表 5.2-8 AP_HOST ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS3.0(U3)
JDK
j2sdk-1.4.2_04
AP サーバ(J2EE サーバ)
JBoss-4.0.4
カーネル・トレース・ツール
sysstat 5.0.6
表 5.2-9 DB_HOST ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS3.0(U3)
JDK
j2sdk-1.4.2_04
DB サーバ
PostgreSQL 7.4.6
ビルド・ツール
Apache ant 1.6.2
カーネル・トレース・ツール
sysstat 5.0.6
5.2.3 ソフトウェアの調達
本評価において使用するソフトウェアは、SPECjAppServer2004 を除いてダウンロ
ードにより入手可能である。
表 5.2-10 ソフトウェア入手先
入手先 URL
ソフトウェア
OS
http://www.redhat.co.jp (有償)
JDK
http://java.sun.com/products/archive/index.html
− 5-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
入手先 URL
ソフトウェア
Apache ant
http://ant.apache.org/
PostgreSQL
http://www.postgresql.org
JBoss
http://www.jboss.org/
sysstat
http://perso.wanadoo.fr/sebastien.godard/
5.2.4 ソフトウェアのインストール先ディレクトリ
本評価において使用するソフトウェアのインストール先ディレクトリは、全ホストに
共通して表 5.2-11 に示す通りとする。本評価では全ホスト上でユーザ”spec”を作成し、
基本的には、”spec”のホームディレクトリ”/home/spec”直下にインストールする。
表 5.2-11 ソフトウェアのディレクトリ
ソフトウェア
ディレクトリ
本評価における略号
JDK
/home/spec/j2sdk1.4.2_04
JAVA_DIR
Apache ant
/home/spec/apache-ant-1.6.2
ANT_DIR
PostgreSQL
/home/spec/pgsql
PG_DIR
JBoss
/home/spec/jboss-4.0.0
JBOSS_DIR
sysstat
/usr/lib/sa
略号なし
SPECjAppServer2004
/home/spec/SPEC
SPEC_DIR
5.2.5 パラメータ情報
ソフトウェアをインストール・設定するにあたり、各パラメータを設定した。本評価
においてパラメータを設定した環境定義ファイルと、インストールに必要なファイルを
5 章付録ファイルにて提供する。これらのファイルは、5 章付録ファイルのディレクトリ
ENV_SET 以下に格納しており、ファイル一覧は図 5.2-2 に示す通りである。
なお、別の環境においてインストール・設定を行う際には、各パラメータを環境に応
じて修正する必要がある。
AP_HOST
+ JBOSS_DIR
+ bin
- run.conf
+ server
+ postgres
+ conf
- jk2.properties
- log4j.xml
- standardjaws.xml
− 5-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- standardjbosscmp-jdbc.xml
+ deploy
- ear-deployer.xml
+ jbossweb-tomcat50.sar
- server.xml
+ jms
- jms-ds.xml
- postgres-jdbc2-service.xml
- postgres-ds.xml
DB_HOST
+ PGDATA
- pg_hba.conf
- postgresql.conf
DRIVER_HOST
+ SPEC_DIR
+ bin
- ECstat.sh
- driver.sh
+ config
- appserver
- corpdb.properties
- jboss.env
- mfgdb.properties
- ordsdb.properties
- suppdb.properties
- utildb.properties
- jboss-build.xml
+ src
+ deploy
+ jboss
- corp.jboss.cmp.xml
- corp.jboss.xml
- jndi.properties
- mfg.jboss.cmp.xml
- mfg.jboss.xml
- orders.jboss.cmp.xml
- orders.jboss.xml
- servlet.jboss.xml
- supplier.jboss.cmp.xml
- supplier.jboss.xml
- util.jboss.cmp.xml
- util.jboss.xml
- web.jboss.xml
EMULATOR_HOST
+ JBOSS_DIR
+bin
- run.conf
JMS_HOST
− 5-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
+ JBOSS_DIR
+ bin
- run.conf
+ docs
+ examples
+ jms
+ standalone
- build.xml
- jboss-service.xml
+ server
+ jbossmq
+ conf
- standardjbosscmp-jdbc.xml
+ deploy
+ jms
- jboss-destinations-service.xml
- postgres-jdbc2-service.xml
- postgres-ds.xml
+ PGDATA
- pg_hba.conf
- postgresql.conf
WEB_HOST
+ etc
+ httpd
+ conf
- httpd.conf
- workers2.properties
+ modules
- mod_jk2.so
図 5.2-2 本評価における環境定義ファイル一覧
次に、各ソフトウェアの環境定義について説明する。
5.2.5.1
OS 環境情報
DB_HOST のみ、カーネル・パラメータの共有メモリ・サイズを変更する。
#echo 268435456 > /proc/sys/kernel/shmmax
5.2.5.2 DB サーバ環境情報
5.2.5.2.1
PostgresSQL の環境情報
DB_HOST 上の PostgreSQL に関する環境変数は、表 5.2-12 の通りとした。
− 5-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-12 PostgreSQL の環境変数
環境変数
設定値
備考
PGLIB
/home/spec/pgsql
PG_DIR の値
PGDATA
/home/spec/data
データベース・クラスタ
本評価における環境定義の内容を、表 5.2-13∼表 5.2-14 に示す。
表 5.2-13 DB_HOST/PGDATA/pg_hba.conf
設定内容
備考
host all all 127.0.0.1 255.255.255.255 trust
アクセス許可の設定
host all all 192.168.61.0 255.255.255.0 trust
表 5.2-14 DB_HOST/PGDATA/postgresql.conf
パラメータ
設定値
tcpip_socket
True
備考
ネットワーク経由アクセスの許可
また、パフォーマンス向上のためにチューニングした内容を、表 5.2-15 に示す。
表 5.2-15 DB_HOST/PGDATA/postgresql.conf
パラメータ
設定値
備考
max_connections
250
最大接続数
shared_buffers
10000
共有バッファ・サイズ
sort_mem
4096
ソート・バッファサイズ
fsync
false
同期書き込みの設定
wal_buffers
128
WAL バッファ数
effective_cache_size
65536
キャッシュ・サイズ
deadlock_timeout
100000
デッドロック・検出時間
5.2.5.3 AP サーバ環境情報
5.2.5.3.1
JBoss の環境情報
AP_HOST 上の JBoss の設定セット名は、”postgres”とした。本評価における環境定
義の内容を、表 5.2-16∼表 5.2-20 に示す。
− 5-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-16 AP_HOST/JBOSS_DIR/server/postgres/deploy/postgres-ds.xml
パラメータ
設定値
備考
jndi-name
DefaultDS
データ・ソース名
connection-url
jdbc://postgresql://db1:5432/manager
DB 接続先
user-name
manager
DB 接続ユーザ名
password
manager
DB 接続パスワード
表 5.2-17 AP_HOST/JBOSS_DIR/server/postgres/deploy/jms/postgres-jdbc2-service.xml
パラメータ
設定値
ConnectionManager
DefaultDS
備考
データ・ソース名
表 5.2-18 AP_HOST/JBOSS_DIR/server/postgres/conf/standardjaws.xml
パラメータ
設定値
備考
datasource
Java:/DefaultDS
データ・ソース名
type-mapping
PostgreSQL 7.2
タイプ・マッピング名称
表 5.2-19 AP_HOST/JBOSS_DIR/server/postgres/conf/standardjbosscmp-jdbc.xml
パラメータ
設定値
備考
datasource
java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
表 5.2-20 AP_HOST/JBOSS_DIR/server/postgres/deploy/jms/jms-ds.xml
パラメータ
設定値
java.naming.provider.url
ap4:1099
備考
JMS アクセス先
また、パフォーマンス向上のためにチューニングした内容を、表 5.2-21∼表 5.2-25 に
示す。
表 5.2-21 AP_HOST/JBOSS_DIR/bin/run.conf
パラメータ
JAVA_OPTS
設定値
“-server
–Xms1024m
備考
–Xmx1024m
–XX:NewSize=256m
–XX:MaxNewSize=256m
–XX:PermSize=64m
–XX:MaxPermSize=64m
java コマンド
のオプション
–XX:SurvivorRatio=8”
表 5.2-22 AP_HOST/JBOSS_DIR/server/postgres/deploy/postgres-ds.xml
パラメータ
max-pool-size
設定値
150
備考
JDBC 接続プールの最大サイズ
− 5-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-23 AP_HOST/JBOSS_DIR/server/postgres/deploy/jbossweb-tomcat50.sar/server.xml
パラメータ
maxProcessors
設定値
備考
“300”
同時実行スレッド数
表 5.2-24 AP_HOST/JBOSS_DIR/server/postgres/conf/log4j.xml
パラメータ
Threshold
設定値
備考
“ERROR”
ログ書き出しレベル
表 5.2-25 AP_HOST/JBOSS_DIR/server/postgres/deploy/ear-deployer.xml
パラメータ
CallByValue
設定値
備考
false
値渡しの指定
5.2.5.4 Web サーバ環境情報
Apache httpd の環境情報
5.2.5.4.1
本評価における環境定義の内容を、表 5.2-26 に示す。
表 5.2-26 WEB_HOST/etc/httpd/conf/httpd.conf
パラメータ
ServerName
設定値
備考
ホスト名(WEB_HOST の値)とポート番号
ap2:80
また、パフォーマンス向上のためにチューニングした内容を、表 5.2-27 に示す。
表 5.2-27 WEB_HOST/etc/httpd/conf/httpd.conf
パラメータ
設定値
備考
KeepAlive
On
KeepAlive の指定
ServerLimit
300
プロセス数の最大値
MaxClients
300
プロセス数の最大値
5.2.5.5 JMS サーバ環境情報
5.2.5.5.1
PostgresSQL の環境情報
JMS_HOST 上の PostgreSQL に関する環境変数は、表 5.2-28 の通りとした。
− 5-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-28 PostgreSQL の環境変数
環境変数
設定値
備考
PGLIB
/home/spec/pgsql
PG_DIR の値
PGDATA
/home/spec/data
データベース・クラスタ
本評価における環境定義の内容を、表 5.2-29 に示す。
表 5.2-29 JMS_HOST/PGDATA/pg_hba.conf
設定内容
備考
host all all 127.0.0.1 255.255.255.255 trust
アクセス許可の設定
host all all 192.168.61.0 255.255.255.0 trust
JBoss の環境情報
5.2.5.5.2
JMS_HOST 上の JBoss の設定セット名は、”jbossmq”である。本評価における環境定
義の内容を表 5.2-30∼表 5.3-32 に示す。
表 5.2-30 JBOSS_DIR/server/jbossmq/deploy/postgres-ds.xml
パラメータ
設定値
備考
jndi-name
DefaultDS
データ・ソース名
connection-url
jdbc://postgresql://db1:5432/manager
DB 接続先
user-name
manager
DB 接続ユーザ名
Password
manager
DB 接続パスワード
表 5.2-31 JMS_HOST/JBOSS_DIR/server/postgres/deploy/jms/postgres-jdbc2-service.xml
パラメータ
ConnectionManager
設定値
DefaultDS
備考
データ・ソース名
表 5.2-32 JMS_HOST/JBOSS_DIR/server/jbossmq/conf/standardjbosscmp-jdbc.xml
パラメータ
設定値
備考
datasource
Java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
また、パフォーマンス向上のためにチューニングした内容を、表 5.2-33 に示す。
− 5-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-33 JMS_HOST/JBOSS_DIR/bin/run.conf
パラメータ
設定値
JAVA_OPTS
備考
“-server –Xms256m –Xmx256m”
java コマンドのオプション
5.2.5.6 Supplier Emulator 環境情報
5.2.5.6.1
JBoss の環境設定
EMULATOR_HOST 上の JBoss の設定セット名は、デフォルトの”default”を使用す
る。設定のための作業は発生しないが、パフォーマンス向上のためにチューニングした
内容を、表 5.2-34 以下に示す。
表 5.2-34 EMULATOR_HOST/JBOSS_DIR/bin/run.conf
パラメータ
JAVA_OPTS
設定値
備考
“-server –Xms256m –Xmx256m”
java コマンドのオプション
5.2.5.7 Load Driver 環境情報
DRIVER_HOST 上で Load Driver を実行するための、本評価における環境定義の内
容を表 5.2-35∼5.2-36 に示す。
表 5.2-35 DRIVER_HOST/SPEC_DIR/bin/ECstat.sh
パラメータ
設定値
備考
APP_SERVER
ap2
WEB_HOST の値
DB_SERVER
db1
DB_HOST の値
表 5.2-36 DRIVER_HOST/SPEC_DIR/bin/driver.sh
パラメータ
J2EE_HOME
設定値
/home/spec/jboss-4.0.0
備考
JBOSS_DIR の値
また、SPEC_DIR/config/run.properties のパラメータを変更することにより、5.1.1
に示したトランザクション投入割合の変更や、測定時間の変更などを行える。本評価に
おける、これらのファイルの設定内容は、5.4 で後述するものとする。
5.2.5.8 SPECjAppServer2004 アプリケーション環境情報
5.2.5.8.1
ビルドのための環境設定
DRIVER_HOST 上で SPECjAppServer2004 アプリケーションをビルドするために修
− 5-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
正が必要な環境定義の内容を表 5.2-37∼表 5.2.52 に示す。なお、表 5.2-37 のファイル
jboss.env は、Load Driver の実行時にも必要となるファイルである。
表 5.2-37 DRIVER_HOST/SPEC_DIR/config/jboss.env
パラメータ
設定値
備考
JAS_HOME
/home/spec/SPEC
SPEC_DIR の値
JAVA_HOME
/home/spec/j2sdk1.4.2_04
JAVA_DIR の値
J2EE_HOME
/home/spec/jboss-4.0.0
JBOSS_DIR の値
JDBC_CLASSPATH
${J2EE_HOME}/server/def
JDBC ドライバのパス
ault/lib/postgresql.jar
JAVAX_JAR
${J2EE_HOME}/server/def
必要な jar ファイルのパス
ault/lib/javax.servlet.jar${
FS}${J2EE_HOME}/server
/postgres/lib/jboss-j2ee.jar
${FS}${J2EE_HOME}/clie
nt/jbossall-client.jar
JAS_HOST
ap2
WEB_HOST の値
JAS_PORT
80
WEB_HOST のポート番
号
EMULATOR_HOST
ap3
EMULATOR_HOST の値
EMULATOR_PORT
8080
EMULATOR_HOST のポ
ート番号
NAMING_PROVIDE
jnp://web2:1099
R
名前解決のための RMI エ
ンドポイント
DB_JNDI_NAME
DefaultDS
データ・ソース名
DB_HOST
db1
DB_HOST の値
DB_PORT
5432
DB_HOST のポート番号
DB_NAME
manager
DB 名
DB_DRIVER_CLASS
org.postgresql.Driver
JDBC ドライバのクラス
DB_USER_NAME
manager
DB 接続ユーザ名
DB_PASSWORD
manager
DB 接続ユーザ名
DB_TYPE_MAPPING
PostgreSQL 7.2
タイプ・マッピング名称
DB_CONNECTION_
jdbc:postgresql://${DB_HO
DB 接続先
URL
ST}:${DB_PORT}/${DB_N
AME}
DB_JDBC_VERSION
JDBC のバージョン
3
− 5-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-38 DRIVER_HOST/SPEC_DIR/config/corpdb.properties
パラメータ
設定値
備考
dbUser
manager
DB 接続ユーザ名
dbPassword
manager
DB 接続パスワード
dbURL
jdbc:postgresql://db1:5432/manager
DB 接続先
dbDriver
org.postgresql.Driver
JDBC ドライバのクラス
jdbcVersion
3
JDBC のバージョン
表 5.2-39 DRIVER_HOST/SPEC_DIR/config/mfgdb.properties
パラメータ
設定値
備考
dbUser
manager
DB 接続ユーザ名
dbPassword
manager
DB 接続パスワード
dbURL
jdbc:postgresql://db1:5432/manager
DB 接続先
dbDriver
org.postgresql.Driver
JDBC ドライバのクラス
jdbcVersion
3
JDBC のバージョン
表 5.2-40 DRIVER_HOST/SPEC_DIR/config/ordsdb.properties
パラメータ
設定値
備考
dbUser
manager
DB 接続ユーザ名
dbPassword
manager
DB 接続パスワード
dbURL
jdbc:postgresql://db1:5432/manager
DB 接続先
dbDriver
org.postgresql.Driver
JDBC ドライバのクラス
jdbcVersion
3
JDBC のバージョン
表 5.2-41 DRIVER_HOST/SPEC_DIR/config/suppdb.properties
パラメータ
設定値
備考
dbUser
manager
DB 接続ユーザ名
dbPassword
manager
DB 接続パスワード
dbURL
jdbc:postgresql://db1:5432/manager
DB 接続先
dbDriver
org.postgresql.Driver
JDBC ドライバのクラス
jdbcVersion
3
JDBC のバージョン
− 5-16 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-42 DRIVER_HOST/SPEC_DIR/config/utildb.properties
パラメータ
設定値
備考
dbUser
Manager
DB 接続ユーザ名
dbPassword
Manager
DB 接続パスワード
dbURL
jdbc:postgresql://db1:5432/manager
DB 接続先
dbDriver
org.postgresql.Driver
JDBC ドライバのクラス
jdbcVersion
3
JDBC のバージョン
表 5.2-43 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/jndi.properties
パラメータ
設定値
java.naming.provider.url
jnp://web2:1099
備考
JNDI アクセスするサーバ
表 5.2-44 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/corp.jboss.cmp.xml
パラメータ
設定値
備考
datasource
java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
表 5.2-45 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/corp.jboss.xml
パラメータ
設定値
res-jndi-name
java:/DefaultDS
備考
データ・ソース名
表 5.2-46 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/mfg.jboss.cmp.xml
パラメータ
設定値
備考
datasource
java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
表 5.2-47 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/mfg.jboss.xml
パラメータ
設定値
備考
jndi-name
jnp://ap4:1099/queue/FulfillOrderQueue
キューの指定
jndi-name
jnp://ap4:1099/queue/BuyerQueue
キューの指定
res-jndi-name
java:/DefaultDS
データ・ソース名
表 5.2-48 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/orders.jboss.cmp.xml
パラメータ
設定値
備考
datasource
java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
− 5-17 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-49 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/orders.jboss.xml
パラメータ
設定値
備考
jndi-name
jnp://ap4:1099/queue/LargeOrderQueue
キューの指定
res-jndi-name
java:/DefaultDS
データ・ソース名
表 5.2-50 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/supplier.jboss.cmp.xml
パラメータ
設定値
備考
datasource
java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
表 5.2-51 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/supplier.jboss.xml
パラメータ
設定値
備考
jndi-name
jnp://ap4:1099/queue/ReceiveQueue
キューの指定
res-jndi-name
java:/DefaultDS
データ・ソース名
表 5.2-52 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/util.jboss.cmp.xml
パラメータ
設定値
備考
datasource
java:/DefaultDS
データ・ソース名
datasource-mapping
PostgreSQL 7.2
タイプ・マッピング名称
5.2.5.8.2
EntityBean の設定
SPECjAppServer2004 アプリケーションで実装される各 EntityBean に対する、本評
価における設定内容を表 5.2-53 ∼表 5.2-62 に示す。
表 5.2-53 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/corp.jboss.cmp.xml
設定内容
備考
no-select-before-insert
INSEERT 前の SELECT
COUNT(*)を不許可
row-locking
行ロックの指定
-> CustomerEnt, CustomerInventoryEnt
− 5-18 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-54 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/corp.jboss.xml
設定内容
備考
Instance Per Transaction CMP 2.x EntityBean
Bean の種類を指定
-> CustomerEnt, CustomerInventoryEnt
Bean の種類を指定
Standard Stateless SessionBean
-> CorpAuditSes, CusomerSes
表 5.2-55 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/mfg.jboss.cmp.xml
設定内容
備考
INSEERT 前の SELECT
no-select-before-insert
COUNT(*)を不許可
row-locking
行ロックの指定
-> WorkOrderEnt, InventoryEnt
read-ahead
キャッシュの先読み
-> LargeOrderEnt
表 5.2-56 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/mfg.jboss.xml
設定内容
備考
Bean の種類を指定
Instance Per Transaction CMP 2.x EntityBean
-> AsesemblyEnt, BomEnt, ComponentEnt, PartEnt,
WorkOrderEnt, LargeOrderEnt, InventoryEnt
Bean の種類を指定
Standard Stateless SessionBean
-> LargeOrderSes, WorkOrderSes, MfgAuditSes
Bean の種類を指定
Standard Message Driven Bean
-> LargeOrderMDB, ReceiveMDB
表 5.2-57 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/orders.jboss.cmp.xml
設定内容
備考
INSEERT 前の SELECT
no-select-before-insert
COUNT(*)を不許可
row-locking
行ロックの指定
-> OrderEnt, OrderLineEnt
− 5-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-58 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/orders.jboss.xml
設定内容
該当箇所
Bean の種類を指定
Instance Per Transaction CMP 2.x EntityBean
-> OrderLineEnt, OrderEnt
Bean の種類を指定
Standard Stateful SessionBean
-> OrderSes, OrderAuditSes
Standard CMP 2.x EntityBean with cache invalidation
Bean の種類を指定
(commit-option, option-refresh-rate)
-> ItemEnt
Bean の種類を指定
Standard Stateful SessionBean
-> ItemBrowserSes
Bean の種類を指定
Standard Message Driven Bean
-> FulfillOrderMDB
表 5.2-59 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/supplier.jboss.cmp.xml
設定内容
該当箇所
INSEERT 前の SELECT
no-select-before-insert
COUNT(*)を不許可
row-locking
行ロックの指定
-> SCComponentEnt, POEnt, POLineEnt
表 5.2-60 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/supplier.jboss.xml
設定内容
該当箇所
Bean の種類を指定
Standard Stateless SessionBean
-> ReceiverSes, SupplierAuditSes
Instance Per Transaction CMP 2.x EntityBean
Bean の種類を指定
-> SupplierEnt, SupplierCompEnt, SCComponentEnt,
POEnt, POLineEnt
Bean の種類を指定
Standard Message Driven Bean
-> BuyerMDB
− 5-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.2-61 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/util.jboss.cmp.xml
設定内容
該当箇所
INSEERT 前の SELECT
no-select-before-insert
COUNT(*)を不許可
row-locking
行ロックの指定
-> SequenceEnt
表 5.2-62 DRIVER_HOST/SPEC_DIR/src/deploy/jboss/util.jboss.xml
設定内容
該当箇所
Instance Per Transaction CMP 2.x EntityBean
Bean の種類を指定
-> SequenceEnt
Bean の種類を指定
Standard Stateless SessionBean
-> SequenceSes
5.2.6 OS のインストール・設定
2.3 記載の手順に従う。
5.2.7 ネットワーク環境の構築
2.4 記載の手順に従う。
ソフトウェア群のインストール・設定
5.2.8
SPECjAppServer2004 実行環境構築に必要なソフトウェア群のインストールおよび
設定について説明する。設定に必要なファイルは、5 章付録ファイルにて提供している。
以下 ENV_SET は、5 章付録ファイルに格納される環境定義のルート・ディレクトリで
ある。
5.2.8.1 JDK のインストール・設定
JDK のインストール・設定手順を以下に示す。
• WEB_HOST を除く全ホストに、JDK をインストールする。<version>はバージョンに
より異なるが、本環境では、5.2.2 に示すように”1.4.2_04”である。
$./j2sdk-<version>-linux-i586.bin
− 5-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
• .bashrc に、以下の環境変数を設定する。JAVA_DIR は環境により異なるが、本環境で
は、5.2.4 に示すように”/home/spec/j2sdk1.4.2_04”である。
export JAVA_HOME=JAVA_DIR
export PATH=$PATH:$JAVA_JOME/bin
5.2.8.2 ant のインストール・設定
ant は、SPECjAppServer2004 のアプリケーション一式のビルドや、PostgreSQL イ
ンストール時の JDBC ドライバ生成に必要である。従って、DRIVER_HOST、DB_HOST、
JMS_HOST で必要になる。ant のインストール・設定手順を以下に示す。
• ディストリビューション付属の ant をアップデートするために、付属のものを外す。
Red Hat の場合、GUI の赤帽子[システム設定][アプリケーションの追加と削除]から、
[開発ツール]の中の[ant]のチェックを外して[更新]を選択する。
• ant をインストールする。<version>はバージョンにより異なるが、本環境では、5.2.2
に示すように”1.6.2”である。
$tar zxvf apache-ant-<version>.tar.gz
• .bashrc に、以下の環境変数を定義する。ANT_DIR は環境により異なるが、本環境で
は、5.2.4 に示すように”/home/spec/apache-ant-1.6.2”である。
export ANT_HOME=ANT_DIR
export PATH=$PATH:$ANT_HOME/bin
5.2.8.3
PostgreSQL のインストール・設定
DB_HOST と JMS_HOST に、PostgreSQL をインストール・設定する手順を示す。
• PostgreSQL をインストールする。<version>はバージョンにより異なるが、本環境で
は、5.2.2 に示すように”7.4.6”である。同様に、PG_DIR は環境により異なるが、本環
境では、5.2.4 に示すように”/home/spec/pgsql”である。
− 5-22 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$tar zxvf postgresql-<version>.tar.gz
$cd postgresql-<version>
$./configure --prefix=PG_DIR --with-java
$make
$make check
$make install
PostgreSQL の JDBC ライブラリ postgresql.jar は、PG_DIR/share/java 配下に生成さ
れる。
• .bashrc に、以下の環境変数を設定する。PG_DIR は環境により異なるが、本環境では、
5.2.4 に示すように”/home/spec/pgsql”である。同様に、<データベース・クラスタ>は
環 境 に よ り 異 な る が 、 本 環 境 で は 、 5.2.5.2.1 お よ び 5.2.5.5.1 に 示 す よ う
に”/home/spec/data”である。なお、データベース・クラスタとは、データベースの全て
の情報を格納するディレクトリである。
export PGLIB=PG_DIR
export PGDATA=<データベース・クラスタ>
• データベース・クラスタを作成する。
$mkdir data
$initdb --no-locale --encoding=EUC_JP
• 評価に使用するユーザ名を作成する。 <ユーザ名> は環境により異なるが、本環境で
は、”manager”である。
$createuser ‒A ‒d <ユーザ名>
• 評価に使用する DB 名を作成する。 <DB 名> は環境により異なるが、本環境で
は”manager”である。
$createdb ‒h localhost ‒U <ユーザ名> <DB 名>
• PGDATA/pg_hba.conf を修正し、外部ホストからのアクセスを許可する。本評価にお
ける詳細設定は、5.2.5.2.1 および 5.2.5.5.1 を参照されたい。
• PGDATA/postgresql.conf を修正し、ネットワーク経由でアクセスできるようにする。
本評価における詳細設定は、5.2.5.2.1 および 5.2.5.5.1 を参照されたい。
− 5-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.2.8.4 JBoss のインストール・設定
AP_HOST、JMS_HOST、EMULATOR_HOST、DRIVER_HOST 上に、JBoss をイ
ンストール・設定する手順を示す。
5.2.8.4.1
共通の手順
各ホスト共に必要となる手順を示す。
• JBoss をインストールする。<version>は環境により異なるが、本環境では、5.2.2 に示
すように”4.0.0”である。
$tar jxvf jboss-<version>.tar.bz2
5.2.8.4.2
AP_HOST に関する手順
AP_HOST では、次の 4 つの設定が必要となる。
• 設定セットの作成
• DB_HOST 上の PostgreSQL に接続するための設定
• 外部の JBoss を JMS にするための設定
• Apache httpd と接続するための設定
上記 4 つの順序は、2 つ目以降は任意であるが、本評価では上記に示す順序で設定の
詳細を示す。
まず、設定セットの作成について説明する。
• 設定セット名を決定し、以下のディレクトリを作成する。JBOSS_DIR は環境により異
なるが、本環境では、5.2.4 に示すように”/home/spec/jboss-4.0.0”である。同様に、<
設定セット名>は環境により異なるが、本環境では、5.2.5.3.1 に示すように、”postgres”
である。
JBOSS_DIR/server/<設定セット名>
• JBOSS_DIR/server/default 配下のディレクトリを、作成ディレクトリにコピーする。
次に、AP_HOST 上の JBoss から、DB_HOST 上の PostgreSQL に接続するための手
− 5-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
順を説明する。
• 作成ディレクトリ配下の deploy/hsqldb-ds.xml を削除する。
• JBOSS_DIR/docs/examples/jca/postgres-ds.xml を、作成ディレクトリ配下の deploy
ディレクトリにコピーする。
• コピーした postgres-ds.xml を、環境に合わせて修正する。本評価における詳細設定は、
5.2.5.3.1 を参照されたい。
• JBOSS_DIR/docs/examples/jms/postgres-jdbc2-service.xml を、作成ディレクトリ配
下の deploy/jms ディレクトリにコピーする。
• コピーした postgres-jdbc2-service.xml を、環境に合わせて修正する。本評価における
詳細設定は、5.2.5.3.1 を参照されたい。
• 作成ディレクトリ配下の conf/standardjaws.xml を、環境に合わせて修正する。本評価
における詳細設定は、5.2.5.3.1 を参照されたい。
• 作成ディレクトリ配下の conf/standardjbosscmp-jdbc.xml を、環境に合わせて修正す
る。本評価における詳細設定は、5.2.5.3.1 を参照されたい。
• PostgreSQL の JDBC ライブラリ postgresql.jar を、作成ディレクトリ配下の lib ディ
レクトリにコピーする。
次に、外部の JBoss を JMS サーバにするために必要な手順を説明する。
• 作成ディレクトリ配下の deploy/jms/jms-ds.xml を、
ENV_SET/AP_HOST/JBOSS_DIR/server/postgres/deploy/jms/jms-ds.xml で置き換
える。本ファイルは、JMS_HOST を外部 JMS サーバとする設定を行うものである。
最後に、5.2.8.5 に後述の Apache httpd と接続するための手順を説明する。
• 作成ディレクトリ配下の deploy/jbossweb-tomcat50.sar/server.xml を、
ENV_SET/AP_HOST/JBOSS_DIR/server/postgres/deploy/jbossweb-tomcat50.sar/se
rver.xml で置き換える。
• ENV_SET/AP_HOST/JBOSS_DIR/server/postgres/conf/jk2.properties を、作成ディ
− 5-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
レクトリ配下の conf ディレクトリにコピーする。
5.2.8.4.3
JMS_HOST に関する手順
JMS_HOST では、次の 3 つの設定が必要となる。
• JMS 専用の設定セットの作成
• JMS サーバとして機能するための設定
• PostgreSQL に接続するための設定
上記 3 つの順序は、2 つ目以降は任意であるが、本評価では上記に示す順序で設定の
詳細を示す。
まず、JMS 専用の設定セットを作成する。以下の説明において、JBOSS_DIR は環境
により異なるが、本環境では、5.2.4 に示すように”/home/spec/jboss-4.0.0”である。同様
に 、 < 設 定 セ ッ ト 名 > は 環 境 に よ り 異 な る が 、 本 環 境 で は 、 5.2.5.5.2 に 示 す よ う
に、”jbossmq”である。
• JBOSS_DIR/docs/examples/jms/standalone
直 下 で
ant
を 実 行 す る と 、
JBOSS_DIR/server/以下に JMS サーバ専用の設定セット”jbossmq”が生成される。た
だ し 、 ビ ル ド フ ァ イ ル に は バ グ が あ る た め 、
JBOSS_DIR/docs/examples/jms/standalone 配下の既存ファイルを、以下の修正ファイ
ルにより置き換え、ant を実行する。
ENV_SET/JMS_HOST/JBOSS_DIR/docs/examples/jms/standalone/build.xml
ENV_SET/JMS_HOST/JBOSS_DIR/docs/examples/jms/standalone/jboss-service.xml
次に、JMS サーバとして機能するために必要な手順を説明する。
• JBOSS_DIR/server/jbossmq/deploy/jms/jbossmq-desitinations-service.xml
を
、
ENV_SET/JMS_HOST/JBOSS_DIR/server/jbossmq/deploy/jms/jbossmq-destination
s-service.xml で置き換える。本ファイルでは、SPPECjAppServer2004 アプリケーシ
ョンが使用する 4 つのキューを追加している。
次に、JMS_HOST 上の JBoss から、同ホスト上の PostgreSQL に接続するための設
定 を 行 う が 、 そ の 手 順 は 5.2.8.4.2 と ほ ぼ 同 様 で あ る た め 割 愛 す る 。 た だ し 、
standardjaws.xml ファイルは存在しないため、それに関しては何も行う必要はない。
− 5-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
EMULATOR_HOST に関する手順
5.2.8.4.4
EMULATOR_HOST 上の JBoss に関しては、基本的にはデフォルトの設定(設定セ
ットは default)を使用する。本手順において、特に必要となる作業は発生しない。
DRIVER_HOST に関する手順
5.2.8.4.5
DRIVER_HOST 上の JBoss に関しては、特に必要となる作業は発生しない。ただし、
Load Driver 起動時に、 DB サーバに接続してデータの整合性を確認するため、
PostgreSQL の JDBC ライブラリ postgresql.jar を、クラスパス(CLASSPATH)が通る
位置にコピーしておく必要がある。
5.2.8.5 Apache httpd/mod_jk2 のインストール・設定
WEB_HOST で実行する Apahce httpd は、ディストリビューション付属の 2.0 系列
を使用するため、インストール手順は発生しない。ただし、AP_HOST に接続するため
に、mod_jk2 をインストール・設定する必要がある。以下の手順を、root 権限により実
施する。
• /etc/httpd/conf/httpd.conf を、環境に合わせて修正する。本評価における詳細設定は、
5.2.5.4.1 を参照されたい。
• ENV_SET/WEB_HOST/etc/httpd/modules/mod_jk2.so を /etc/httpd/modules/にコピ
ーする。
• ENV_SET/WEB_HOST/etc/httpd/conf/workers2.properties を/etc/httpd/conf にコピ
ーする。
• /etc/httpd/conf/httpd.conf に、mod_jk2.so をロードするための、以下の 1 行を追加す
る。
LoadModule jk2_module modules/mood_jk2.so
5.2.8.6 sysstat のインストール・設定
カーネル・トレース・ツールである sysstat は、デフォルトで 4.0 系列がインストール
されているが、情報が欠落するなどの不具合が報告されている。本評価では、5.0 系列に
アップデートする。sysstat のインストール・設定手順を以下に示す。
• sysstat をインストールする。<version>は環境により異なるが、本環境では、5.2.2 に
示すように”5.0.6”である。
− 5-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$tar zxvf sysstat-<version>.tar.gz
$cd sysstat-<version>
$make config
…
以下、設定内容に関する質問が続くが、基本的にはデフォルト(リターン・キー)で
進める。ただし、インストール・ディレクトリとして、既存 sysstat のディレクトリ以
外を選択した場合、実行時に既存のものが参照され、正しく実行できない場合があるた
め、既存ディレクトリを上書きすることを推奨する。
• 再度コマンド・プロンプトが現れたら、root 権限で以下を実行する。
#make
#make install
5.2.9
SPECjAppServer2004 アプリケーションのビルド・配置
SPECjAppServer2004 アプリケーションのビルドに必要なファイル群を 5 章付録ファ
イルにて提供する。これらのファイル群を使用して SPECjAppServer2004 アプリケー
ションをビルド・実行するには、各ファイルのパラメータをあらかじめ設定する必要が
ある。詳細は 5.2.5.8 を参照されたい。
ここでは、アプリケーションのビルドを DRIVER_HOST 上で実施することを前提と
した手順を示す。
5.2.9.1 必要ファイル群のコピー
SPECjAppServer2004 は多くのファイル群を提供するが、ホスト毎に必要とするファ
イルが異なる。本評価では、以下のようにファイル群を各ホストにコピーする。なお、
説明中の SPEC_CD は、SPECjAppServer2004 格納 CD のルート・ディレクトリを表
す 。 ま た 、 SPEC_DIR は 環 境 に よ り 異 な る が 、 本 環 境 で は 、 5.2.4 に 示 す よ う
に”/home/spec/SPEC”である。
• DB_HOST 上の SPEC_DIR/schema/sql ディレクトリに、SPEC_CD/schema/sql 配下
のファイルをコピーする。
• DRIVER_HOST 上の SPEC_DIR に、SPEC_CD 配下の全ディレクトリおよびファイ
ルをコピーする。
− 5-28 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
SPECjAppServer2004 格納 CD には含まれない、JBoss 固有のビルド用ファイルを、
5 章付録ファイルにて提供する。以下 ENV_SET は、5 章付録ファイルに格納される環
境定義のルート・ディレクトリである。該当ファイルを、以下のように配備する。
• ENV_SET/DRIVER_HOST/SPEC_DIR/src/jboss/deploy
デ ィ レ ク ト リ を 、
DRIVER_HOST 上の SPEC_DIR/src/deploy 以下にコピーする。
• ENV_SET/DRIVER_HOST/SPEC_DIR/bin 以下のファイルを、DRIVER_HOST 上の
SPEC_DIR/bin の既存ファイルに上書きする。
• ENV_SET/DRIVER_HOST/SPEC_DIR/config 以下のファイルを、DRIVER_HOST 上
の SPEC_DIR/config の既存ファイルに上書きする。
5.2.9.2 アプリケーションのビルド
DRIVER_HOST 上で SPECjAppServer2004 アプリケーションをビルドする手順を示
す 。 な お 、 SPEC_DIR は 環 境 に よ り 異 な る が 、 本 環 境 で は 、 5.2.4 に 示 す よ う
に”/home/spec/SPEC”である。
• DRIVER_HOST 上で、アプリケーションをビルドする。
$cd SPEC_DIR
$./ant/bin/ant ‒f jboss-build.xml clean all
• SPEC_DIR/jars 以 下 に 生 成 さ れ た SPECjAppServer.ear を 、 AP_HOST 上 の
JBOSS_DIR/server/<設定セット名>/deploy/ディレクトリにコピーする。
• 同様に、SPEC_DIR/jars 以下に生成された emulator.war を Emulator.war とリネーム
して、EMULATOR_HOST 上の JBOSS_DIR/server/default/deploy/ディレクトリにコ
ピーする。
• DRIVER_HOST 上で、Load Driver をビルドする。
$./ant/bin/ant ‒f jboss-build.xml clean-driver driver
5.2.10
データベースの初期化およびデータ投入
データベースの初期化およびデータ投入の手順を示す。実施に当り、あらかじめ DB
サーバを起動しておく必要がある。DB サーバの起動方法については、5.3.1.2 を参照さ
− 5-29 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
れたい。
5.2.10.1 データベースの初期化
データベースを初期化する手順を以下に示す。
• DB サーバ上に、評価に必要なデータを格納するためのテーブル・スキーマを作成する。
<ユーザ名>は環境により異なるが、本環境では、5.2.8.3 に示すように”manager”であ
る。同様に、 <DB 名> は環境により異なるが、本環境では、5.2.8.3 に示すよう
に、”manager”である。
$cd $JAS_HOME/schema/sql
$psql <DB 名> <ユーザ名> < schema_C.sql
$psql <DB 名> <ユーザ名> < schema_M.sql
$psql <DB 名> <ユーザ名> < schema_O.sql
$psql <DB 名> <ユーザ名> < schema_S.sql
$psql <DB 名> <ユーザ名> < schema_U.sql
• c_customerinventory テーブルをインデックススキャンにすることで DB サーバの性能
が大幅に向上することを確認したため、ci_customerid カラムにインデックスを作成す
る。
$psql <DB 名> <ユーザ名>
=>CREATE INDEX C_ci_customerid_idx ON C_customerinventory
( ci_customerid );
5.2.10.2 データ投入
DB にデータを投入する手順を以下に示す。
• DRIVER_HOST 上で、以下を実行することにとり、DB_HOST 上の PostgreSQL にデ
ータを投入できる。SPEC_DIR は環境により異なるが、本環境では、5.2.4 に示すよう
に”/home/spec/SPEC”である。<IR 値>(Injection Rate) は、データベースへのデータ投
入数を決定する、SPECjAppServer2004 固有のメトリックである。SCALE オプション
を指定しない場合のデフォルト値は 1 である。
$cd SPEC_DIR/
$./ant/bin/ant ‒f jboss-build.xml loaddb ‒DSCALE=<IR 値>
− 5-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
• データ投入後、DB_HOST 上で、データベースの不要領域の回収と解析を行う。
$vacuumdb ‒afz
チューニングの実施
5.2.11
5.2.6∼5.2.10 の手順により、SPECjAppServer2004 の最低限の動作環境を構築でき
るが、パフォーマンス向上を図るには、適切なチューニングを実施することが望ましい。
サーバ群のチューニングは、サーバプロセス起動前に実施すれば良いが、アプリケーシ
ョンレベルのチューニングは、ビルドの前に実施しておく必要があるため、注意が必要
である。
本評価で実施したチューニング内容については、5.2.5 を参照されたい。
− 5-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.3 評価手順
本評価における SPECjAppServer2004 の評価手順について記載する。
5.3.1
サーバプロセス群の起動
評価に伴う各サーバプロセスの起動手順を示す。起動順序は必ずしもこの限りではな
いが、5.3.1.3 の前に 5.3.1.1 および 5.3.1.2 を実施する必要がある。また、5.3.1.4 の前
に 5.3.1.3 を実施することが望ましい。
5.3.1.1 JMS サーバの起動
• JMS_HOST 上で、JMS 用 DB サーバ(PostgreSQL)を起動する。
$postmaster -i
• JMS_HOST 上で、JMS サーバ(JBoss)を起動する。JBOSS_DIR はバージョンにより
異なるが、本環境では、5.2.4 に示すように”jboss-4.0.0”である。同様に、<設定セット
名>は環境により異なるが、本環境では、5.2.5.5.2 に示すように”jbossmq”である。さ
らに、<IP アドレス>は自分自身の IP アドレスであり、環境により異なるが、本環境で
は 5.2.1 に示すように、”192.168.61.14”である。
$cd JBOSS_DIR/bin
$./run.sh ‒c <設定セット名> --host <IP アドレス>
5.3.1.2 DB サーバの起動
• DB_HOST 上で、DB サーバ(PostgreSQL)を起動する。
$postmaster ‒i
5.3.1.3 AP サーバの起動
• AP_HOST 上で AP サーバ(JBoss)を起動する。JBOSS_DIR はバージョンにより異な
るが、本環境では、5.2.4 に示すように”jboss-4.0.0”である。同様に、<設定セット名>
は環境により異なるが、本環境では、5.2.5.3.1 に示すように”postgres”である。さらに、
<IP アドレス>は自分自身の IP アドレスであり、環境により異なるが、本環境では 5.2.1
に示すように、”192.168.61.15”である。
− 5-32 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$cd JBOSS_DIR/bin
$./run.sh ‒c <設定セット名> --host <IP アドレス>
5.3.1.4 Web サーバの起動
• WEB_HOST 上で、Web サーバ(Apache httpd)を起動する。
#/etc/rc.d/init.d/httpd start
5.3.1.5 Supplier Emulator の起動
• EMULATOR_HOST 上で、Supplier Emulator(JBoss)を起動する。JBOSS_DIR はバ
ージョンにより異なるが、本環境では、5.2.4 に示すように”jboss-4.0.0”である。同様に、
<設定セット名>は環境により異なるが、本環境では、5.2.5.6.1 に示すように”default”
である。
$cd JBOSS_DIR/bin
$./run.sh ‒c <設定セット名>
ただし、本環境のように<設定セット名>が”default”の場合は、-c オプションは付けなく
てよい。この場合は、以下の方法で起動できる。
$cd JBOSS_DIR/bin
$./run.sh
5.3.2
ベンチマーク評価の実施
5.3.1 を実施後、評価を開始する。評価の実施手順を以下に示す。
• 全ホスト上で、以下の手順でカーネル・トレース・ツール sysstat のうち sar、iostat、
vmstat の各コマンドを起動する。 <出力先ファイル>、<測定間隔>、<測定期間>は、
環境および条件により異なる。
$sar ‒A ‒o <出力先ファイル> <測定間隔> <測定期間>
$iostat <測定間隔> <測定期間> > <出力先ファイル>
$vmstat <測定間隔> <測定期間> > <出力先ファイル>
• DRIVER_HOST 上で、Load Driver を起動すると、評価を開始する。SPEC_DIR は環境に
− 5-33 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
より異なるが、本環境では、5.2.4 に示すように /home/spec/SPEC である。
$cd SPEC_DIR
$./bin/driver.sh
• Load Driver 実行ターミナルに、以下のような表示が出力されれば、評価終了である。
Gathering DealerStats ...
Gathering MfgStats ...
Summary file is output/**/SPECjAppServer.summary
Calling getLog as master
5.3.3
サーバプロセス群の停止
サーバプロセスの停止手順を示す。ただし、停止順序は必ずしもこの限りではない。
5.3.3.1 Supplier Emulator の停止
• EMULATOR_HOST 上で、Supplier Emulator(JBoss)を Ctrl-C キーにより停止する。
5.3.3.2 Web サーバの停止
• WEB_HOS 上で、Web サーバ(Apache httpd)を停止する。
#/etc/rc.d/init.d/httpd stop
5.3.3.3 AP サーバの停止
• AP_HOST 上で、AP サーバ(JBoss)を Ctrl-C キーにより停止する。
5.3.3.4 DB サーバの停止
• DB_HOST 上で、DB サーバ(PostgreSQL)を停止する。
$pg_ctl stop
5.3.3.5 JMS サーバの停止
• JMS_HOST 上で、JMS サーバ(JBoss)を Ctrl-C キーにより停止する。次に、JMS 用
DB サーバ(PostgreSQL)を停止する。
− 5-34 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$pg_ctl stop
− 5-35 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
評価結果
5.4
本評価における評価結果について記載する。以下 5.4.1 に、トランザクション投入割
合を変更した評価を行い、処理性能変化とシステム・リソース状況について記載する。
5.4.2 に、EJB メソッドの振る舞いを解析するツールを用いた、プログラム動作解析に
ついて記載する。
なお、本評価で取得される結果は、2、3 章に記載の環境における実測データである。
異なる環境において同様の結果が取得されることを保証するものではない。そのため、
実測データは、あくまで一例に過ぎないものとしてお取り扱い願いたい。本評価は、結
果の信頼性よりも、むしろ、同様の評価を実施する場合の手順を明確化することに重き
を置くものである。
5.4.1 トランザクション投入割合を変更した評価
5.4.1.1
5.4.1.1.1
目的と概要
SPECjAppServer2004 のトランザクションについて
SPECjAppServer2004 では、Load Driver と呼ばれるクライアントから段階的なレベ
ルに応じて異なる負荷をシステム全体に与える。性能結果として取得されるのは、シス
テム全体の処理性能である。
Load Driver が与える負荷は、トランザクションと呼ばれ、表 5.4-1 に示す 2 種類が
ある。
表 5.4-1 トランザクションの種類
トランザクションの種類
説明
Dealer トランザクション
ユーザが HTTP 経由でシステムにアクセスする。
Mfg トランザクション
自動車の製造を、RMI で指示する。
また、Dealer トランザクションは、さらに表 5.4-2 のように 3 つのタイプに細分化さ
れる。
− 5-36 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-2 トランザクション・タイプ
タイプ
説明
性質
Purchase
新規に自動車を購入する。
更新系
Manage
顧客の在庫を管理する。
参照系
Browse
購入可能なアイテムの一覧を閲覧する。
参照系
SPEC への登録を目的とした評価を実施する場合、上記 3 つのタイプをそれぞれ
25:25:50 の 割 合 に 指 定 す る こ と が 義 務 付 け ら れ て い る 。 す な わ ち 、 一 般 的 に
SPECjAppServer2004 を用いてシステム性能を評価する場合、上記 3 つのタイプを
25:25:50 の割合で投入している。
本評価の目的
5.4.1.1.2
実システムのサイジングを意図した評価を実施する場合、上述のようにトランザクシ
ョン・タイプの割合を固定したモデルが、実システムを十分に模擬しているとは必ずし
も言い切れない。例えば、ユーザからのアクセス傾向として更新系トランザクションが
多いシステムの場合、参照系の Browse タイプが多いモデルでは、その性能を正確に評
価できない。
本評価では、トランザクション・タイプの割合を任意に変更することにより、システ
ム全体の処理性能がどのように変化するのか、その傾向を掌握することを目的とする。
5.4.1.1.3
評価方法
SPECjAppServeer2004 では、登録ではなく研究目的としてならば、トランザクショ
ン・タイプの割合を含むパラメータの変更を容認している。そのため、トランザクショ
ン・タイプの割合は、SPECjAppServer2004 アプリケーション自体を改変することなく、
表 5.4-3 記載の、SPEC_DIR/config/run.properties ファイル内のパラメータを変更する
ことにより、容易に変更可能である。
表 5.4-3 トランザクション・タイプの割合を設定するパラメータ
パラメータ
該当箇所
説明
デフォルト値
purchaseWeight
193 行目
Purchase の割合
25
manageWeight
194 行目
Manage の割合
25
browseWeight
195 行目
Browse の割合
50
− 5-37 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.4.1.1.4
評価項目
本評価における評価項目は、以下の通りである。
• トランザクション・タイプの割合が、実際に指定通りに変更されているか検証する。
• トランザクション・タイプの割合を変更した場合の処理性能変化傾向を掌握し、処
理性能限界の見極めを試みる。
5.4.1.2
5.4.1.2.1
評価内容
評価パターンについて
比較のため、トランザクション・タイプの投入割合を変更しない、正規投入(デフォ
ルト値)時の評価を実施する。また、トランザクション・タイプの割合を変化させた 4
つのパターンについて評価する。4 パターンの割合を表 5.4-4 のように設定することとす
る。
表 5.4-4 評価パターンとトランザクション・タイプの割合
purchaseWeight
manageWeight
browseWeight
25
25
50
パターン 1
100
0
0
パターン 2
0
100
0
パターン 3
0
0
100
パターン 4
50
25
25
評価パターン
正規投入
5.4.1.2.2
測定時間について
測定時間は、表 5.4-5 のように設定する。正規投入は SPECjAppServer2004 規定時間
通りに評価するが、パターン 1∼4 は独自評価のため、時間を短縮して実施する。
表 5.4-5 測定時間
パラメータ名
trigegrTime
正規投入
パターン 1∼4
60
60(sec)
rampUp
600
300(sec)
stdyState
3600
1800(sec)
300
150(sec)
rampDown
− 5-38 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.4.1.2.3
負荷レベルについて
正規投入とパターン 1∼4 に対して、それぞれ 8 種類の負荷レベルについて評価するこ
ととする。なお、負荷レベルを決定する IR/txRate と、単位時間当りの処理性能(TPS)
を表す JOPS の絶対値は、本評価内容が SPEC の規定に反するため開示することができ
ない。そのため、これ以降に示す結果のグラフでは、それらの絶対値を明示せず、スケ
ールで表現する。比較のために、以降掲載のグラフでは、負荷レベル(横軸)および処
理性能(縦軸)それぞれのスケールの絶対値を、グラフ毎に同一とするとともに、評価
した負荷レベルには、負荷が低いものから順にアルファベット A∼H を割り当てる。
5.4.1.3
5.4.1.3.1
評価結果
トランザクション・タイプの設定割合と実際の投入割合
5.4.1.2.1 に示す評価パターンについて試験評価を試みたところ、パターン 1 および 4
において、予期せぬ事象が発生した。問題の詳細については 5.5.1.2.1 で考察する。最終
的には、パターン 1 および 4 を表 5.4-6 のように変更して、評価を実施した。
表 5.4-6 評価パターンとトランザクション・タイプの割合
purchaseWeight
manageWeight
browseWeight
正規投入
25
25
50
パターン 1
99
1
0
パターン 2
0
100
0
パターン 3
0
0
100
パターン 4
45
25
30
評価パターン
評価の結果、パターン 1∼4 で設定したトランザクション・タイプの割合に対して、実
際に投入された割合を表 5.4-7∼表 5.4-8 に示す。
− 5-39 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-7 トランザクション・タイプの実際の投入率(パターン 1∼3)
負荷
レベル
パターン 1 (Purchase)
パターン 2 (Manage)
パターン 3 (Browse)
割合(%)
指定値との差
割合(%)
指定値との差
割合(%)
指定値との差
A
98.63
- 0.37
100
±0
100
±0
B
99.09
+ 0.09
100
±0
100
±0
C
99.04
+ 0.04
100
±0
100
±0
D
98.77
- 0.23
100
±0
100
±0
E
99.14
+ 0.14
100
±0
100
±0
F
99.16
+ 0.16
100
±0
100
±0
G
99.35
+ 0.35
100
±0
100
±0
H
99.43
+ 0.43
100
±0
100
±0
表 5.4-8 トランザクション・タイプの実際の投入率(パターン 4)
負荷
レベル
Purchase
Manage
Browse
割合(%)
指定値との差
割合(%)
指定値との差
割合(%)
指定値との差
A
44.64
- 0.36
25.24
+ 0.24
30.13
+ 0.13
B
44.46
- 0.54
24.9
- 0.10
30.64
+ 0.64
C
45.16
+ 0.16
24.33
- 0.67
30.51
+ 0.51
D
44.48
- 0.52
25.92
+ 0.92
29.60
- 0.4
E
45.18
+ 0.18
24.81
- 0.19
30.06
+ 0.06
F
45.72
+ 0.72
24.61
- 0.39
29.66
- 0.34
G
45.22
+ 0.22
25.21
+ 0.21
29.57
- 0.43
H
45.21
+ 0.21
24.54
- 0.46
30.25
+ 0.25
パターン 2 および 3 については、設定割合の通りに投入されていることを確認した。
また、パターン 1 および 3 については、多少の誤差があるものの、設定割合に概ね則っ
ていることを確認した。
5.4.1.3.2
処理性能変化傾向と限界
(1) SPECjAppSrver2004 から取得した結果
各パターンの処理性能変化傾向を 1 つのグラフに纏めたものを、図 5.4-1 に示す。
− 5-40 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
処理性能
正規
パターン1
パターン2
パターン3
パターン4
A
B
C
D
負荷
E
F
G
H
図 5.4-1 処理性能の変化傾向
図 5.4-1 より、正規投入については、負荷レベル F 以降で処理性能限界となる。パタ
ーン 1 および 4 については、負荷 D と負荷 E の絶対値に開きがあるため正確なことは言
えないが、負荷 E もしくはそれ以前に処理性能限界に達している様子である。特に、パ
ターン 1 は、負荷レベル E 以前に限界到達しているものと推測できる。
パターン 2 および 3 では、本評価の負荷レベルの範囲では、処理性能限界に達するこ
とはなかった。
これらの傾向から、Purchase タイプの割合が大きいものほど、負荷レベルが小さいう
ちに限界性能に達し、かつ、処理性能限界が低い傾向にあることが分かる。
なお、どのパターンについても言えることであるが、同一条件下で評価を複数回実施
した場合、処理性能に多少の変化があることが見て取れた。この傾向は、パターン 1 の
高負荷下において顕著であった。また、測定時間が長いほど安定な処理性能を取得でき
る傾向がある。これらのことから、より正確な処理性能を取得するには、測定時間を長
くし、同一条件下における評価を複数回実施した平均値を取るべきと考える。
(2) カーネル・トレース・ツールから取得した結果
評価中に、カーネル・トレース・ツール(sysytat)により、各ホスト上のシステム・リ
ソース状況を取得した。AP サーバ・ホストと、システム負荷が高いと考えられる DB サ
ーバ・ホストのメモリおよび CPU に関する結果を、図 5.4-2∼図 5.4-5 に図示する。
− 5-41 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
100
正規
パターン1
パターン2
パターン3
パターン4
90
CPU利用率(%)
80
70
60
50
40
30
20
10
0
A
B
C
D
負荷
E
F
G
H
E
F
G
H
図 5.4-2 AP サーバの CPU 利用率
100
正規
パターン1
パターン2
パターン3
パターン4
90
CPU利用率(%)
80
70
60
50
40
30
20
10
0
A
B
C
D
負荷
図 5.4-3 DB サーバの CPU 利用率
− 5-42 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1200
メモリ使用量(Mbyte)
1000
800
600
正規
パターン1
パターン2
パターン3
パターン4
400
200
0
A
B
C
D
負荷
E
F
G
H
図 5.4-4 AP サーバのメモリ使用量
1200
メモリ使用量(Mbyte)
1000
800
600
正規
パターン1
パターン2
パターン3
パターン4
400
200
0
A
B
C
D
負荷
E
F
G
H
図 5.4-5 DB サーバのメモリ使用量
− 5-43 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ここで、図 5.4-2 は AP サーバ・ホストの CPU 利用率を示した図であり、図 5.4-3 は
DB サーバ・ホストの利用率を示した図である。一方、図 5.4-4 は AP サーバ・ホストの
メモリ使用量を示した図であり、図 5.4-5 は DB サーバ・サーバホストのメモリ使用量
を示した図である。
図 5.4-2 から、AP サーバ・ホストの CPU 利用率は、処理性能限界にならない範囲で
は、概ねリニアに増加している。高負荷時には、100%近くまで利用されており、CPU
を最大限利用する JBoss の特性が見て取れる。同時に、処理性能がこれ以上増加するこ
とがないのは、AP サーバの CPU が最大限利用されていることが原因と考える。
図 5.4-1 と図 5.4-2 を照らし合わせると、負荷レベル F で処理性能限界に達する正規
投入は、CPU の利用率に関して負荷レベル F 以上でほとんど変化がないことが分かる。
負荷レベル E 周辺で処理性能限界に達するパターン 4 も、やはり負荷レベル E 以降はほ
とんど CPU 利用率の変化がない。さらに、パターン 1 は、負荷レベル D ですでに CPU
利用率が 80%程度となっており、直に最大限に達する様子を示している。負荷レベル E
ではすでに最大限に達しているが、実際には負荷レベル E 以下で処理性能限界に段到達
していると推測される。
また、図 5.4-1 と図 5.4-2 からは、処理性能値が高いものほど CPU 利用率が低い傾向
にあることが分かる。特に、負荷レベル H で CPU 利用率が 60%程度と、まだ十分に余
裕があるパターン 2 については、さらに負荷を大きくしても処理性能が向上すると推測
される。パターン 2 は、処理性能および CPU 利用率もリニアに増加しており、この傾
向から、どの程度の負荷レベルで頭打ちとなるか、また、限界処理性能がいかほどかの
推測が可能と考えられる。一方、パターン 3 は、図 18 によれば 90%近くの CPU 利用率
となっており、直に性能限界に達すると推測できる。
DB サーバ・ホストに関しては、図 5.4-3 から、処理性能限界に到達しない範囲では、
概ねリニアに増加しているが、パターン 1 のみ、負荷レベル D において、異常に CPU
利用率が高くなっていることが分かる。
測定途中の 1 分間に CPU 利用率が急激に上昇していた負荷レベル D について、同一
条件下で再度評価を実施したところ、非常に興味深いことに、上昇具合が若干緩やかで
はあるが同様の傾向を示した。
原因の 1 つとして、
「待ち行列問題」も考えられる。AP サーバ・ホストと DB サーバ・
ホストにおける処理が均衡状態にあったのが、何らかのタイミングにより均衡状態が崩
れ、このような現象が発生したのではないかと推測されるが、現状では憶測の域を出な
い。かつ、このような現象に必ずしも再現性があるわけではないことを付け加えておく。
次に、AP サーバ・ホストのメモリ使用量に関して、図 5.4-4 から、概ね一定で推移し
ており、負荷レベルや処理性能とはほとんど関連性がないことが分かった。
− 5-44 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
最後に、DB サーバ・ホストのメモリ使用量は、図 5.4-5 から、右肩上がりに増加する。
本評価環境では、マシンの実メモリ・サイズが十分でなかったため、メモリ使用量が 700
∼800(MB)以上となる高負荷下では、必ずと言って良いほどスワップが発生してしまう
結果となった。これにより、DB サーバのメモリ不足が、性能上の阻害要因となってい
る可能性もある。
(3) 応答時間
SPECjAppServer2004 から取得される、各トランザクション・タイプの応答時間を図
5.4-6∼図 5.4-10 に示す。
− 5-45 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
25
Mfg
Purchase
Manage
Browse
応答時間(sec)
20
15
10
5
0
A
B
C
D
負荷
E
F
G
H
E
F
G
H
図 5.4-6 正規投入の応答時間
25
Mfg(正規)
Purchase(正規)
Mfg(パターン1)
Purchase(パターン1)
応答時間(sec)
20
15
10
5
0
A
B
C
D
負荷
図 5.4-7 正規投入とパターン 1 の応答時間比較
− 5-46 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
25
Mfg(正規)
Manage(正規)
Mfg(パターン2)
Manage(パターン2)
応答時間(sec)
20
15
10
5
0
A
B
C
D
負荷
E
F
G
H
E
F
G
H
図 5.4-8 正規投入とパターン 2 の応答時間
25
Mfg(正規)
Browse(正規)
Mfg(パターン3)
Browse(パターン3)
応答時間(sec)
20
15
10
5
0
A
B
C
D
負荷
図 5.4-9 正規投入とパターン 3 の応答時間比較
− 5-47 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
25
Mfg
Purchase
Manage
Browse
応答時間(sec)
20
15
10
5
0
A
B
C
D
負荷
E
F
G
H
図 5.4-10 パターン 4 の応答時間
− 5-48 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 5.4-6 は、正規投入の場合の、Dealer トランザクションの各タイプおよび Mfg トラ
ンザクションの応答時間を示す。
図 5.4-7 は、パターン 1 の場合の、Purchase タイプおよび Mfg トランザクションの
応答時間を、正規投入との比較で示す。
図 5.4-8 は、パターン 2 の場合の、Manage タイプおよび Mfg トランザクションの応
答時間を、正規投入との比較で示す。
図 5.4-9 は、パターン 3 の場合の、Browse タイプおよび Mfg トランザクションの応
答時間を、正規投入との比較で示す。
図 5.4-10 は、パターン 4 の場合の、Dealer トランザクションの各タイプおよび Mfg
トランザクションの応答時間を示す。
図 5.4-6 から、正規投入の場合、負荷レベル E∼F 辺りから応答時間が増加する傾向が
見て取れる。正規投入は、負荷レベル F 以降で処理性能限界となることは記述の通りで
あり、応答時間の増加が処理性能に影響していると考える。
同様に、図 5.4-7 から、負荷レベル D においてすでに応答時間の増加が始まっている
ことが分かる。パターン 1 は、負荷レベル E 以前から処理性能限界に達していることを
裏付けている。
パターン 4 についても同様に、図 5.4-10 から、負荷レベル D∼E の間に、応答時間の
増加が始まっていることが分かる。すなわち、パターン 4 が、負荷レベル E もしくはそ
れ以前に処理性能限界に達していると見ることができる。
以上より、応答時間の増加が処理性能限界に影響していることが明らかになった。
5.4.1.4
評価のまとめ
評価結果から、トランザクション・パターンの投入割合を変更することにより、概ね
設定通りの割合に則って投入し、評価を行えることを確認した。また、処理性能やシス
テム・リソース状況を調査した結果、投入割合の変化に応じて変化することを確認した。
これらのことから、トランザクション・タイプの投入割合を変化させることにより、
SPECjAppServer2004 を、より実ユーザ環境に近い環境を模擬したベンチマークとする
ことができると考える。
ただし、5.4.1.3.1 で既述の通り、投入割合の設定値によっては、不具合が発生するこ
とがあり、それに関しては注意が必要である。
− 5-49 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.4.2 プログラム動作解析を目的とした評価
5.4.2.1
5.4.2.1.1
目的と概要
本評価の目的
5.4.1 では、トランザクション・タイプの投入割合を変更した場合の、処理性能変化の
傾向を掌握することができた。しかし、前述の通り、SPECjAppServer2004 は、評価結
果としてシステム全体の処理性能を取得するものであり、プログラム内部での実際の振
る舞いについては知ることができないという課題がある。
プログラム内部の振る舞いを EJB メソッドのレベルから観察することができれば、例
えば、低負荷下における振る舞いと、高負荷下における振る舞いの違いを知ることがで
きる。その結果、高負荷下において実行時間の増加が大きい EJB メソッドがあれば、そ
のメソッドが処理性能限界の原因と言うことができる。ひいては、このような観察の結
果を、システムのサイジングのための指標として利用することが可能と考える。
本評価では、このようなミクロなレベルでの振る舞いを掌握するために、EJB メソッ
ドの実行回数、平均実行時間などを取得する EJB Profiler(付録「EJB Profiler 使用手
順書」参照)を使用し、SPECjAppServer2004 アプリケーションのプログラム動作の解
析を行うことを目的とする。
5.4.2.1.2
評価方法
EJB Profiler を JBoss に組み込み、SPECjAppServer2004 アプリケーションを実行
する。EJB Profiler の JBoss への組み込み手順は、付録「EJB Profiler 使用手順書」を
参照されたい。
5.4.2.1.3
評価項目
本評価における評価項目は、以下の通りである。
• 環境や負荷レベルが異なる場合における、EJB メソッドの振る舞いの違いを掌握する。
メソッドの振る舞いとして、実行回数と平均実行時間に着目した検証を行う。
5.4.2.2
5.4.2.2.1
評価内容
評価ポイントについて
評価は、本評価 5.2 記載の環境(以下、
「環境 1」とする)と、3 章記載の環境 A にお
いて SUSE LINUX Enterprise Server9 を使用した環境(以下、「環境 2」とする)の、
− 5-50 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
異なる 2 つの環境において実施する。また、それぞれの環境において、低負荷下(負荷
レベル A)と高負荷下(負荷レベル E)の計 2 つの評価ポイントを定める。
以下、各評価ポイントを、以下のように表すものとする。
表 5.4-9 評価ポイント
略号
説明
env1_低
環境 1 の低負荷下(負荷レベル A)における評価ポイント。
env1_高
環境 1 に高負荷下(負荷レベル E)における評価ポイント。
env2_低
環境 2 に低負荷下(負荷レベル A)における評価ポイント。
env2_高
環境 2 に高負荷下(負荷レベル E)における評価ポイント。
5.4.2.2.2
測定時間について
測定時間は、各測定ポイントに共通して、以下のように設定する。
表 5.4-10 測定時間
パラメータ名
triggerTime
30(sec)
rampUp
120(sec)
stdyState
720(sec)
rampDown
5.4.2.2.3
設定値
60(sec)
負荷レベルについて
各環境における負荷レベルの絶対値は、低負荷時および高負荷時で各々同一とする。
具体的には、env1_低および env2_低では、レベル A の負荷を与える。env1_高および
env2_高では、レベル E の負荷を与える。
5.4.2.3
評価結果
EJB Profiler により、SPECjAppServer2004 実行開始から終了までに実行された全て
の EJB メソッドについて結果を集計した。項目(ツールにより取得可能なデータ項目)
毎に集計した比較表一覧を、6 ページに渡って示す。メソッド名によりソートし、項目
毎に env1_低 → env1_高 → env2_低 → env2_高の順に集計している。
表 5.1-11 および 5.4-12 は、メソッド名(method_name)と、実行に要した総時間(total)の比
較結果を示す。表 5.4-13 および 5.4-14 は、実行回数(entries)と平均実行時間(average)を示
す。表 5.4-15 および 5.4-16 は、最小実行時間(min)と最大実行時間(max)を示す。なお、時
間の単位は全て msec である。また、■は実行回数が多かった上位15メソッドを示
し、■は平均実行時間が長かった上位15メソッドを示す。
− 5-51 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-11 メソッド名と実行に要した時間(1)
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
method_name
org.spec.jappserver.corp.corpauditses.ejb.CorpAuditSesEJB.getCustomerCount
org.spec.jappserver.corp.corpauditses.ejb.CorpAuditSesEJB.remove
org.spec.jappserver.corp.corpauditses.ejb.CorpAuditSesEJB.validateInitialValues
org.spec.jappserver.corp.corpauditses.ejb.CorpAuditSesEJB[Home].create
org.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB.getBalance
org.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB.getCustomerInventoryEnt
org.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB.getDataBean
org.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB.hasSufficientCredit
org.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB.-mi.getMethod()_is_nullorg.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB.setBalance
org.spec.jappserver.corp.customerent.ejb.CustomerCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.corp.customerinventoryent.ejb.CustomerInventoryCmp20EJB.getDataBean
org.spec.jappserver.corp.customerinventoryent.ejb.CustomerInventoryCmp20EJB.remove
org.spec.jappserver.corp.customerinventoryent.ejb.CustomerInventoryCmp20EJB[Home].create
org.spec.jappserver.corp.customerinventoryent.ejb.CustomerInventoryCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.addInventory
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.checkCustomerCredit
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.getCustomerInfo
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.getInventory
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.remove
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.sellInventory
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.validateCustomer
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB[Home].create
org.spec.jappserver.mfg.assemblyent.ejb.AssemblyCmp20EJB.addInventory
org.spec.jappserver.mfg.assemblyent.ejb.AssemblyCmp20EJB.getBOMs
org.spec.jappserver.mfg.assemblyent.ejb.AssemblyCmp20EJB.-mi.getMethod()_is_nullorg.spec.jappserver.mfg.assemblyent.ejb.AssemblyCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.mfg.boment.ejb.BomCmp20EJB.getComponent
org.spec.jappserver.mfg.boment.ejb.BomCmp20EJB.getComponentId
org.spec.jappserver.mfg.boment.ejb.BomCmp20EJB.getLineNo
org.spec.jappserver.mfg.boment.ejb.BomCmp20EJB.getQty
org.spec.jappserver.mfg.componentent.ejb.ComponentCmp20EJB.addOrderedInventory
org.spec.jappserver.mfg.componentent.ejb.ComponentCmp20EJB.deliver
org.spec.jappserver.mfg.componentent.ejb.ComponentCmp20EJB.getQtyRequired
org.spec.jappserver.mfg.componentent.ejb.ComponentCmp20EJB.takeInventory
org.spec.jappserver.mfg.componentent.ejb.ComponentCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.mfg.inventoryent.ejb.InventoryCmp20EJB.add
org.spec.jappserver.mfg.inventoryent.ejb.InventoryCmp20EJB.addOrdered
org.spec.jappserver.mfg.inventoryent.ejb.InventoryCmp20EJB.getOnHand
org.spec.jappserver.mfg.inventoryent.ejb.InventoryCmp20EJB.getOrdered
org.spec.jappserver.mfg.inventoryent.ejb.InventoryCmp20EJB.take
org.spec.jappserver.mfg.inventoryent.ejb.InventoryCmp20EJB.takeOrdered
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB.getLargeOrderInfo
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB.getNumCategories
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB.remove
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB[Home].create
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB[Home].findAll
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB[Home].findByCategory
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderCmp20EJB[Home].findByOrderLine
org.spec.jappserver.mfg.largeordermdb.ejb.LargeOrderMDB.onMessage
org.spec.jappserver.mfg.largeorderses.ejb.LargeOrderSesEJB.findLargeOrders
org.spec.jappserver.mfg.largeorderses.ejb.LargeOrderSesEJB.remove
org.spec.jappserver.mfg.largeorderses.ejb.LargeOrderSesEJB[Home].create
org.spec.jappserver.mfg.mfgauditses.ejb.MfgAuditSesEJB.getDeliveryStats
org.spec.jappserver.mfg.mfgauditses.ejb.MfgAuditSesEJB.getNumCategoriesLO
org.spec.jappserver.mfg.mfgauditses.ejb.MfgAuditSesEJB.getWorkOrderCount
org.spec.jappserver.mfg.mfgauditses.ejb.MfgAuditSesEJB.remove
org.spec.jappserver.mfg.mfgauditses.ejb.MfgAuditSesEJB.validateInitialValues
org.spec.jappserver.mfg.mfgauditses.ejb.MfgAuditSesEJB[Home].create
org.spec.jappserver.mfg.receivemdb.ejb.ReceiveMDB.onMessage
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB.finish
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB.getId
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB.process
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB.update
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB[Home].create
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.completeWorkOrder
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.remove
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.scheduleWorkOrder
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.updateWorkOrder
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB[Home].create
org.spec.jappserver.orders.fulfillordermdb.ejb.FulfillOrderMDB.onMessage
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.browseForward
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.browseReverse
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.getCurrentMax
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.getCurrentMin
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.getItems
− 5-52 −
total(1:低) total(1:高) total(2:低) total(2:高)
14
99
13
105
0
0
0
0
67
585
49
490
0
1
1
1
341
4457
88
390
9241
943592
7004
273507
2711
495873
1808
80756
430
113633
588
15599
1641
138670
971
32086
1372
1341
45
275
23514
3646022
10554
1432669
14825
1078974
8886
306231
3961
268348
1806
49157
935
74151
2329
148308
1387
128506
794
39049
1252
97771
2533
161733
920
416181
1169
114365
11474
1806496
6904
455542
36779
3388841
22999
1417083
3213
54380
1054
141619
13433
1233445
5901
339560
10681
1084028
1825
80872
501
50136
593
10612
2915
324073
2416
137332
3044
159768
1867
59282
2025
163644
1401
59738
3747
286443
2325
149150
18691
1239336
12791
514031
693
43045
553
6688
1015
92149
957
15051
2992
377481
5766
161588
17
435
29
267
495
107887
531
93286
53206
4056944
42296
1512765
1340
54478
1397
14636
17269
1153420
11624
552143
1036
111506
966
62566
7
55
12
72
13322
927034
10476
367373
12706
944808
9883
344033
410
15989
486
5273
116
17935
115
16184
90
183
4
144
1
0
0
0
460
63302
159
14891
391
73667
845
36503
2
2
1
3
899
38605
903
16091
446
130878
189
10576
469
88177
817
38151
1592
55717
1484
26025
0
0
1
0
1
1
1
0
12
348
11
201
60
60
86
94
4
25
4
36
0
1
1
0
18
49
17
45
1
1
0
0
750
156244
729
155440
5789
602041
4472
260824
62
1269
60
861
83222
6207351
68267
2336343
2899
480469
2505
133796
10199
1179483
8289
652839
4565
1174511
2490
360270
19038
1482610
8941
516382
0
4
0
13
116240
8817270
93288
3449152
9802
1813350
6765
553885
15
2467
12
128
5545
184171
2154
124678
5020
606779
5775
164164
1540
134893
1650
53618
356
22439
1257
19014
486
22646
1289
31912
6113
1089540
6069
206718
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-12 メソッド名と実行に要した時間(2)
#
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
method_name
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.getTotalItems
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB.remove
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB[Home].create
org.spec.jappserver.orders.itemBrowserSes.ejb.ItemBrowserSesEJB[Home].getEJBObject
org.spec.jappserver.orders.itement.ejb.ItemCmp20EJB.getDataBean
org.spec.jappserver.orders.itement.ejb.ItemCmp20EJB.getId
org.spec.jappserver.orders.itement.ejb.ItemCmp20EJB[Home].findByCategory
org.spec.jappserver.orders.itement.ejb.ItemCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.orders.orderauditses.ejb.OrderAuditSesEJB.getOrderCount
org.spec.jappserver.orders.orderauditses.ejb.OrderAuditSesEJB.remove
org.spec.jappserver.orders.orderauditses.ejb.OrderAuditSesEJB.updateItemPrice
org.spec.jappserver.orders.orderauditses.ejb.OrderAuditSesEJB.validateInitialValues
org.spec.jappserver.orders.orderauditses.ejb.OrderAuditSesEJB[Home].create
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB.getCustomerId
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB.getDataBean
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB.-mi.getMethod()_is_nullorg.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB.remove
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB[Home].create
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB[Home].findByCustomer
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.orders.orderent.ejb.OrderCmp20EJB[Home].findOpenOrdersByCustomer
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.getDataBean
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.getItemId
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.getQuantity
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.getTotalValue
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.-mi.getMethod()_is_nullorg.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.remove
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.setOlineStatus
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB.setShipDate
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB[Home].create
org.spec.jappserver.orders.orderlineent.ejb.OrderLineCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB.cancelOrder
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB.getItemInfo
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB.getOpenOrders
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB.getOrderCount
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB.newOrder
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB.remove
org.spec.jappserver.orders.orderses.ejb.OrderSesEJB[Home].create
org.spec.jappserver.supplier.buyermdb.ejb.BuyerMDB.onMessage
org.spec.jappserver.supplier.poent.ejb.POCmp20EJB.generateXml
org.spec.jappserver.supplier.poent.ejb.POCmp20EJB.-mi.getMethod()_is_nullorg.spec.jappserver.supplier.poent.ejb.POCmp20EJB.poLineDelivered
org.spec.jappserver.supplier.poent.ejb.POCmp20EJB[Home].create
org.spec.jappserver.supplier.poent.ejb.POCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.supplier.polineent.ejb.POLineCmp20EJB.createXml
org.spec.jappserver.supplier.polineent.ejb.POLineCmp20EJB.setDeliveredDate
org.spec.jappserver.supplier.polineent.ejb.POLineCmp20EJB[Home].create
org.spec.jappserver.supplier.polineent.ejb.POLineCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.supplier.receiverses.ejb.ReceiverSesEJB.deliverPO
org.spec.jappserver.supplier.receiverses.ejb.ReceiverSesEJB.remove
org.spec.jappserver.supplier.receiverses.ejb.ReceiverSesEJB[Home].create
org.spec.jappserver.supplier.scomponentent.ejb.SComponentCmp20EJB.checkForPO
org.spec.jappserver.supplier.scomponentent.ejb.SComponentCmp20EJB.deliveredQuantity
org.spec.jappserver.supplier.scomponentent.ejb.SComponentCmp20EJB.getLeadTime
org.spec.jappserver.supplier.scomponentent.ejb.SComponentCmp20EJB.updateQuantities
org.spec.jappserver.supplier.scomponentent.ejb.SComponentCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.supplier.supplierauditses.ejb.SupplierAuditSesEJB.getPOCount
org.spec.jappserver.supplier.supplierauditses.ejb.SupplierAuditSesEJB.getPOLineCount
org.spec.jappserver.supplier.supplierauditses.ejb.SupplierAuditSesEJB.getServletTx
org.spec.jappserver.supplier.supplierauditses.ejb.SupplierAuditSesEJB.remove
org.spec.jappserver.supplier.supplierauditses.ejb.SupplierAuditSesEJB.validateInitialValues
org.spec.jappserver.supplier.supplierauditses.ejb.SupplierAuditSesEJB[Home].create
org.spec.jappserver.supplier.suppliercompent.ejb.SupplierCompCmp20EJB.getDeliveryDate
org.spec.jappserver.supplier.suppliercompent.ejb.SupplierCompCmp20EJB.getDiscount
org.spec.jappserver.supplier.suppliercompent.ejb.SupplierCompCmp20EJB.getPrice
org.spec.jappserver.supplier.suppliercompent.ejb.SupplierCompCmp20EJB.getQuantity
org.spec.jappserver.supplier.suppliercompent.ejb.SupplierCompCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.supplier.supplierent.ejb.SupplierCmp20EJB.getID
org.spec.jappserver.supplier.supplierent.ejb.SupplierCmp20EJB.getPartSpec
org.spec.jappserver.supplier.supplierent.ejb.SupplierCmp20EJB[Home].findAll
org.spec.jappserver.util.sequenceent.ejb.SequenceCmp20EJB.nextSequenceBlock
org.spec.jappserver.util.sequenceent.ejb.SequenceCmp20EJB[Home].findByPrimaryKey
org.spec.jappserver.util.sequenceses.ejb.SequenceSesEJB.nextKey
org.spec.jappserver.util.sequenceses.ejb.SequenceSesEJB.remove
org.spec.jappserver.util.sequenceses.ejb.SequenceSesEJB[Home].create
− 5-53 −
total(1:低) total(1:高) total(2:低) total(2:高)
375
15568
1258
20484
12
95
13
1175
104
31887
78
12219
1034
546298
1728
315537
4535
474573
4742
139910
3348
292016
3823
59982
1238
39458
342
38415
399
216893
696
37933
4
14
4
12
0
1
0
1
4
4
4
29
32
56
30
47
20
20
20
20
981
29661
913
23664
2851
266928
2701
47387
22
4240
42
248
1434
120634
835
33463
3947
197831
3265
132521
7
6
6
6
256
72437
253
25837
2643
399975
2597
370675
1995
201708
1832
32046
9
59
10
50
10
21
5
98
3
24
2
45
35
1038
42
225
743
38839
304
7299
112
21642
183
10769
4
385
7
121
2298
145017
1657
34863
155
22080
122
16764
1540
138950
957
36294
1396
465230
1793
65576
8212
830250
6566
454064
15
10
10
8
14611
1024569
10872
450736
387
15466
786
78908
363
16669
419
2904
15560
579082
6807
603732
23
636
29
636
6
114
12
91
531
50773
495
29183
862
29911
821
101984
171
16609
161
11923
12
419
17
259
174
18646
201
8964
254
17992
278
16372
149
14020
162
10381
10564
527772
6927
210161
14
136
59
6999
12
10265
18
245
227
16664
204
44730
182
22954
141
11573
58
1875
55
1125
6
1634
11
9823
5344
99878
522
116290
10
11
8
9
7
56
6
9
5
4
3
3
0
0
0
0
15
87
11
79
1
1
0
1
71
1455
86
1340
259
2136
99
1264
1800
143884
1659
117208
64
4296
48
961
1775
145710
1731
112915
2
36
5
57
4578
338338
4256
257273
198
13625
131
26858
356
2245
242
8564
647
1974
519
6382
1176
9199
896
16336
35
271
92
7059
64
1047
74
1282
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-13 実行回数と平均実行時間(1)
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
entries(1:低) entries(1:高) entries(2:低) entries(2:高) average(1:低) average(1:高) average(2:低) average(2:高)
2
2
2
2
7
49.5
6.5
52.5
1
1
1
1
0
0
0
0
1
1
1
1
67
585
49
490
1
1
1
1
0
1
1
1
572
5860
576
3788
0.5962
0.7606
0.1528
0.103
1974
18498
1830
11620
4.6814
51.0105
3.8273
23.5376
956
8668
891
5531
2.8358
57.2073
2.0292
14.6006
226
2063
211
1285
1.9027
55.0814
2.7867
12.1393
765
8009
803
4972
2.1451
17.3143
1.2092
6.4533
572
5860
576
3788
2.3986
0.2288
0.0781
0.0726
3812
35947
3582
22826
6.1684
101.4277
2.9464
62.7648
6193
67641
7123
48009
2.3938
15.9515
1.2475
6.3786
452
4706
454
3095
8.7633
57.0225
3.978
15.8827
313
3303
349
1877
2.9872
22.4496
6.6734
79.0133
452
4706
454
3096
3.0686
27.3068
1.7489
12.6127
176
1705
166
990
7.1136
57.3437
15.259
163.3667
226
2063
211
1285
4.0708
201.7358
5.5403
89
956
8668
891
5531
12.0021
208.4098
7.7486
82.3616
1974
18498
1830
11620
18.6317
183.2004
12.5678
121.9521
3803
35920
3572
22789
0.8449
1.5139
0.2951
6.2144
452
4706
454
3096
29.719
262.1005
12.9978
109.677
28
307
30
304
381.4643
3531.0358
60.8333
266.0263
3806
35941
3576
22820
0.1316
1.395
0.1658
0.465
594
5243
582
5654
4.9074
61.8106
4.1512
24.2894
594
5243
582
5654
5.1246
30.4726
3.2079
10.485
594
5243
582
5654
3.4091
31.2119
2.4072
10.5656
1782
15729
1746
16962
2.1027
18.2111
1.3316
8.7932
5869
52258
5797
56865
3.1847
23.7157
2.2065
9.0395
5869
52258
5797
56865
0.1181
0.8237
0.0954
0.1176
5869
52258
5797
56865
0.1729
1.7633
0.1651
0.2647
5869
52258
5797
56865
0.5098
7.2234
0.9947
2.8416
96
971
108
846
0.1771
0.448
0.2685
0.3156
96
971
108
846
5.1562
111.1092
4.9167
110.2671
5869
52258
5797
56865
9.0656
77.633
7.2962
26.6027
5869
52258
5797
56865
0.2283
1.0425
0.241
0.2574
5965
53229
5905
57711
2.8951
21.669
1.9685
9.5674
690
6214
690
6500
1.5014
17.9443
1.4
9.6255
96
971
108
846
0.0729
0.0566
0.1111
0.0851
5869
52258
5797
56865
2.2699
17.7396
1.8071
6.4604
5869
52258
5797
56865
2.1649
18.0797
1.7048
6.05
5869
52258
5797
56865
0.0699
0.306
0.0838
0.0927
96
971
108
846
1.2083
18.4706
1.0648
19.13
54
705
42
305
1.6667
0.2596
0.0952
0.4721
1
1
1
1
1
0
0
0
55
550
43
296
8.3636
115.0945
3.6977
50.3074
55
551
43
296
7.1091
133.6969
19.6512
123.3209
2
2
2
2
1
1
0.5
1.5
444
243
446
373
2.0248
158.8683
2.0247
43.1394
54
549
42
295
8.2593
238.3934
4.5
35.8508
54
550
42
295
8.6852
160.3218
19.4524
129.3254
446
245
448
375
3.5695
227.4163
3.3125
69.4
3
3
3
3
0
0
0.3333
0
3
3
3
3
0.3333
0.3333
0.3333
0
1
1
1
1
12
348
11
201
1
1
1
1
60
60
86
94
1
1
1
1
4
25
4
36
1
1
1
1
0
1
1
0
1
1
1
1
18
49
17
45
1
1
1
1
1
1
0
0
96
971
108
846
7.8125
160.9104
6.75
183.7352
594
5243
582
5654
9.7458
114.8276
7.6838
46.1309
594
5243
582
5654
0.1044
0.242
0.1031
0.1523
594
5243
582
5654
140.1044
1183.9311
117.2973
413.2195
1188
10486
1164
11308
2.4402
45.82
2.1521
11.832
594
5243
582
5654
17.17
224.9634
14.2423
115.465
1782
15729
1746
16962
2.5617
74.6717
1.4261
21.2398
594
5243
582
5654
32.0505
282.7789
15.3625
91.3304
3
30
3
30
0
0.1333
0
0.4333
594
5243
582
5654
195.6902
1681.7223
160.2887
610.0375
1188
10486
1164
11308
8.2508
172.9306
5.8119
48.9817
57
579
45
325
0.2632
4.2608
0.2667
0.3938
54
549
42
295
102.6852
335.4663
51.2857
422.6373
4620
41230
4460
26840
1.0866
14.7169
1.2948
6.1164
1386
12369
1338
8052
1.1111
10.9057
1.2332
6.659
7352
66568
7084
42983
0.0484
0.3371
0.1774
0.4424
7352
66568
7084
42983
0.0661
0.3402
0.182
0.7424
1349
12972
1289
8094
4.5315
83.9917
4.7083
25.5397
− 5-54 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-14 実行回数と平均実行時間(2)
#
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
entries(1:低) entries(1:高) entries(2:低) entries(2:高) average(1:低) average(1:高) average(2:低) average(2:高)
7352
66568
7084
42983
0.051
0.2339
0.1776
0.4766
30
291
31
271
0.4
0.3265
0.4194
4.3358
31
309
33
300
3.3548
103.1942
2.3636
40.73
7351
66550
7082
42954
0.1407
8.2088
0.244
7.3459
70151
637925
68096
412941
0.0646
0.7439
0.0696
0.3388
3100
61800
3300
60000
1.08
4.7252
1.1585
0.9997
31
309
33
300
39.9355
127.6958
10.3636
128.05
4557
51829
4786
31744
0.0876
4.1848
0.1454
1.195
1
1
1
1
4
14
4
12
2
2
2
2
0
0.5
0
0.5
1
1
1
1
4
4
4
29
1
1
1
1
32
56
30
47
2
2
2
2
10
10
10
10
54
549
42
295
18.1667
54.0273
21.7381
80.2169
508
5628
514
2692
5.6122
47.4286
5.2549
17.6029
598
5816
562
3445
0.0368
0.729
0.0747
0.072
84
741
73
417
17.0714
162.7989
11.4384
80.247
222
2041
206
1253
17.7793
96.9285
15.8495
105.763
6
6
6
6
1.1667
1
1
1
652
6365
604
3740
0.3926
11.3805
0.4189
6.9083
1018
9830
939
6089
2.5963
40.6892
2.7657
60.8762
1442
15688
1332
7441
1.3835
12.8575
1.3754
4.3067
54
549
42
295
0.1667
0.1075
0.2381
0.1695
54
549
42
295
0.1852
0.0383
0.119
0.3322
54
549
42
295
0.0556
0.0437
0.0476
0.1525
482
4188
378
2388
0.0726
0.2479
0.1111
0.0942
241
2094
189
1194
3.083
18.5478
1.6085
6.1131
54
549
42
295
2.0741
39.4208
4.3571
36.5051
54
549
42
295
0.0741
0.7013
0.1667
0.4102
598
5816
562
3445
3.8428
24.9341
2.9484
10.1199
54
549
42
295
2.8704
40.2186
2.9048
56.8271
84
736
73
417
18.3333
188.7908
13.1096
87.036
1020
9832
941
6091
1.3686
47.3179
1.9054
10.766
1018
9830
939
6089
8.0668
84.4608
6.9925
74.5712
6
6
6
6
2.5
1.6667
1.6667
1.3333
223
2060
208
1282
65.5202
497.3636
52.2692
351.5881
2345
22440
2160
13851
0.165
0.6892
0.3639
5.6969
2348
22461
2164
13882
0.1546
0.7421
0.1936
0.2092
77
771
84
688
202.0779
751.0791
81.0357
877.5174
77
771
84
688
0.2987
0.8249
0.3452
0.9244
96
971
108
846
0.0625
0.1174
0.1111
0.1076
96
971
108
846
5.5312
52.2894
4.5833
34.4953
77
771
84
688
11.1948
38.7951
9.7738
148.2326
192
1942
216
1692
0.8906
8.5525
0.7454
7.0467
96
971
108
846
0.125
0.4315
0.1574
0.3061
96
971
108
846
1.8125
19.2029
1.8611
10.5957
96
971
108
846
2.6458
18.5294
2.5741
19.3522
96
971
108
846
1.5521
14.4387
1.5
12.2707
96
971
108
846
110.0417
543.5345
64.1389
248.4173
93
941
105
823
0.1505
0.1445
0.5619
8.5043
93
941
105
823
0.129
10.9086
0.1714
0.2977
96
971
108
846
2.3646
17.1617
1.8889
52.8723
96
971
108
846
1.8958
23.6395
1.3056
13.6797
1152
11652
1296
10152
0.0503
0.1609
0.0424
0.1108
96
971
108
846
0.0625
1.6828
0.1019
11.6111
288
2913
324
2538
18.5556
34.287
1.6111
45.8195
3
3
3
3
3.3333
3.6667
2.6667
3
3
3
3
3
2.3333
18.6667
2
3
1
1
1
1
5
4
3
3
1
1
1
1
0
0
0
0
1
1
1
1
15
87
11
79
1
1
1
1
1
1
0
1
1056
10681
1188
9306
0.0672
0.1362
0.0724
0.144
1056
10681
1188
9306
0.2453
0.2
0.0833
0.1358
1056
10681
1188
9306
1.7045
13.471
1.3965
12.5949
1056
10681
1188
9306
0.0606
0.4022
0.0404
0.1033
1056
10681
1188
9306
1.6809
13.642
1.4571
12.1336
77
771
84
688
0.026
0.0467
0.0595
0.0828
1056
10681
1188
9306
4.3352
31.6766
3.5825
27.6459
77
771
84
688
2.5714
17.6719
1.5595
39.0378
8
10
9
23
44.5
224.5
26.8889
372.3478
8
10
9
23
80.875
197.4
57.6667
277.4783
1261
11909
1264
9768
0.9326
0.7724
0.7089
1.6724
535
5344
555
3130
0.0654
0.0507
0.1658
2.2553
1261
11909
1264
9768
0.0508
0.0879
0.0585
0.1312
− 5-55 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-15 最小実行時間と最大実行時間(1)
#
min(1:低)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
7
0
67
0
0
1
1
1
0
0
0
0
2
1
0
0
2
3
4
0
8
2
0
2
1
1
0
1
0
0
0
0
3
3
0
0
0
0
0
0
0
0
0
1
1
2
1
1
1
2
1
0
0
12
60
4
0
18
1
5
5
0
40
1
4
1
8
0
57
3
0
11
0
0
0
0
0
min(1:高) min(2:低) min(2:高) max(1:低) ma(1:高) max(2:低) max(2:高)
49
6
52
7
50
7
53
0
0
0
0
0
0
0
585
49
490
67
585
49
490
1
1
1
0
1
1
1
0
0
0
290
1982
40
8
2
2
2
1122
7614
550
3955
2
1
1
405
11401
48
966
1
1
1
30
4186
77
1021
0
0
0
172
3843
50
888
0
0
0
1123
470
2
22
0
0
0
2813
18136
1382
4871
0
0
0
941
7940
173
4115
2
2
2
735
4579
106
1813
1
4
4
40
4729
148
1402
0
0
0
602
3355
57
1211
0
0
0
167
4879
193
3484
2
2
2
47
6289
139
1520
2
2
2
2439
18627
1400
3383
3
3
4
3570
8630
713
5430
0
0
0
2422
7552
41
4087
7
7
8
1156
7645
286
4309
1
2
1
2828
19694
531
4439
0
0
0
6
3331
49
524
2
2
3
52
16336
123
1717
1
1
1
318
9991
166
985
1
1
1
236
5969
31
1120
0
0
0
403
6790
39
1467
0
0
0
574
15894
329
1309
0
0
0
180
3961
36
617
0
0
0
27
4976
33
1998
0
0
0
39
4775
41
1109
0
0
0
2
148
3
78
3
3
3
14
15128
29
2106
3
3
4
573
20360
179
2595
0
0
0
38
3629
32
607
0
0
0
574
15778
278
1733
0
0
0
9
6541
89
1646
0
0
0
1
3
1
2
0
0
0
191
8216
77
976
0
0
0
569
16608
64
1321
0
0
0
9
3111
5
507
0
0
0
5
4580
6
848
0
0
0
82
15
1
38
0
0
0
1
0
0
0
1
1
1
82
9369
21
786
1
4
4
129
4220
358
1176
1
0
1
1
1
1
2
1
0
1
23
6302
98
2083
1
1
1
108
7657
83
650
1
4
5
215
6754
361
1177
2
1
1
96
8424
129
2085
0
0
0
0
0
1
0
0
0
0
1
1
1
0
348
11
201
12
348
11
201
60
86
94
60
60
86
94
25
4
36
4
25
4
36
1
1
0
0
1
1
0
49
17
45
18
49
17
45
1
0
0
1
1
0
0
5
4
4
46
15141
32
2430
5
4
6
259
16344
178
1994
0
0
0
5
327
1
111
32
42
46
2088
21957
1471
8438
1
1
1
261
11157
350
3839
3
6
6
793
23911
331
3811
0
0
0
279
10111
69
3846
8
8
10
819
18363
260
5865
0
0
0
0
1
0
4
42
60
62
2577
30897
2113
10575
4
3
4
383
12113
375
4063
0
0
0
7
1303
1
46
9
15
22
2837
19261
345
2419
0
0
0
318
19210
107
1541
0
0
0
169
15186
37
991
0
0
0
28
10737
28
607
0
0
0
6
4618
32
967
0
0
0
2250
20885
685
5657
− 5-56 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-16 最小実行時間と最大実行時間(2)
#
min(1:低)
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
0
0
1
0
0
0
2
0
4
0
4
32
0
1
0
0
6
3
1
0
1
0
0
0
0
0
1
1
0
1
1
7
0
1
2
7
0
0
48
0
0
3
3
0
0
1
1
1
73
0
0
1
1
0
0
0
2
2
5
0
15
1
0
0
0
0
0
0
0
0
4
4
0
0
0
min(1:高)
0
0
1
0
0
0
2
0
14
0
4
56
0
1
0
0
3
2
0
0
0
0
0
0
0
0
1
0
0
1
0
5
0
1
1
4
0
0
48
0
0
3
2
0
0
1
1
1
66
0
0
1
1
0
0
0
2
3
4
0
87
1
0
0
0
0
0
0
0
0
6
4
0
0
0
min(2:低)
0
0
1
0
0
0
2
0
4
0
4
30
0
1
0
0
4
5
1
0
0
0
0
0
0
0
1
1
0
1
0
6
0
1
1
8
0
0
40
0
0
3
5
0
0
1
1
1
21
0
0
1
1
0
0
0
2
2
3
0
11
0
0
0
0
0
0
0
0
0
4
5
0
0
0
min(2:高)
0
0
1
0
0
0
2
0
12
0
29
47
0
1
0
0
5
6
1
0
1
0
0
0
0
0
1
1
0
1
0
6
0
1
1
8
0
0
68
0
0
3
6
0
0
1
1
0
19
0
0
1
1
0
0
0
1
2
3
0
79
1
0
0
0
0
0
0
0
1
6
7
0
0
0
max(1:低) ma(1:高) max(2:低) max(2:高)
48
4203
71
771
4
44
1
425
29
4232
17
3503
3
9729
82
1122
285
4924
70
846
1385
4774
186
889
387
2649
61
2077
59
5054
105
785
4
14
4
12
0
1
0
1
4
4
4
29
32
56
30
47
20
20
20
20
103
5040
238
1366
56
4452
77
2319
1
1914
2
15
379
5573
58
1033
1063
5755
336
3489
2
2
1
1
73
11702
46
895
719
7152
608
2342
36
3365
65
1973
4
10
6
5
6
1
1
55
1
1
1
16
1
211
9
18
252
1878
12
427
30
12482
97
603
1
357
1
42
624
5735
123
728
50
9223
52
757
389
5574
60
2312
153
6678
263
3537
877
9354
615
2928
3
2
2
2
3278
22022
705
5500
3
2677
120
1163
68
2499
24
346
4574
18969
847
18007
1
271
1
310
1
23
3
21
80
3201
31
1974
403
3387
164
3915
6
1017
10
1028
1
271
1
169
6
1791
7
634
17
1632
31
1196
5
1157
26
753
465
21190
387
4643
1
11
17
1002
1
3813
1
97
59
3268
31
818
41
4581
4
710
2
349
2
81
1
1561
1
2241
3595
16107
167
2340
5
6
4
5
3
49
2
5
5
4
3
3
0
0
0
0
15
87
11
79
1
1
0
1
2
572
1
282
178
636
2
90
275
5545
32
3840
3
2327
1
59
68
4485
63
3839
1
3
1
13
288
12381
74
4097
64
3253
11
858
145
1954
79
2592
259
748
140
1262
281
2702
220
3144
2
14
1
525
5
225
2
661
− 5-57 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
このような情報は、プログラム内部の動作を知る上で有益であると考える。中でも、実
行回数や実行時間の大きいメソッドは、システムの性能限界の原因となり得ると考えら
れ、極めて重要である。ここでは、実行回数および平均実行時間に着目して結果を述べ
ることとする。
表 5.4-11∼5.4-16 の結果のうち、メソッドの実行回数と平均実行時間をグラフ化した
ものを、図 5.4-11∼図 5.4-14 に示す。
− 5-58 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷レベル
高
#82 #76 #78 #75 #81 #12 #36 #34 #28 #39 #40 #31 #35 #30 #29
低
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
90%
100%
図 5.4-11 環境 1 における実行回数の割合
負荷レベル
高
#82 #76 #78 #75 #81 #12 #36 #34 #28 #39 #40 #31 #35 #30 #29
低
0%
10%
20%
30%
40%
50%
60%
70%
80%
図 5.4-12 環境 2 における実行回数の割合
− 5-59 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
負荷レベル
高
#22 #116 #69 #63 #126 #72 #149 #3 #113 #55 #148 #84 #67 #89 #21
低
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
図 5.4-13 環境 1 における平均実行時間の割合
負荷レベル
高
#22 #116 #69 #63 #126 #72 #149 #3 #113 #55 #148 #84 #67 #89 #21
低
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
図 5.4-14 環境 2 における平均実行時間の割合
− 5-60 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 5.4‐11 は、env1_低と env1_高の、メソッド実行回数の割合を比較するものである。
図 5.4-12 は、env2_低と env2_高の、メソッド実行回数の割合を比較するものである。
図 5.4-11 および 5.4-12 は、env1_低の実行回数の大きいものから順にソートしている。
図 5.4-13 は、env1_低と env1_高の、メソッド平均実行時間の割合を比較する。図 5.4-14
は、env2_低と env2_高の、メソッド平均実行時間の割合を比較する。図 5.4-13 および
5.4-12 は、env1_低の平均実行時間の大きいものから順にソートしている。
なお、図中の「#」で始まる数字はメソッドの識別番号であり、表 5.4-11∼5.4-16 の「#」
に対応する。
5.4.2.3.1
メソッド実行回数
まず、各メソッドの実行回数からみた、性能上の阻害要因の抽出について記述する。
図 5.4-11 および図 5.4-12 から、いずれの環境/負荷においても、実行回数の多いメソ
ッドの上位 15 メソッドだけで、全体の約 6 割を占めていることが分かる。その中でも、
#82 のメソッドの実行回数が、全体の約 2 割強∼3 割弱を占めている。この#82 は、次
のメソッドである。
org.spec.jappserver.orders.itement.ejb.ItemCmp20EJB.getDataBean
getDataBean メソッドは、閲覧を目的としたユーザに、価格や割引などの情報を一覧
として返すものであり、情報を格納する DB テーブルにアクセスする。ユーザ・アクセ
スの入口となるディーラー・ドメインから直接アクセスされる顧客ドメインで実装され
ており、呼び出される頻度は極めて高い。ただし、平均実行時間は非常に小さいもので
あるため、処理性能のボトルネックになり難いと考える。
このように、EJB Profiler を用いると、実行回数の側面から、性能上の阻害要因とな
りそうなメソッドをリストアップできる。そして、リストアップされた個々のメソッド
に対して、動作要因等を照合することにより、効率的なチューニングを図ることが可能
になる。
5.4.2.3.2
平均実行時間
次に、各メソッドの平均実行時間からみた、性能上の阻害要因の抽出について記述す
る。
図 5.4-13 および 5.4-14 から、個々のメソッドについて、環境や負荷の違いにより、総
体的な平均実行時間の割合に変動があることが観測された。残念ながら、詳細な要因解
析には至っていないが、上位 15 メソッドだけで、全体の約 7 割を占めていることが分か
る。
ここで、環境により平均実行時間が異なっていた#22 について述べる。#22 は、次の
メソッドである。
− 5-61 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
org.spec.jappserver.corp.customerses.ejb.CustomerSesEJB.validateCustomer
ValidateCustomer メソッドは、ユーザ ID をキーにして、DB に対してユーザ情報を
取得する処理を行う。そのため、環境 1 および 2 では DB サーバ環境が異なることから、
平均実行時間の違いが発生したことを伺い知ることができる。また、DB への問い合わ
せを実行するスレッドであったため、高負荷時において極端に実行時間が延びたと考え
ることができる。
次に、環境 1 の低負荷下において、平均実行時間が大きい上位 15 メソッドの実行時間
を表 5.4-17 に示す。単位は msec であり、小数点以下は省略する。
表 5.4-17 平均実行時間
env1_低
#
env1_高
env2_低
env2_高
22
381
3531
60
266
116
202
751
81
877
69
195
1681
160
610
63
140
1183
117
413
126
110
543
64
248
72
102
335
51
422
149
80
197
57
277
3
67
585
49
490
113
65
497
52
351
55
60
60
86
94
148
44
224
26
372
84
39
127
10
128
67
32
282
15
91
89
32
56
30
47
21
29
262
12
109
また、表 5.4-17 に示すメソッドの実行回数は表 5.4-18 の通りである。
− 5-62 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 5.4-18 実行回数
env1_低
#
env1_高
env2_低
env2_高
22
28
307
30
304
116
77
771
84
688
69
594
5243
582
5654
63
594
5243
582
5654
126
96
971
108
846
72
54
579
42
295
149
8
10
9
23
3
1
1
1
1
113
223
2060
208
1282
55
1
1
1
1
148
8
10
9
23
84
31
309
33
300
67
594
5243
582
5654
89
1
1
1
1
21
452
4706
454
3096
表 5.4-17 および 5.4-18 によれば、#63 と#69 は相対的に、平均実行時間も実行回数も
大きい。そこで、この 2 つのメソッドの処理について述べる。#63 および#69 はそれぞ
れ、次のメソッドである。
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB.process
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.scheduleWorkOrder
scheduleWorkOrder メソッドは、製造注文を受注し、製造に必要なパーツの割り当て
を行う他に、在庫が少ないパーツがあればサプライヤに注文する。このメソッドは、内
部で#63 の process メソッドを呼び出す。表 5.4-18 によれば scheduleWorkOrder メソ
ッドと process メソッドの実行回数は同じであることから、process メソッドは必ず
scheduleWorkOrder メソッドから呼ばれ、それ以外のメソッドから呼ばれることはない。
表 5.4-17 によれば、scheduleWorkOrder メソッドの実行時間の大部分を process メ
ソッドが占めていることが分かる。process メソッドは、在庫状況を管理し、必要に応じ
て発注を行う。在庫状況の管理は Entity Bean 経由でデータ・アクセスすることで行い、
発注は JMS サーバにメッセージ送信することで行う。WorkOrderCmpEJB クラスには
他にも、JMS サーバにメッセージ送信する finish メソッドがあるが、メッセージ送信以
外の処理はほとんど存在しない。process メソッドと finish メソッドのメッセージ送信
の実行時間がほぼ同等と仮定すると、process メソッドにおけるメッセージ送信が実行時
− 5-63 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
間全体に占める割合は 0.5∼1 割程度である。このことから、process メソッドの実行時
間の大半は、データ・アクセスによるものと考えてよい。データ・アクセスする各メソ
ッドの実行時間は小さなものであるが、process メソッド内では、テーブルに存在するデ
ータに繰り返しアクセスするロジックとなっている。データ数が大きいため、メソッド
全体の実行時間が大きくなっているものと考える。
このように、EJB Profiler を用いると、平均実行回数の側面から、性能上の阻害要因
となりそうなメソッドをリストアップできる。既述の実行回数と平均実行時間とを組み
合わせることにより、より正確なリストアップが可能になる。そして、リストアップさ
れた個々のメソッドに対して、動作要因等を照合することにより、効率的なチューニン
グが可能になる。
5.4.2.4
評価のまとめ
SPECjAppServe2004 アプリケーションの内部の振る舞いを、EJB メソッドレベルで
観察することができた。その結果、全体的な傾向の把握と、実行回数および平均実行時
間がともに大きい一部のメソッドを特定することができた。今回は、より深いレベルで
の解析には至らなかったが、このような解析は、システム全体のボトルネックを特定す
る一手段として有効であると考える。
− 5-64 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.5
分析と考察
5.5.1 トランザクション投入割合を変化させることに関する分析と考察
処理性能限界に関する分析と考察
5.5.1.1
本評価における負荷レベルの範囲で、正規投入、パターン 1 および 4 に関して、処理
性能が頭打ちになることは、前述の通りである。これら 3 つのパターンの処理性能限界
値データをベースとして、各トランザクション・タイプの投入割合と処理性能の相関モ
デルを明確化することを試みる。このようなモデルが確立されれば、各トランザクショ
ン・タイプの投入割合を決めることにより、処理性能を導き出すことができ、サイジン
グのための有効な指標とできると考える。
本評価では、各トランザクション・タイプの割合の合計が 100 となるように調整しつ
つ、評価を実施している。このことから、2 つのトランザクション・タイプの割合を決
めれば、もう 1 つのトランザクション・タイプの割合も自ずと決まる。ここでは、2 つ
のトランザクション・タイプの割合を xy 平面上の x 軸、y 軸に取り、処理性能限界値を
z 軸とした 3 次元モデルにより、トランザクション・タイプの投入割合と処理性能の相
関のモデル化を試みるものとする。
また、前述の通り、異なる 3 ケースの処理性能限界値が明らかになっているため、相
関モデルを、3 つのデータから算出可能な 3 次元平面と仮定し、モデル化を試みるもの
とする。
まず、3 つのトランザクション・タイプのうち、Purchase タイプと Manage タイプを、
xy 平面上のそれぞれ x 軸、y 軸に取ることとした。
次に、3 次元平面の公式は、通常以下の通り表現される。
a*x+b*y+c*z=d
・・・①
a、b、c、d はそれぞれ係数であり、これらの数値を明らかにすることで、3 次元平面
を公式化することができる。
上記①式に、正規投入、パターン 1 および 4 のデータを代入することで、下記 3 式が
得られる。
25 * a + 25 * b + c * tps_r = d ・・・②
99 * a +
1 *b + c * tps_1 = d ・・・③
45 * a + 25 * b + c * tps_4 = d ・・・④
ここで、tps_r、tps_1、tps_4 はそれぞれ、正規投入、パターン 1 および 4 の処理性
− 5-65 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
能限界値とする。
②∼④の方程式を解くと、①式は以下のようになる。
12 * ( tps_r – tps_4 ) * x + ( 27 * tps_r + 10 * tps_1 - 37 * tps_4 ) * y + 240 * z
= 5 * ( 243 * tps_r + 50 * tps_1 – 245 * tps_4 ) ・・・⑤
すなわち、正規投入、パターン 1 および 4 の処理性能限界値を基データとして、処理
性能限界を 3 次元平面で表現する場合、その平面の公式は⑤のようになると考えられる。
処理性能限界値は、下記公式で算出できる。
z = { 5 * ( 243 * tps_r + 50 * tps_1 – 245 * tps_4 ) - 12 * ( tps_r – tps_4 ) * x
- ( 27 * tps_r + 10 * tps_1 - 37 * tps_4 ) * y } / 240 ・・・⑥
次に、上記公式⑥を使い、本評価の負荷レベル範囲では限界に達しなかったパターン
2 の処理性能限界値を推測することする。その推測値と実測値を比較し、上記公式⑥の
信頼性を検証する。
推測値を算出した結果、パターン 2 では、本評価の実測値が、推測される処理性能限
界値をすでに大きく超えており、少なくとも(x,y)=(0,100)となる点では、公式⑥は当て
はまらないことが分かった。恐らく、y 軸周辺では、公式⑥とは別の公式により表現さ
れるものと考えられる。
トランザクション・タイプと処理性能限界値の相関モデルは、実際には、複数の 3 次
元平面により構成されるか、もしくは複雑な曲面により表現されるものと考えるべきで
ある。従って、サイジングに適用し得るモデルを確立するには、処理性能限界値を取る
(x,y)パターンをより多く取得し、このような検討を積み重ねることが必要になる。
なお、ベースとするデータとして、ここではパターン 1 の限界処理性能を利用したが、
パターン 1 は処理性能に大きく影響する Purchase タイプを多く含む、極端な例と言え
る。より一般的な(x,y)パターンにおける処理性能限界値を取得し、それをベースとする
のが良い。
5.5.1.2
5.5.1.2.1
割合変更の制限に関する分析と考察
予期せぬ事象について
5.4.1.3.1 で、トランザクション・タイプの割合を(P,M,B)=(100,0,0)とした場合、報告
書作成時にエラーが発生し、処理性能が取得できなかった。
また、トランザクション・タイプの割合を(P,M,B)=(50,25,25)とした場合、Manage タ
イ プ は 概 ね 25% 程 度 投 入 さ れ る は ず で あ る 。 し か し 、 実 際 に は 0 と な り 、
(P,M,B)=(100,0,0)とした場合と同様の、報告書作成時のエラーが発生した。同時に、
Purchase タイプがおよそ 75%と、purchaseWeight+manageWeight の和と推測される
割合で投入されていることが判明した。
− 5-66 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
これより、トランザクション・タイプの投入割合を変化させて評価を実施する場合、
その変え方に注意が必要である。変え方によっては、報告書が正常に作成できないばか
りか、設定と異なる割合で投入されてしまうことがある。このような事象の発生条件を
見極めるために、purchaseWeight、manageWeight、browseWeight の幾つかの組み合
わせパターンについて、設定通りの割合で投入されるか検証を実施した。その結果を以
下に示す。
表 5.5-1 投入割合の不具合に関する検証
投入割合
検証結果
備考
(P,M,B)=(25,25,50)
○
正規投入のケース。
(P,M,B)=(50,25,25)
×
表 5.4-4 記載のパターン 4 のケース。
(P,M,B)=(25,50,25)
○
(P,M,B)=(40,20,40)
○
(P,M,B)=(20,40,40)
×
(P,M,B)=(40,40,20)
○
(P,M,B)=(40,30,30)
×
(P,M,B)=(30,40,30)
○
(P,M,B)=(0,50,50)
×
(P,M,B)=(100,0,0)
×
表 5.4-4 記載のパターン 1 のケース。
(P,M,B)=(0,100,0)
○
パターン 2 のケース。
(P,M,B)=(0,0,100)
○
パターン 3 のケース。
上記結果より、設定と異なる割合で投入されるのは、manageWeight=browseWeight
の場合と推測できる。その場合、いずれも、Manage タイプの実際の投入割合が 0 にな
り、Purchase タイプが Manage タイプの分まで投入される。そして、報告書作成時に 0
除算が発生するため、処理性能などのデータは取得できない。このことから、トランザ
クション・タイプの割合は、manageWeight≠browseWeight とする必要がある。
5.5.1.2.2
割合を変更した場合の結果について
5.4.1.3.1 では、トランザクション・タイプの投入割合を変更した場合の、実際の投入
率を示し、指定した投入割合に概ね則っていることを確認した。もっとも、
SPECjAppServer2004 が評価終了後に生成する報告書では、あくまでも正規投入時の投
入割合(P:25,M:25,B:50)を基に誤差範囲のテストを実施するため、当然ながら結果
は”FAILD”となる。また、報告書作成時に、トランザクション・タイプの投入割合に応
じて分岐処理が異なることにより、一部のデータが生成されないケースがある。
− 5-67 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
5.5.1.2.3
投入割合の合計値について
本評価では 3 つのトランザクション・タイプの投入割合値の合計を 100 になるように
調整しているが、整数値であれば、必ずしも合計が 100 である必要はない。もちろん、
割合の把握が容易という点で、合計を 100 にする意義は大きい。一方、本評価では、
Purchase タイプに偏らせるパターンをパターン 1 により近似したため、Manage タイプ
が 1%程度投入されるが、例えば、purchaseWeight=10000、manageWeight=1 のよう
に purchaseWeight の値を極端に大きくすることにより、Manage タイプの投入割合を
更に小さくすることができると考える。
5.5.2 トランザクションの投入割合の変更に関する隘路事項および課題
5.5.2.1
Mfg トランザクションの投入数を変化させた場合の評価
本評価では、Dealer トランザクションの各タイプの投入割合を変更させることにより、
更新系トランザクションが多いモデルや参照系トランザクションが多いモデルを仮想的
に近似した評価を実施した。一方、SPECjAppServer2004 は、Dealer トランザクショ
ン以外にも、システムに負荷を与える Mfg トランザクションがあり、この投入数を変化
させることで、また異なる変化傾向を取得できるものと推測する。実ユーザの動作環境
をより近似するには、Mfg トランザクションの投入数変化についても検証する必要があ
る。
5.5.3 プログラム動作解析に関する分析と考察
5.5.3.1
メソッドの平均実行時間のバラつきに関する考察
平均実行時間の大きいメソッドに着目した場合、異なる環境下では、負荷変化に伴う
メソッドの振る舞いの変化具合が異なることが分かった。
ただし、同時に、これらのメソッドは実行回数が比較的少なく、平均実行時間から大
きく外れた、言わば異常値の影響を受けやすいものと考えられる。そのため、平均実行
時間のみに着目するのは危険であり、実行時間のバラつきに関する検証や、そのバラつ
きの原因究明などが、必要になると言える。
5.5.3.2
EJB Profiler のオーバーヘッドに関する考察
5.4.2.2.1 記載の環境 1 において低負荷下および高負荷下における EJB Profiler のオー
バーヘッドを調査した。EJB Profiler を組み込まない場合と組み込んだ場合とで処理性
能を比較した結果、低負荷下において 1.8%程度劣化した。また、高負荷下において 3.6%
程度劣化した。一方、システム・リソースの CPU 利用率およびメモリ使用量を調べた
結果、むしろツールを組み込んでいない場合の方が若干ながらオーバーヘッドが高い様
子も見られたが、評価回数が少ないことによるバラつきと見られる。
− 5-68 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
いすれにせよ、本評価で使用した限りでは、EJB Profiler のオーバーヘッドは十分に
小さいものと考えられる。
5.5.4 プログラム動作解析に関する隘路事項および課題
5.5.4.1
トランザクション・レベルでの解析
本評価では、ミクロなレベルでの解析のため、EJB のメソッド毎に実行時間を集計す
るツールを使用した。実システムにおいては、より粒度の大きいトランザクション・レ
ベルでの解析が、特にユーザの観点からは必要になると考えられるため、そのような解
析を行えることが望ましい。
5.5.4.2
JBoss Profiler に関する調査
EJB Profiler による評価を実施中に、同様の機能を持つ JBoss Profiler なるツールを
JBoss グループで開発中であることが判明した。2005 年 2 月現在、十分な調査を行えて
いないが、今後詳細や動向などウォッチする予定である。
− 5-69 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6 商用 AP サーバとの比較
6.1 目的および概要
6.1.1 本評価の目的
Web システムを構築する際に、システムの大規模化に伴うスケーラビリティの確保やシ
ステムの可用性の向上などを目的として、クラスタ構成が広く採用されている。従来、大
規模クラスタを構築するには商用ソフトウェアが採用されてきた。しかし近年では、JBoss
や PostgreSQL に代表される OpenSourceSoftware(OSS)の機能の充実や安定性・スケーラ
ビリティの向上もあり、OSS が大規模クラスタでも選択肢となりつつある。
本評価の目的の一つは、Linux(OS 層)、PostgreSQL(DB 層)、JBoss(AP 層)、Apache
httpd(Web 層)と言う、代表的な OSS 群で構築された Java アプリケーション層のクラスタ
構成上で SPECjAppServer2004 を稼動させる手順を確立する事である。4 章 分散処理性能
比較との違いは、商用ソフトウェアである WebLogic(AP 層)によるクラスタ構成上での手
順も確立する点である。
さらなる目的としては、確立した手順を用いて性能測定を行い OSS と商用ソフトウェア
を比較することによって、大規模システム構築における OSS アプリケーションサーバを用
いたクラスタ構成の適用領域を明確にする事である。
6.1.2 テスト内容の概要
本評価では、OSS として JBoss を、商用ソフトウェアとして WebLogic を選び、アプリ
ケーションサーバのクラスタ構成を JBoss, WebLogic それぞれで構築しベンチマーク測定
を行う。JBoss, WebLogic それぞれのクラスタ構成上で J2EE アプリケーションベンチマ
ーク(SPECjAppServer2004)を実行し、アプリケーションサーバの台数を 1 台から 4 台へ変
化させた場合の性能を比較する。比較項目は、処理能力、応答時間、CPU 使用率等のサー
バリソース、スケーラビリティの 4 点である。
Java アプリケーション層のクラスタ化には、主に HttpSession のレプリケーションと
EJB のクラスタ対応が必要となる。これらは J2EE の仕様では規定されていない事項であ
りアプリケーションサーバの実装に依存している。JBoss, WebLogic 共にこれらの機能を備
えているが、4 章 分散処理性能比較では HttpSession レプリケーション機能を使用した測
定を行っていない。そのため本評価においては HttpSession レプリケーション機能を主な
評価対象とした性能測定を実施する。
また、WebLogic では DB2, Oracle 等の商用のデータベースサーバとの接続のみを保証し
ているが、本評価ではデータベースサーバとして JBoss, WebLogic 共に PostgreSQL を採
用する。
− 6-1 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2 環境定義
本節では、本評価における環境について示す。
6.2.1 ハードウェア一覧
本評価においては、表 6.2-1∼表 6.2-3 に示すサーバ(8 台)を使用した。
表 6.2-1 Driver, Emulator, Web/JMS サーバ(それぞれ 1 台)
分類
内容
Type
HP ProLiant DL360G4
CPU / Memory
2x3.4GHz Xeon-(e) / 2GB Memory
Disk
2x36GB HDD(SCSI), RAID0, write-cache
Network
Gigabit Ethernet(Intel)
Hostname
dl360g4c1, dl360g4c2, dl360g4web
IP Address
192.168.61.161, 192.168.61.162, 192.168.61.163
表 6.2-2 AP サーバ(4 台)
分類
内容
Type
HP ProLiant DL360G4
CPU / Memory
1x2.8GHz Xeon / 2GB Memory
Disk
2x36GB HDD(SCSI), RAID1
Network
Gigabit Ethernet(Intel)
Hostname
dl360g4ap1, dl360g4ap2, dl360g4ap3, dl360g4ap4
IP Address
192.168.61.164-167, 192.168.62.164-167
表 6.2-3 DB サーバ(1 台)
分類
内容
Type
HP ProLiant DL360G4
CPU / Memory
2x3.4GHz Xeon-(e) / 4GB Memory
Disk
2x36GB HDD(SCSI), RAID0, write-cache
Network
Gigabit Ethernet(Intel)
Hostname
dl360g4db
IP Address
192.168.62.168
− 6-2 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.2 ネットワーク構成
本評価のネットワーク構成を図 6.2-1 に示す。
163
164
Driver
dl360g4c1
Emulator
dl360g4c1
Web/JMS
dl360g4web
AP Server
dl360g3ap1
164
168
161
165
AP Server
dl360g3ap2
165
DB Server
dl360g4db
162
166
167
AP Server
dl360g3ap3
AP Server
dl360g3ap4
192.168.61.x
166
167
192.168.62.x
図 6.2-1 ネットワーク構成
ネットワークボトルネックを避けるため各機器は CISCO2970(WS-C2970G-24T-E)にギ
ガビットイーサネットで接続し、クライアント−Web/JMS−AP サーバ間と AP サーバ−
DB サーバ間は別セグメントとしている。
また、図中には示していないが、測定時にリモートシェルの実行やサーバリソース取得
などを行うための 192.168.1.x のセグメントが存在し、全てのサーバが接続されている。こ
のセグメントには SPECjAppServer2004 の実行に伴うトラフィックは流れない。
− 6-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.3 ソフトウェア一覧
本評価にて使用したソフトウェアを、サーバ毎に表 1.7-1 から
表 6.2-7 に示す。
表 6.2-4 Driver ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS (U3)
JDK
j2sdk1.4.2_04
アプリケーション
SPECjAppServer2004(負荷ツール)
その他
JBoss-4.0.0/WebLogic8.1SP3(build 用)
表 6.2-5 Emulator ソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS (U3)
JDK
j2sdk1.4.2_04
Emulator サーバ
jakarta-tomcat-4.1.31
表 6.2-6 Web/JMS サーバソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS (U3)
JDK
j2sdk1.4.2_04 / JRockit1.4.2_04
Web サーバ
Apache-2.0.46
Web-AP コネクタ mod_jk2.0.4 / wl_proxy(WebLogic8.1SP3)付属
JMS サーバ
JBoss-4.0.0/WebLogic8.1SP3
JMS ストア
Postgresql-7.4.6
その他
Apache-ant1.6.2(DB load 用)
表 6.2-7 AP サーバソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS (U3)
JDK
j2sdk1.4.2_04 / JRockit1.4.2_04
AP サーバ
JBoss-4.0.0/WebLogic8.1SP3
− 6-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-8 DB サーバソフトウェア
分類
ソフトウェア
OS
Red Hat Enterprise Linux AS (U3)
JDK
j2sdk1.4.2_04
DB サーバ
Postgresql-7.4.6
その他
Apache-ant1.6.2(DB load 用)
6.2.4 凡例について
本章では以降、ホスト名に関して表 6.2-9 の凡例を用いるものとする。
表 6.2-9 ホスト名凡例
略号
説明
DB_HOST
DB サーバ(PostgreSQL)を実行するホスト名
AP_HOST
AP サーバ(JBoss/WebLogic)を実行するホスト名
JMS_HOST
JMS サーバ(JBoss/WebLogic)を実行するホスト名
WEB_HOST
Web サーバ(Apache httpd)を実行するホスト名
DRIVER_HOST
Load Driver を実行するホスト名
EMULATOR_HOST Supplier Emulator(Tomcat)を実行するホスト名
同様にソフトウェア群のインストール先ディレクトリについて表 6.2-10 の凡例を用いる
ものとする。
表 6.2-10 インストール先ディレクトリ凡例
略号
説明
JAVA_DIR
J2SDK のインストール先ディレクトリ
ANT_DIR
Ant のインストール先ディレクトリ
PG_DIR
PostgreSQL のインストール先ディレクトリ
APACHE_DIR
Apache httpd のインストール先ディレクトリ
JBOSS_DIR
JBoss のインストール先ディレクトリ
WEBLOGIC_DIR
WebLogic のインストール先ディレクトリ
TOMCAT_DIR
Tomcat のインストール先ディレクトリ
SPEC_DIR
SPECjAppServer2004 インストール先ディレクトリ
本評価で用いた計算機のホスト名、IP アドレスの情報を表 6.2-11 に示す。
− 6-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-11 ホスト名、IP アドレス
略号
IP アドレス
IFACE
ホスト名
DB_HOST
dl360g4db
eth2
192.168.62.168
AP_HOST1
dl360g3ap1
eth1
192.168.61.164
AP_HOST2
dl360g3ap2
eth1
192.168.61.165
AP_HOST3
dl360g3ap3
eth1
192.168.61.166
AP_HOST4
dl360g3ap4
eth1
192.168.61.167
dl360g4web
eth1
192.168.61.163
DRIVER_HOST
dl360g4c1
eth1
192.168.61.161
EMULATOR_HOST
dl360g4c2
eth1
192.168.61.162
WEB_HOST
(JMS_HOST)
6.2.5 ベースラインパラメータ一覧(JBoss)
JBoss クラスタ測定において共通的に使用したパラメータを、ベースラインパラメータと
して以下に示す。注意点は以下の通り。
z
表では、主要なパラメータや変更すべきパラメータのみに絞っている。
z
環境に応じて変更する箇所については、太字で示した。
¾
本評価では全ホスト上でユーザ ossf を作成し、基本的には”ossf”のホームディレ
クトリ”/home/ossf”直下に各種ソフトウェアをインストールした。別ユーザを使
用する場合は、本章内の”/home/ossf”の記述を”/home/<ユーザ名>”に変更のこと。
¾
本評価で使用した PostgreSQL のユーザ名, パスワード, DB 名(表 6.2-53 ユー
ザ名 参照)と別のユーザ名,パスワード,DB 名を使用する場合は、本章内の
ossf(<PostgreSQL ユーザ名>), ossf(<password>), ossf(<DB 名>)等の記述を使
用するユーザ名, パスワード, DB 名に変更のこと。
¾
本評価で使用した IP アドレスと別の IP アドレスを使用する場合は、本章内の
IP アドレスを変更すること。
6.2.5.1 DB サーバ環境情報
JBoss クラスタ測定における DB サーバの環境情報を以下に示す。
6.2.5.1.1
OS 環境情報
DB サーバのカーネルパラメータを表 6.2-12 に示す。
表 6.2-12 カーネルパラメータ
パラメータ名
kernel.shmmax
設定値
536870912
備考
OS の共有メモリの設定
− 6-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.5.1.2
PostgreSQL の環境情報
PostgreSQL の環境を表 6.2-13、表 6.2-14、図 6.2-2 に示す。
表 6.2-13 /home/ossf/.bash_profile
環境変数
設定値
備考
PGLIB
/home/ossf/pgsql/lib
PostgreSQL のライブラリディレクトリ
PGDATA
/home/ossf/pgsql/data
PostgreSQL のデータディレクトリ
表 6.2-14 /home/ossf/psql/data/postgresql.conf
パラメータ名
設定値
備考
tcpip_socket
true
TPC/IP 接続の有効化
wal_buffers
128
WAL サイズ
effective_cache_size 65536
キャッシュサイズ
max_connections
300
同時最大接続数
shared_buffers
10000
共有メモリバッファ数
max_fsm_pages
20000
FSM サイズ
# PostgreSQL Client Authentication Configuration File
# ===================================================
# TYPE
DATABASE
USER
IP-ADDRESS
IP-MASK
local
all
all
# IPv4-style local connections:
host
all
all
127.0.0.1
host
all
all
192.168.1.161
host
all
all
192.168.1.168
host
all
all
192.168.61.161
host
all
all
192.168.61.162
host
all
all
192.168.61.163
host
all
all
192.168.61.164
host
all
all
192.168.61.165
host
all
all
192.168.61.166
host
all
all
192.168.61.167
host
all
all
192.168.62.164
host
all
all
192.168.62.165
host
all
all
192.168.62.166
host
all
all
192.168.62.167
host
all
all
192.168.62.168
METHOD
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
255.255.255.255
trust
図 6.2-2 /home/ossf/pgsql/data/pg_hba.conf
− 6-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.5.2 WEB/JMS サーバ環境情報
JBoss クラスタ測定における WEB/JMS サーバの環境情報を以下に示す。
OS 環境情報
6.2.5.2.1
WEB サーバで名前解決を行うために/etc/hosts の設定を図 6.2-3 の通りとした。
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.61.163
dl360g4web
192.168.61.164
dl360g3ap1
192.168.61.165
dl360g3ap2
192.168.61.166
dl360g3ap3
192.168.61.167
dl360g3ap4
127.0.0.1
localhost.localdomain
localhost
図 6.2-3 /etc/hosts
Apache httpd の環境情報
6.2.5.2.2
Apache の環境定義ファイルとパラメータ名、設定値を表 6.2-15 に示す。
なお、ThreadLimit 以下の設定値はパフォーマンス向上のためにチューニングした値で
ある。
表 6.2-15 /etc/httpd/conf/httpd.conf
パラメータ名
設定値
備考
ServerRoot
/etc/httpd
サーバルート
KeepAlive
Off
クライアントとの接続維持
Listen
0.0.0.0:80
リスンポート
LoadModule
jk2_module
Tomcat への proxy モジュール
modules/mod_jk2.so の読み込み
ThreadLimit
400
最大スレッド数
MinSpareThreads
400
最小待機スレッド数
MaxSpareThreads
400
最大待機スレッド数
StartServers
10
初期サーバ数
MaxClients
400
最大接続クライアント数
ThreadsPerChild
40
各子プロセスのスレッド数
MaxRequestsPerChild
0
子プロセスが再起動するまで
に処理するリクエスト数
− 6-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.5.2.3
mod_jk2 の環境情報
mod_jk2 の環境定義ファイルとパラメータ名、設定値を表 6.2-16 の通りとした。
表 6.2-16 /etc/httpd/conf/workers2.properties
カテゴリ
パラメータ、設定値
[logger]
[shm:]
備考
level=ERROR
ログレベル
file=${serverRoot}/logs/jk2.log
ログ出力ファイル
file=${serverRoot}/logs/jk2.shm
共有メモリの設定
[lb:lb]
ロードバランサグループの定義
[channel.socket:
tomcatId=dl360g3ap1
Tomcat/JBoss 用
192.168.61.164:
IP(192.168.61.164)に対するチャネ
8009]
ル設定
#[channel.socke
group=lb
ロードバランサグループの割り当て
#tomcatId=dl360g3ap2
Tomcat/JBoss 用
t:192.168.61.165
IP(192.168.61.165)に対するチャネ
:8009]
ル設定(※)
#[channel.socke
#group=lb
ロードバランサグループの割り当て
#tomcatId=dl360g3ap3
Tomcat/JBoss 用
t:192.168.61.166
IP(192.168.61.166)に対するチャネ
:8009]
ル設定(※)
#[channel.socke
#group=lb
ロードバランサグループの割り当て
#tomcatId=dl360g3ap4
Tomcat/JBoss 用
t:192.168.61.167
IP(192.168.61.167)に対するチャネ
:8009]
ル設定(※)
#group=lb
ロードバランサグループの割り当て
[status:]
ステータスワーカの定義
[uri:/jkstatus/*]
group=status:
コンテキストの割り当て
[uri:/*]
※
コンテキストの割り当て
測定において AP サーバ(AP_HOST1∼4)を複数台使用する場合は、使用するサーバ
のコメントを解除すること。
6.2.5.2.4
PostgreSQL の環境情報
WEB/JMS サーバの PostgreSQL に関する環境を表 6.2-17、表 6.2-18、図 6.2-4 に示す。
− 6-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-17 /home/ossf/.bash_profile
環境変数
設定値
備考
PGLIB
/home/ossf/pgsql/lib
PGDATA
/home/ossf/pgsql/data
表 6.2-18 /home/ossf/pgsql/data/postgresql.conf
パラメータ名
設定値
備考
tcpip_socket
true
TPC/IP 接続の有効化
wal_buffers
128
WAL サイズ
effective_cache_size
65536
キャッシュサイズ
max_connections
300
同時最大接続数
shared_buffers
10000
共有メモリバッファ数
max_fsm_pages
20000
FSM サイズ
# PostgreSQL Client Authentication Configuration File
# ===================================================
# TYPE
DATABASE
USER
local
all
all
IP-ADDRESS
IP-MASK
METHOD
trust
# IPv4-style local connections:
host
all
all
127.0.0.1
255.255.255.255
trust
host
all
all
192.168.1.161
255.255.255.255
host
all
all
192.168.61.163
255.255.255.255
trust
host
all
all
192.168.62.163
255.255.255.255
trust
trust
図 6.2-4 /home/ossf/pgsql/data/pg_hba.conf
− 6-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBoss の環境情報
6.2.5.2.5
WEB/JMS サーバの JBoss の設定セット名は”specjms”とした。環境定義ファイルとパラ
メータ名、設定値を表 6.2-19∼表 6.2-21 に示す。
表 6.2-19 /home/ossf/jboss-4.0.0/bin/run/conf
パラメータ名
設定値
JAVA_OPT
備考
ヒープサイズを 512MB に指
"-server -Xms512m -Xmx512m"
定
表 6.2-20 /home/ossf/jboss-4.0.0/server/specjms/deploy/postgres-ds.xml
パラメータ名
設定値
備考
jndi-name
PostgresDS
connection-url
jdbc:postgresql://192.168.61.163:5432/ossf_jms
<DB 名>が違う場合変
(<DB 名>)
更
ossf(<PostgreSQL ユーザ名>)
<PostgreSQL ユーザ
user-name
名>が違う場合変更
password
<password>が違う場
ossf(<password>)
合変更
max-pool-size
20
コネクションプール
数
表 6.2-21 /home/ossf/jboss-4.0.0/server/specjms/deploy/postgres-jdbc2-service.xml
パラメータ名
設定値
ConnectionManager
備考
JMS ストアへのコネクションプ
PostgresDS
ール数
6.2.5.3 AP サーバ環境情報
JBoss クラスタ測定における AP サーバの環境情報を以下に示す。
6.2.5.3.1
OS 環境情報
AP サーバ上のカーネルパラメータのパラメータ名、設定値を表 6.2-22 に、AP サーバで
名前解決を行うために変更したファイルと内容を図 6.2-5 に示す。
なお、これらの設定は AP サーバ 1∼4 まで共通である。
− 6-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-22 カーネルパラメータ
パラメータ名
設定値
備考
/sbin/ifconfig lo mtu
1500
MTU サイズの設定
kernel.msgmni
1024
メッセージキューの設定
kernel.sem
1000 32000 32 512
セマフォの設定
fs.file-max
65535
最大オープンファイル可能数
kernel.shmmax
2147483648
共有メモリの最大値
tcp のリッスンキューのサイズ
net.ipv4.tcp_max_syn_backlog 8192
# Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1
dl360g3ap1
localhost.localdomain
192.168.61.163
dl360g4web
192.168.61.164
dl360g3ap1
192.168.61.165
dl360g3ap2
192.168.61.166
dl360g3ap3
192.168.61.167
dl360g3ap4
127.0.0.1
localhost.localdomain
localhost
localhost
図 6.2-5 /etc/hosts
6.2.5.3.2
JBoss の環境情報
AP サーバ上の JBoss の設定セット名は”specall”と”specdefault”とした。環境定義ファイ
ルとパラメータ名、設定値を以下に示す。なお表 6.2-23 に示すのは設定セット”specall”
と”specdefault”共に共通の環境定義ファイルとパラメータ名、設定値、備考である。
表 6.2-23 /home/ossf/jboss-4.0.0/server/bin/run.conf
パラメータ名
設定値
JAVA_OPTS
"-server -Xms1024m -Xmx1024m ヒープサイズを 1GB に指定
-Xmn256m
備考
-XX:NewSize=256m
-XX:MaxNewSize=256m
-XX:PermSize=64m
-XX:MaxPermSize=64m
-XX:SurvivorRatio=8"
− 6-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
„
specall
設定セット”specall”の環境定義ファイルとパラメータ名、設定値を表 6.2-24∼表
6.2-27 に示す。
表 6.2-24 /home/ossf/jboss-4.0.0/server/specall/deploy/postgers-ds.xml
パラメータ名
設定値
備考
jndi-name
PostgresDS
connection-url
jdbc:postgresql://192.168.62.168:5432/ossf
<DB 名>が違う場合変更
(<DB 名>)
user-name
ossf(<PostgreSQL ユーザ名>)
<PostgreSQL ユーザ名>が違
う場合変更
password
ossf(<password>)
<password>が違う場合変更
max-pool-size
200
コネクションプール数(※)
※
測 定 に お い て AP サ ー バ (AP_HOST1 ∼ 4) を 複 数 台 使 用 す る 場 合 は 、 上 記 の
max-pool-size の設定値が 200 / AP 台数の値になるようにする。
表 6.2-25 /home/ossf/jboss-4.0.0/server/specall/deploy/tc5-cluster-service.xml
パラメータ名
設定値
SyncReplTimeout
30000
備考
セッションレプリケーションのタイム
アウト値
LockAcquisitionTimeout 30000
ロックのタイムアウト値
表 6.2-26 /home/ossf/jboss-4.0.0/server/specall/deploy/jbossweb-tomcat50.sar/server.xml
パラメータ名
設定値
備考
maxThreads
400
スレッド数
jvmRoute
dl360g3ap1(各ホスト名)
スティッキーセッションのため
の ID
表 6.2-27 /home/ossf/jboss-4.0.0/server/specall/deploy/jbossweb-tomcat50.sar/web.xml
パラメータ名
設定値
備考
development
false
JSP の変更チェック
keepgenerated
false
JSP コンパイル後の java ファイル
を出力
reloading
JSP の変更を jasper に伝える
false
− 6-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
„
specdefault
設定セット”specdefault”の設定セットの環境定義ファイルとパラメータ名、設定値を
表 6.2-28∼表 6.2-31 に示す。
表 6.2-28 /home/ossf/jboss-4.0.0/server/specdefault/deploy/postgers-ds.xml
パラメータ名
設定値
備考
jndi-name
PostgresDS
connection-url
jdbc:postgresql://192.168.62.168:5432/ossf <DB 名>が違う場合変更
(<DB 名>)
user-name
ossf(<PostgreSQL ユーザ名>)
<PostgreSQL ユーザ名>
が違う場合変更
password
<password>が違う場合変
ossf(<password>)
更
max-pool-size
200
コネクションプール数
表 6.2-29 /home/ossf/jboss-4.0.0/server/specdefault/deploy/tc5-cluster-service.xmll
パラメータ名
設定値
SyncReplTimeout
30000
備考
セッションレプリケーションのタイムア
ウト値
LockAcquisitionTimeout 30000
ロックのタイムアウト値
表 6.2-30 /home/ossf/jboss-4.0.0/server/specdefault/deploy/jbossweb-tomcat50.sar/server.xml
パラメータ名
設定値
備考
maxThreads
400
スレッド数
jvmRoute
dl360g3ap1
スティッキーセッションのため
の ID
表 6.2-31 /home/ossf/jboss-4.0.0/server/specdefault/deploy/jbossweb-tomcat50.sar/web.xml
パラメータ名
設定値
備考
development
false
JSP の変更チェック
keepgenerated
false
JSP コンパイル後の java ファイル
を出力
reloading
JSP の変更を jasper に伝える
false
− 6-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.5.4 Emulator の環境情報
JBoss クラスタ測定における Emulator の環境情報を以下に示す。
6.2.5.4.1
Tomcat の環境情報
Emulator の Tomcat の環境情報のパラメータ名、設定値を表 6.2-32、表 6.2-33 に示す。
表 6.2-32 /home/ossf/jakarta-tomcat-4.1.31/bin/startup.sh
パラメータ名
設定値
JAVA_OPTS
"-server -Xms512m -Xmx512m"
備考
ヒープサイズを 512MB に指定
表 6.2-33 /home/ossf/jakarta-tomcat-4.1.31/conf/server.xml
パラメータ名
設定値
enableLookups
備考
DNS による名前解決
false
6.2.5.5 Driver の環境情報
JBoss クラスタ測定における Driver の環境情報を以下に示す。
6.2.5.5.1
SPECjAppServer2004 の環境情報
Driver における SPECjAppServer2004 の設定を表 6.2-34∼表 6.2-51 に示す。
表 6.2-34 /home/ossf/SPECjAppServer2004/bin/driver.sh
パラメータ名
J2EE_HOME
設定値
備考
<ユーザ名>が違う場合変更
/home/ossf/jboss-4.0.0
{JAVA_HOME}/bin/java -Xms512m -Xmx512m -classpath
${JAS_HOME}/jars/launcher.jar
表 6.2-35 /home/ossf/SPECjAppServer.ear/bin/setenv.sh
パラメータ名
設定値
備考
JAS_HOME
/home/ossf/SPECjAppServer2004 <ユーザ名>が違う場合変更
JAVA_HOME
/home/ossf/j2sdk1.4.2_04
<ユーザ名>が違う場合変更
J2EE_HOME
/home/ossf/jboss-4.0.0
<ユーザ名>が違う場合変更
APPSSERVER
jboss
− 6-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-36 /home/ossf/SPECjAppServer2004/config/jboss.env
パラメータ名
JAVA_HOME
設定値
備考
<ユーザ名>が違
/home/ossf/j2sdk1.4.2_04
う場合変更
J2EE_HOME
<ユーザ名>が違
/home/ossf/jboss-4.0.0
う場合変更
JAVAX_JAR
${J2EE_HOME}/server/default/lib/javax.servlet.jar:
${J2EE_HOME}/server/default/lib/jboss-j2ee.jar:
${J2EE_HOME}/client/jbossall-client.jar
JDBC_CLASSPATH ${J2EE_HOME}/server/default/lib/postgresql.jar
JAS_HOST
192.168.61.163
JAS_PORT
80
EMULATOR_HOST 192.168.61.162
EMULATOR_PORT
8080
JAVA
"${JAVA_HOME}/bin/java -Xms128m -Xmx128m"
Driver が起動す
る各 JVM プロセ
スのためのコマ
ンドライン
表 6.2-37 /home/ossf/SPECjAppServer2004/config/corpdb.properties
パラメータ名
設定値
ossf(<PostgreSQL ユーザ名>)
dbUser
備考
<PostgreSQL ユーザ名>が
違う場合変更
dbPassword
ossf(<password>)
<password> が 違 う 場 合 変
更
jdbc:postgresql://192.168.1.168:5432/ossf <DB 名>が違う場合変更
dbURL
(<DB 名>)
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-38 /home/ossf/SPECjAppServer2004/config/mfgdb.properties
パラメータ名
dbUser
設定値
ossf(<PostgreSQL ユーザ名>)
備考
<PostgreSQL ユーザ名>が
違う場合変更
dbPassword
ossf(<password>)
− 6-16 −
<password> が 違 う 場 合 変
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
更
jdbc:postgresql://192.168.1.168:5432/ossf <DB 名>が違う場合変更
dbURL
(<DB 名>)
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-39 /home/ossf/SPECjAppServer2004/config/ordsdb.properties
パラメータ名
設定値
ossf(<PostgreSQL ユーザ名>)
dbUser
備考
<PostgreSQL ユーザ名>が
違う場合変更
dbPassword
ossf(<password>)
<password> が 違 う 場 合 変
更
jdbc:postgresql://192.168.1.168:5432/ossf <DB 名>が違う場合変更
dbURL
(<DB 名>)
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-40 /home/ossf/SPECjAppServer2004/config/suppdb.properties
パラメータ名
設定値
ossf(<PostgreSQL ユーザ名>)
dbUser
備考
<PostgreSQL ユーザ名>が
違う場合変更
dbPassword
ossf(<password>)
<password> が 違 う 場 合 変
更
jdbc:postgresql://192.168.1.168:5432/ossf <DB 名>が違う場合変更
dbURL
(<DB 名>)
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-41 /home/ossf/SPECjAppServer2004/config/utildb.properties
パラメータ名
dbUser
設定値
ossf(<PostgreSQL ユーザ名>)
備考
<PostgreSQL ユーザ名>が
違う場合変更
dbPassword
ossf(<password>)
<password> が 違 う 場 合 変
更
dbURL
jdbc:postgresql://192.168.1.168:5432/ossf <DB 名>が違う場合変更
− 6-17 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
(<DB 名>)
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-42 /home/ossf/SPECjAppServer2004/src/deploy/jboss/jndi.properties
パラメータ名
設定値
備考
java.naming.provider.url jnp://192.168.61.164:1099
表 6.2-43 /home/ossf/SPECjAppServer2004/src/deploy/jboss/corp.jboss.cmp.xml
パラメータ名
設定値
datasource
java:/PostgresDS
datasource-mapping
PostgreSQL 7.2
備考
表 6.2-44 /home/ossf/SPECjAppServer2004/src/deploy/jboss/mfg.jboss.cmp.xml
パラメータ名
設定値
datasource
java:/PostgresDS
datasource-mapping
PostgreSQL 7.2
備考
表 6.2-45 /home/ossf/SPECjAppServer2004/src/deploy/jboss/orders.jboss.cmp.xml
パラメータ名
設定値
datasource
java:/PostgresDS
datasource-mapping
PostgreSQL 7.2
備考
表 6.2-46 /home/ossf/SPECjAppServer2004/src/deploy/jboss/supplier.jboss.cmp.xml
パラメータ名
設定値
datasource
java:/PostgresDS
datasource-mapping
PostgreSQL 7.2
− 6-18 −
備考
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-47 /home/ossf/SPECjAppServer2004/src/deploy/jboss/util.jboss.cmp.xml
パラメータ名
設定値
datasource
java:/PostgresDS
datasource-mapping
PostgreSQL 7.2
備考
表 6.2-48 /home/ossf/SPECjAppServer2004/src/deploy/jboss/corp.jboss.xml
パラメータ名
res-jndi-name
設定値
備考
java:/PostgresDS
表 6.2-49 /home/ossf/SPECjAppServer2004/src/deploy/jboss/mfg.jboss.xml
パラメータ名
jndi-name
jndi-name
設定値
備考
jnp://192.168.61.163:1099/queue/Fulfi
URL と Queue の JNDI
llOrderQueue
名を組み合わせたもの
jnp://192.168.61.163:1099/queue/Buye
URL と Queue の JNDI
rQueue
名を組み合わせたもの
destination-jndi-name jnp://192.168.61.163:1099/queue/Recei URL と Queue の JNDI
veQueue
res-jndi-name
名を組み合わせたもの
java:/PostgresDS
表 6.2-50 /home/ossf/SPECjAppServer2004/src/deploy/jboss/orders.jboss.xml
パラメータ名
設定値
備考
jnp://192.168.61.163:1099/queue/Larg
URL と Queue の JNDI
eOrderQueue
名を組み合わせたもの
destination-jndi-name jnp://192.168.61.163:1099/queue/Fulfi
URL と Queue の JNDI
llOrderQueue
名を組み合わせたもの
jndi-name
res-jndi-name
java:/PostgresDS
表 6.2-51 /home/ossf/SPECjAppServer2004/src/deploy/jboss/supplier.jboss.xml
パラメータ名
jndi-name
設定値
備考
jnp://192.168.61.163:1099/queue/Recei URL と Queue の JNDI
veQueue
名を組み合わせたもの
destination-jndi-name jnp://192.168.61.163:1099/queue/Buye
rQueue
URL と Queue の JNDI
名を組み合わせたもの
− 6-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
res-jndi-name
java:/PostgresDS
6.2.6 JBoss クラスタ環境構築手順
JBoss クラスタ構成において、SPECjAppServer2004 稼働させる環境構築手順を以下に
示す。
6.2.6.1 ハードウェアの調達
2.1 ハードウェアの調達 を元に調達を行う。本検証で使用したハードウェア一覧について
は、6.2.1 ハードウェア一覧を参照のこと。
6.2.6.2 ソフトウェアの調達
ハードウェアの調達に引き続いて、以下に示すソフトウェア群を調達する。
6.2.6.2.1
SPECjAppServer2004 の調達
SPEC.org から有償で購入する必要がある(2,000 米ドル)。以下の URL から購入手続きを
行う事が可能である。
http://www.spec.org/order.html
メディアの輸送方法によっても異なるが、多くの場合、購入手続き後数日から一週間程
度後に、SPECjAppServer2004 が納められた CD メディアが到着する。ソフトウェアダウ
ンロードによる提供はなされていない。ソースコードの公開もなされていない。
一方、SPEC.org のメンバ企業の場合、無償で CD メディアを入手可能である。
6.2.6.2.2
Web サーバソフトウェアの調達
本評価においては OS インストール時に選択した httpd-2.0.46 を使用する。
6.2.6.2.3
AP サーバソフトウェアの調達
本評価において SPECjAppServer.ear は JBoss-4.0.0 で、emurator.ear を展開して得ら
れる emulator.war は Tomcat-4.1.31 で稼動させる。それぞれ以下の URL からダウンロー
ドできる。
http://www.jboss.org/downloads/index#as
http://jakarta.apache.org/site/binindex.cgi#tomcat
6.2.6.2.4
JMS サーバソフトウェアの調達
本評価では JBoss-4.0.0 を用いて JMS サーバを構築する。以下の URL からダウンロー
ドできる。
http://www.jboss.org/downloads/index#as
6.2.6.2.5
DB サーバソフトウェアの調達
本評価では Postgressql-7.4.6 を使用する。以下の URL からダウンロードできる。
− 6-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
http://wwwmaster.postgresql.org/download/mirrors-ftp
6.2.6.2.6
Java プラットフォームソフトウェアの調達
本評価では j2sdk-1.4.2_04 を使用する。以下の URL からダウンロードできる。
http://java.sun.com/products/archive/index.html
6.2.6.2.7
OS ソフトウェアの調達
本評価では Red Hat Enterprise Linux AS (U3)を使用する。
6.2.6.2.8
その他のソフトウェア群の調達
本評価では sysstat5.0.5-5.rhel3.rpm を使用する。Red Hat Network から入手できる。
また、apache-ant-1.6.2 を使用する。以下の URL からダウンロードできる。
http://ant.apache.org/
6.2.6.3 OSのインストール・設定
調達した計算機に対して、OS をインストールし、以下に示す様な各種設定を行う。
z
インストールパッケージの決定
z
ファイルシステム配置の決定
z
ホスト名の設定
z
IP アドレスの設定
z
経路制御の設定
z
ユーザアカウントの作成
本評価では全ホスト上でユーザ ossf を作成し、各ソフトウェアは基本的には”ossf”
のホームディレクトリ”/home/ossf”直下にインストールし使用することとする。なお、
別ユーザを使用する場合は、本章内の”/home/ossf”の記述を”/home/<ユーザ名>”に変更
を行うこと。
z
時刻合わせに関する設定
z
カーネルパラメータの設定
本評価では全計算機の OS として Red Hat Linux AS3 をインストールする。
各ホストの OS のカーネルパラメータの設定は 0 ベースラインパラメータ一覧(JBoss)を
参照するものとする。
6.2.6.4 ネットワーク環境の構築
OS がインストールされた計算機群をネットワーク機器に接続し、計算機間が相互に通信
可能な事(ping が到達可能)を確認する。
また、計算機群がそれぞれ複数の異なるネットワーク群に接続される場合、それぞれの
計算機が正しいネットワークに接続されているかどうかを(netstat –r, traceroute 等を用い
て)確認する。
また、それぞれの計算機群の時刻がきちんと同期しているかどうかを(ntpq, date 等を用
− 6-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
いて)確認する。
6.2.6.5 ソフトウェア環境情報
本評価において使用した使用した環境定義ファイル一式を、6 章付録ファイル 1 の
ENV_SET_JBOSS ディレクトリ以下に示す。ファイルについての詳細な説明は 0
ベースラインパラメータ一覧(JBoss)で説明するものとする。
ファイル一覧を図 6.2-6 に示す。
********************************************************************************
AP_HOST
+ JBOSS_DIR
+ bin
- run.conf
+ server
+ specall : クラスタ環境用の設定セット
+ conf:JBoss の標準の設定セット”all”の conf 以下と同一のファイル群
であるため記述を省略する
+ deploy
- cluster-service.xml
- ear-deployer.xml
- ejb-deployer.xml
- hsqldb-ds.xml
- jbossjca-service.xml
- jboss-jdbc-metadata.sar
- jboss-local-jdbc.rar
- jboss-xa-jdbc.rar
- jmx-invoker-service.xml
- postgres-ds.xml
- sqlexception-service.xml
- tc5-cluster-service.xml
+ deploy.last
- farm-service.xml
+ jbossweb-tomcat50.sar
-tomcat50-service.jar(Appendix B.1.2 参照)
:上記ファイル以外、JBoss の標準の設定セット”all”の deploy/
jbossweb-tomcat50.sar 以下と同一のファイル群であるため記
述を省略する。
+ jms
- hajndi-jms-ds.xml
- jms-ra.rar
+ jmx-console.war:JBoss の標準の設定セット”all”の deploy/
jmx-console.war 以下と同一のファイル群であ
るため記述を省略する。
+ deploy-hasingleton
+ farm
-cluster-examples-service.xml
+ lib:JBoss の標準の設定セット”all”の lib 以下と同一のファイル群であ
− 6-22 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
るため記述を省略する
+ specdefault : 非クラスタ環境用の設定セット
+ conf:JBoss の標準の設定セット”default”の conf 以下と同一のファイ
ル群であるため記述を省略する
+ deploy
- ear-deployer.xml
- ejb-deployer.xml
- hsqldb-ds.xml
- jbossjca-service.xml
- jboss-jdbc-metadata.sar
- jboss-local-jdbc.rar
- jboss-xa-jdbc.rar
- jmx-invoker-service.xml
- postgres-ds.xml
- sqlexception-service.xml
+ jbossweb-tomcat50.sar:JBoss の標準の設定セット”default”の
deploy/ jbossweb-tomcat50.sar 以下と同
一のファイル群であるため記述を省略す
る
+ jms
- jms-ds.xml
- jms-ra.rar
+ lib:JBoss の標準の設定セット”default”の lib 以下と同一のファイル群
であるため記述を省略する。
DB_HOST
+ POSTGRES_DIR : DB サーバ用の環境定義ファイル群
- pg_hba.conf
- postgresql.conf
DRIVER_HOST
+ SPEC_DIR : SPECjAppServer2004 の環境定義ファイル群
- jboss-build.xml
+ bin
- setenv.sh
- driver.sh
+ config
- appserver
- corpdb.properties
- jboss.env
- mfgdb.properties
- ordsdb.properties
- run.properties
- suppdb.properties
- utildb.properties
+ src
+ deploy
+ jboss
- corp.jboss.cmp.xml
- corp.jboss.xml
− 6-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- jndi.properties
- mfg.jboss.cmp.xml
- mfg.jboss.xml
- orders.jboss.cmp.xml
- orders.jboss.xml
- servlet.jboss.xml
- supplier.jboss.cmp.xml
- supplier.jboss.xml
- util.jboss.cmp.xml
- util.jboss.xml
- web.jboss.xml
EMULATOR_HOST
+ TOMCAT_DIR : tomcat の環境定義ファイル群
+bin
- startup.sh
+conf
- server.xml
JMS_HOST
+ JBOSS_DIR
+ bin
- run.conf
+ server
+ specjms : JMS サーバ用の設定セット
+ conf
- jbossmq-state.xml
- jboss-service.xml
- jndi.properties
- log4j.xml
- login-config.xml
- standardjbosscmp-jdbc.xml
+ xmdesc
- AttributePersistenceService-xmbean.xml
- ClientUserTransaction-xmbean.xml
- JNDIView-xmbean.xml
- org.jboss.deployment.MainDeployer-xmbean.xml
- TransactionManagerService-xmbean.xml
+ deploy
- jbossjca-service.xml
- jboss-jdbc-metadata.sar
- jboss-local-jdbc.rar
- jmx-invoker-service.xml
- postgres-ds.xml
+ jms
- jbossmq-destinations-service.xml
- jbossmq-service.xml
- postgres-jdbc2-service.xml
- postgres-jdbc-state-service.xml
- uil2-service.xml
+ lib
− 6-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- hsqldb.jar
- hsqldb-plugin.jar
- jboss.jar
- jboss-common-jdbc-wrapper.jar
- jboss-j2ee.jar
- jboss-jca.jar
- jboss-management.jar
- jbossmq.jar
- jbosssx.jar
- jboss-transaction.jar
- jmx-adaptor-plugin.jar
- jnpserver.jar
- log4j.jar
+ POSTGRE_DIR : JMS 用データベースの環境定義ファイル群
- pg_hba.conf
- postgresql.conf
WEB_HOST
+ APACHE_DIR : Apache の環境定義ファイル群
+ conf
- httpd.conf
- workers2.properties
+ modules
- mod_jk2.so
********************************************************************************
図 6.2-6 ファイル一覧
6.2.6.6 ソフトウェア群のインストール・設定
SPECjAppServer 実行環境に必要なソフトウェア群のインストールおよび設定について
説明する。本評価で使用したソフトウェアのバージョンとインストール先ディレクトリを
表 6.2-52 に示す。本評価では全ホスト上でユーザ ossf を作成し、基本的には”ossf”のホー
ムディレクトリ”/home/ossf”直下にインストールした。なお、別ユーザを使用する場合は、
本章内の”/home/ossf”の記述を”/home/<ユーザ名>”に変更のこと。
表 6.2-52 ソフトウェアバージョンとディレクトリ
ソフトウェア
バージョン(略号)
ディレクトリ
J2SDK
1.4.2_04
/home/ossf/j2sdk1.4.2_04
Apache httpd
2.0.46
/etc/httpd
Apache ant
1.6.2
/home/ossf/apache-ant-1.6.2
PostgreSQL
7.4.6
/home/ossf/pgsql
JBoss
4.0.0
/home/ossf/jboss-4.0.0
Tomcat
4.1.31
/home/ossf/jakarta-tomcat-4.1.31
sysstat
5.0.5
/usr/bin/sar
SPECjAppServer2004
/home/ossf/SPECjAppServer2004
− 6-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
なお表にあるバージョンの項目は引き続き記述する各ソフトウェアのインストールのバ
ージョンの略号<version>とする。
6.2.6.6.1
sysstat のインストール
sysstat のインストール手順を以下に示す。
z
全ホストに sysstat をインストールする。
$ su # rpm -Uvh sysstat-<version>.rhel3.i386.rpm
6.2.6.6.2
J2SDK インストール・設定
J2SDK のインストール・設定手順を以下に示す。
z
全てのホストに、J2SDK をインストールする。
$ ./j2sdk_<version>-linux-i586.bin
z
全てのホストの/home/ossf/.bash_profile に以下の環境変数を設定する。
export JAVA_HOME=JAVA_DIR
export PATH=$PATH:$JAVA_JOME/bin
6.2.6.6.3
Ant のインストール・設定
ant は、PostgreSQL インストール時に JDBC ドライバを生成するために必要である。従
って、DB_HOST, JMS_HOST で必要になる。
なお DRIVER_HOST でも ant が必要になるが、SPECjAppServer をインストールする
とデフォルトで ant が用意されているため DRIVER_HOST に新たに ant をインストール
する必要はない。
ant のインストール・設定手順を以下に示す。
z
ant をインストールする。
$ tar zxvf apache-ant-<version>-bin.tar.gz
z
/home/ossf/.bash_profile に、以下の環境変数を定義する。
− 6-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
export ANT_HOME=ANT_DIR
export PATH=$PATH:$ANT_HOME/bin
6.2.6.6.4
PostgreSQL のインストール・設定
DB_HOST と JMS_HOST に PostgresSQL をインストールする手順を示す。
z
PostgresSQL をインストールする。
$ tar zxvf postgresql-<version>.tar.gz
$ cd postgresql-<version>
$ ./configure --prefix=POSTGRE_DIR --with-java
$ make
$ make check
$ make install
イ ン ス ト ー ル に よ っ て 、 PostgreSQL の JDBC ラ イ ブ ラ リ postgresql.jar が
PG_DIR/share/java 配下に生成される。これを 6.2.6.6.7 JBoss のインストールと設定で使
用する。
z
/home/ossf/.bash_profile に以下の環境変数を設定する。
export PATH=$PATH:/home/ossf/pgsql/bin
export POSTGRES_HOME=/home/ossf/pgsql
export PG_LIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH=$MANPATH:$POSTGRES_HOME/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGLIB
6.2.6.6.5
Apache のインストール・設定
WEB_HOST で実行する Apache httpd は、ディストリビューション付属の 2.0.46 を使
用するため、インストール手順は発生しないが、APACHE_DIR/conf/httpd.conf を環境に
合わせて修正する必要がある。以下に手順を示す。
z
APACHE_DIR/conf/httpd.conf を、環境に合わせて修正する。
本評価における詳細設定は、6.2.5.2.2 Apache httpd の環境情報, 6 章付録ファイル 1 を
参照のこと。
また、AP_HOST に接続するために mod_jk2 をビルドし・設定する必要がある。その際、
Apache http,Tomcat,mod_jk2,をインストールする必要がある。以下に mod_jk2 をビルド
− 6-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
する手順を示す。
z
Apache http-2.0.46 を http://www.apache.org よりダウンロードする。
WEB_HOST 上の/usr/local/src 以下にコピーする。
$ su # cd /usr/local/src
# tar zxvf httpd-2.0.46.tar.gz
# cd httpd-2.0.46
# ./configure --prefix=/usr/local/apache2
# make
# make install
z
Tomcat-4.1.31 を http://jakarta.apache.org/tomcat/
よりダウンロードする。
WEB_HOST 上の/usr/local/src 以下にコピーする。
# cd /usr/local/src
# tar zxvf jakarta-tomcat-4.1.31.tar.gz
z
mod_jk2 を http://jakarta.apache.org/site/sourceindex.cgi よりダウンロードする。
WEB_HOST 上の/usr/local/src 以下にコピーする。
# tar zxvf jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
# cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-tomcat41=/usr/local/src/jakarta-tomcat-4.1.31
# make
z
mod_jk2.so をコピーする。
WEB_HOST 上の APACHE_DIR/modules 以下にコピーする。
# cp ../build/jk2/apache2/mod_jk2.so APACHE_DIR/modules
z
6 章付録ファイル 1 の
ENV_SET_JBOSS/WEB_HOST/etc/httpd/conf/workers2.properties を
APACHE_DIR/conf にコピーする。
本評価における詳細設定は、6.2.5.2.3 mod_jk2 の環境情報を参照のこと。
− 6-28 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Tomcat のインストール・設定
6.2.6.6.6
EMULATOR_HOST に Tomcat をインストール・設定する手順を示す。本評価における
詳 細 設 定 は 、 6.2.5.4.1
Tomcat
の 環 境 情 報 ,
6
章 付 録 フ ァ イ ル
1
ENV_SET_JBOSS/EMULATOR_HOST/TOMCAT_DIR 内のファイルを参照のこと。
Tomcat をインストールする。
z
$ tar zxvf jakarta-tomcat-<version>.tar.gz
z
ヒープサイズを変更する。
TOMCAT_DIR/bin/startup.sh の 23 行目に、以下を追加する。
23 export JAVA_OPTS=
-server ‒Xms512m ‒Xmx512m
DNS による名前解決の設定を false にする。
z
/home/ossf/jakarta-tomacat-4.1.31/conf/server.xml の 94 行目を以下のように変更する。
94 enableLookup=
false
redirectPort= 8443
JBoss のインストールと設定
6.2.6.6.7
AP_HOST1∼4、JMS_HOST、DRIVER_HOST 上に JBoss をインストール・設定する
手順を示す。
„
共通の手順
各ホスト共に必要となる手順を示す。
z
JBoss をインストールする。
$ tar zxvf jboss-<version>.tar.gz
AP_HOST1∼4 に関する手順
„
設定に必要なファイルは、6 章付録ファイル 1 にて提供する。
z
6 章付録ファイル 1 の ENV_SET_JBOSS/AP_HOST/JBOSS_DIR/server/specall
を AP_HOST1∼4 の JBOSS_DIR/server 以下にコピーする。
なお ENV_SET_JBOSS/AP_HOST/JBOSS_DIR/server/specall 以下には多くの設
定ファイルが存在するが、本評価における詳細設定は 6.2.4 章のベースラインパラメー
− 6-29 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
タ一覧(JBoss)を参照のこと。
z
6 章付録ファイル 1 の
ENV_SET_JBOSS/AP_HOST/JBOSS_DIR/server/specdefault を AP_HOST1∼
4 の JBOSS_DIR/server 以下にコピーする。
なお ENV_SET_JBOSS/AP_HOST/JBOSS_DIR/server/specdefault 以下に多くの
設定ファイルが存在するが、本評価における詳細設定は 6.2.4 章のベースラインパラメ
ータ一覧(JBoss)を参照のこと。
z
6 章付録ファイル 1 の ENV_SET_JBOSS/AP_HOST/JBOSS_DIR/bin/run.conf
を AP_HOST1∼4 の JBOSS_DIR/bin 以下の既存ファイルに上書きする。
z
DB_HOST/PG_DIR/share/java/postgresql.jar を AP_HOST1∼4 の
JBOSS_DIR/server/specall/lib にコピーする。
z
DB_HOST/PG_DIR/share/java/postgresql.jar を AP_HOST1∼4 の
JBOSS_DIR/server/specdefault/lib にコピーする。
DRIVER_HOST に関する手順
„
z
DB_HOST/PG_DIR/share/java/postgresql.jar を
DRIVER_HOST/JBOSS_DIR/server/default/lib/以下にコピーする。
JMS_HOST に関する手順
„
設定に必要なファイルは設定に必要なファイルは、6 章付録ファイル 1 にて提供する。な
お、表 6.2-53 で示した PostgreSQL ユーザ名等とは別のものを使用する場合、ファイルの
変更が必要になるので、本評価における詳細設定を示した 6.2.5.2.5 JBoss の環境情報を参
照のこと。
z
6 章付録ファイル 1 の
ENV_SET_JBOSS/JMS_HOST/JBOSS_DIR/server/specjms を
JMS_HOST/JBOSS_DIR/server 以下にコピーする。
z
6 章付録ファイル 1 の ENV_SET_JBOSS/JMS_HOST/JBOSS_DIR/bin/run.conf
を JMS_HOST/JBOSS_DIR/bin 以下の既存ファイルに上書きする。
z
DB_HOST/PG_DIR/share/java/postgresql.jar を
JMS_HOST/JBOSS_DIR/server/default/lib/以下にコピーする。
6.2.6.7 データベースの初期化
データベースの初期化の手順を示す。DB_HOST、JMS_HOST で使用する PostgreSQL
− 6-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
のユーザ名等を表 6.2-53 に示す。また、別のユーザ名,パスワード,DB 名を使用する場合は、
本章内の ossf(<PostgreSQL ユーザ名>), ossf(<password>), ossf(<DB 名>)等の記述を使用
するユーザ名, パスワード, DB 名に変更のこと。
表 6.2-53 ユーザ名
ホスト名
z
PostgreSQL ユーザ名
DB 名
password
DB_HOST
ossf
ossf
ossf
JMS_HOST
ossf
ossf
ossf_jms
データベースを作成する。
$ initdb --no-locale --encoding=EUC-JP
z
PGDATA/pg_hba.conf を修正し、外部ホストからのアクセスを許可する。本評価にお
ける詳細設定は、DB_HOST は 6.2.5.1.2 PostgreSQL の環境情報、JMS_HOST は
6.2.5.2.4 PostgreSQL の環境情報を参照のこと。
z
PGDATA/postgresql.conf を修正し、ネットワーク経由でアクセスできるようにする。
本評価における詳細設定は、 DB_HOST は 6.2.5.1.2 PostgreSQL の環境情報、
JMS_HOST は 6.2.5.2.4 PostgreSQL の環境情報を参照のこと。
z
データベースクラスタ作成後、サーバプロセスを立ち上げる。
$ pg_ctl -l postgres.log start
z
サーバプロセス立ち上げ後、測定に使用するデータベースユーザを作成する。
$ createuser <PostgreSQL ユーザ名>
z
測定に使用する DB 名を作成する。
$ createdb <DB 名>
6.2.6.8 SPECjAppServer2004 アプリケーションのビルド・配置
SPECjAppServer2004 のビルドに必要なファイル群を 6 章付録ファイル 1 にて提供する。
これらのファイル群を使用して SPECjAppServer2004 をビルド・実行するには、各ファイ
ルのパラメータをあらかじめ設定する必要がある。詳細は 6.2.5.5.1 SPECjAppServer2004
− 6-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
の環境情報を参照のこと。
ここでは、SPECjAppServer2004 のビルドを DRIVER_HOST 上で実施することを前提
とした手順を示す。
6.2.6.8.1
必要ファイル群のコピー
SPECjAppServer2004 は多くのファイル群を提供するが、ホスト毎で必要とするファイ
ルが異なる。簡単のため、以下のようにファイル群を各ホストにコピーする。なお、
SPEC_CD は、6.2.6.2.1SPECjAppServer2004 の調達で調達した CD メディアを格納した
CD ドライバのルート・ディレクトリを表す。
なお、本評価で作成した ossf ユーザをとは別名のユーザを使用する場合や表 6.2-53 で示
した PostgreSQL ユーザ名等とは別のものを使用する場合、
ファイルの変更が必要になる。
変更点については、本評価における詳細設定を示した 6.2.5.5.1 SPECjAPPServer2004 の
環境情報を参照のこと。
z
DB_HOST 上の/home/ossf/schema/sql ディレクトリに、SPEC_CD/schema/sql 配下の
ファイルをコピーする。
$ mkdir /home/ossf/schema
$ cp -R SPEC_CD/schema/sql /home/ossf/schema/sql
z
DRIVER_HOST 上の SPEC_DIR に、SPEC_CD 配下の全ディレクトリおよびファイ
ルをコピーする。
z
6 章付録ファイル 1 の
ENV_SET_JBOSS/DRIVER_HOST/SPEC_DIR/src/deploy/jboss ディレクトリを、
DRIVER_HOST 上の SPEC_DIR/src/deploy 以下にコピーする。
z
6 章付録ファイル 1 の ENV_SET_JBOSS/DRIVER_HOST/SPEC_DIR/bin 以下のファ
イルを、DRIVER_HOST 上の SPEC_DIR/bin の既存ファイルに上書きする。
z
6 章付録ファイル 1 の ENV_SET_JBOSS/DRIVER_HOST/SPEC_DIR/config 以下の
ファイルを、DRIVER_HOST 上の SPEC_DIR/config の既存ファイルに上書きする。
z
6 章付録ファイル 1 の
ENV_SET_JBOSS/DRIVER_HOST/SPEC_DIR/jboss-build.xml を、DRIVER_HOST
上の SPEC_DIR にコピーする。
z
SPEC_CD 配 下 の src/deploy/reference 以 下 の フ ァ イ ル を DRIVER_HOST 上 の
SPEC_DIR/src/deploy/jboss 以下にコピーする。
− 6-32 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
アプリケーションの設定
6.2.6.8.2
SPECjAppServer2004 はアプリケーションのビルドの前に、使用したい機能を有効する
ための各種設定を行う必要がある。本評価において使用した機能に基づく設定方法を以下
に示す。なお, 測定において各機能を組み合わせることも可能である。
HttpSession レプリケーションを有効にする。
z
DRIVER_HOST 上の SPEC_DIR/src/deploy/jboss/servlet.xml と
SPEC_DIR/src/deploy/jboss/web.xml の 6 行目に<distributable/>タグを追加する。
6 <distributable/>
DRIVER_HOST 上の SPEC_DIR/src/deploy/jboss/servlet.jboss.xml と
SPEC_DIR/src/deploy/jboss/web.jboss.xml の 6 行目, 11 行目のコメントを解除し、
<replication-config>…</replication-config>のタグを有効にする。
6
(<!--
←コメント解除)
7
<replication-config>
8
<replication-trigger>SET</replication-trigger>
9
<replication-granularity>SESSION</replication-granularity>
10 </replication-config>
11 (-->
z
←コメント解除)
EJB クラスタを有効にする。
DRIVER_HOST 上の SPEC_DIR/src/deploy/jboss/mfg.jboss.xml の 30 行目と 68 行目の
コメントを解除し、<clustered>true</clustered>のタグを有効にする。
z
行ロックを有効にする。
DRIVER_HOST 上の SPEC_DIR/src/deploy/jboss の以下のファイル内のコメントを解除
し、<row-locking>true</row-locking>のタグを有効にする。
・corp.jboss.cmp.xml
・mfg.jboss.cmp.xml
・orders.jboss.cmp.xml
・supplier.jboss.cmp.xml
なお、util.jboss.cmp.xml 内の SequenceEnt はデフォルトで行ロック有効になっており、
常に行ロックを有効にしておく必要がある。
6.2.6.8.3
アプリケーションのビルド
DRIVER_HOST 上で SPECjAppServer2004 をビルドする手順を示す。
− 6-33 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
DRIVER_HOST 上で、アプリケーションをビルドする。
z
$ cd SPEC_DIR
$ ./ant/bin/ant -f jboss-build.xml clean all
SPEC_DIR/jars 以下に生成された SPECjAppServer.ear を、AP_HOST1∼4 上の
z
JBOSS_DIR/server/specall/deploy/ディレクトリにコピーする。また測定において AP
サーバの使用台数が 1 台のみで、Http セッションレプリケーション、EJB クラスタを
使用しない場合は AP_HOST1/server/specdefault/deploy/ディレクトリにコピーする。
同様に、SPEC_DIR/jars 以下に生成された Emulator.war を EMULATOR_HOST 上
z
の TOMCAT_DIR/webapps ディレクトリにコピーする。
DRIVER_HOST/SPEC_DIR/config/run.properties 内の以下のパラメータの値を測定
z
に合わせて修正する。
・Url
・txRate
・rampUp
・stdyState
・rampDown
・triggerTime
txRate は、6.3.1.3 データ投入の”–DSCALE=<IR 値>”の<IR 値>と同じにする必要があ
る。なお、各パラメータについての詳細については、2.11.1 測定条件パラメータの設定を
参照のこと。
DRIVER_HOST 上で、Load Driver をビルドする。
z
$ cd SPEC_DIR
$ ./ant/bin/ant ‒f jboss-build.xml clean-driver driver
6.2.7 ベースラインパラメータ一覧(WebLogic)
WebLogic クラスタ測定において共通的に使用したパラメータを、ベースラインパラメー
タとして以下に示す。注意点は以下の通り。
z
表では、主要なパラメータや変更すべきパラメータのみに絞っている。
z
環境に応じて変更する箇所については、太字で示した。
¾
本評価では全ホスト上でユーザ ossf を作成し、基本的には”ossf”のホームディレ
クトリ”/home/ossf”直下に各種ソフトウェアをインストールした。別ユーザを使
用する場合は、本章内の”/home/ossf”の記述を”/home/<ユーザ名>”に変更のこと。
− 6-34 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
¾
本評価で使用した PostgreSQL のユーザ名, パスワード, DB 名(表 6.2-85 ユー
ザ名参照)と別のユーザ名,パスワード,DB 名を使用する場合は、本章内の
ossf(<PostgreSQL ユーザ名>), ossf(<password>), ossf(<DB 名>)等の記述を使
用するユーザ名, パスワード, DB 名に変更のこと。
¾
本評価で使用した IP アドレス, マシン名と別のものを使用する場合は、本章内
の IP アドレス, マシン名を変更すること。
6.2.7.1 DB サーバ環境情報
WebLogic クラスタ測定における DB サーバの環境情報については、JBoss の場合と同様
である。6.2.5.1 DB サーバ環境情報を参照のこと。
6.2.7.2 WEB/JMS サーバ環境情報
WebLogic クラスタ測定における WEB/JMS サーバの環境情報を以下に示す。
6.2.7.2.1
OS 環境情報
WEB サーバで名前解決を行うための/etc/hosts の設定は JBoss の場合と同様である。
6.2.5.2.1 OS 環境情報を参照のこと。
6.2.7.2.2
Apache httpd の環境情報
Apache の環境定義ファイルとパラメータ名、設定値を表 6.2-54 に示す。
なお、ThreadLimit 以下の設定値はパフォーマンス向上のためにチューニングした値で
ある。
− 6-35 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-54 /etc/httpd/conf/httpd.conf
パラメータ名
設定値
備考
ServerRoot
/etc/httpd
サーバルート
KeepAlive
Off
クライアントとの接続維持
Listen
0.0.0.0:80
リスンポート
LoadModule
weblogic_module
WebLogic への proxy モジュー
modules/mod_wl_20.so
ルの読み込み
192.168.61.164:9001,192.168.61.1
クラスタメンバ(AP サーバ)の
65:9001,192.168.61.166:9001,192.
IP アドレス(※)
WebLogicCluster
168.61.167:9001
ThreadLimit
400
最大スレッド数
MinSpareThreads
400
最小待機スレッド数
MaxSpareThreads
400
最大待機スレッド数
StartServers
10
初期サーバ数
MaxClients
400
最大接続クライアント数
ThreadsPerChild
40
各子プロセスのスレッド数
MaxRequestsPerChild 0
子プロセスが再起動するまで
に処理するリクエスト数
※
測定において AP サーバ(AP_HOST1∼4)を複数台使用する場合は、上記にある
WebLogicCluster パラメータの設定値に、該当する AP サーバの IP アドレス、リ
スンポートをカンマ区切りで記述する。
6.2.7.2.3
PostgreSQL の環境情報
WEB/JMS サーバの PostgreSQL に関する環境の設定は JBoss の場合と同様である。
6.2.5.2.4 PostgreSQL の環境情報を参照のこと。
6.2.7.2.4
WebLogic の環境情報
WEB/JMS サーバの WebLogic の環境定義ファイルとパラメータ名、設定値を表 6.2-55、
表 6.2-56 に示す。
表 6.2-55 /home/ossf/bea/weblogic81/commEnv.sh
パラメータ名
設定値
備考
BEA_HOME
/home/ossf/bea
<ユーザ名>が違う場合変更
WL_HOME
/home/ossf/bea/weblogic81
<ユーザ名>が違う場合変更
JAVA_VM
-jrockit
VM の指定
− 6-36 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
-Xms512m -Xmx512m -Xgcreport ヒープサイズを 512MB に指定
MEM_ARGS
-Xgcpause
表 6.2-56 /home/ossf/bea/user_projects/domains/specdomain/startManagedWebLogic.sh
パラメータ名
WL_HOME
設定値
備考
<ユーザ名>が違
/home/ossf/bea/weblogic81
う場合変更
PRODUCTION_MODE true
プロダクション
モード
JAVA_VENDOR
BEA
JAVA_HOME
/home/ossf/bea/jrockit81sp3_142_04/
jrockit へ の パ
ス。<ユーザ名>
が違う場合変更
CLASSPATH
${WEBLOGIC_CLASSPATH}${CLASSPATHSEP}
postgresql.jar を
${POINTBASE_CLASSPATH}${CLASSPATHSEP} クラスパスに追
${JAVA_HOME}/jre/lib/rt.jar${CLASSPATHSEP}
加
${WL_HOME}/server/lib/webservices.jar
${CLASSPATHSEP}${WL_HOME}¥
/server/lib/postgresql.jar
${CLASSPATHsep}${CLASSPATH}
6.2.7.3 AP サーバ環境情報
WebLogic クラスタ測定における AP サーバの環境情報を以下に示す。
6.2.7.3.1
OS 環境情報
AP サーバ上のカーネルパラメータのパラメータ名、設定値、AP サーバで名前解決を行
うために変更したファイルと内容は JBoss の場合と同様である。6.2.5.3.1 OS 環境情報を
参照のこと。
6.2.7.3.2
WebLogic の環境情報
AP サーバの WebLogic の環境定義ファイルとパラメータ名、設定値を表 6.2-57∼表
6.2-60 に示す。表 6.2-57、表 6.2-58 以下の内容は AP サーバ 1∼4 まで共通の内容である。
表 6.2-57 /home/ossf/bea/weblogic81/common/bin/commEnv.sh
パラメータ名
BEA_HOME
設定値
備考
<ユーザ名>が違う場合変更
/home/ossf/bea
− 6-37 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WL_HOME
/home/ossf/bea/weblogic81
<ユーザ名>が違う場合変更
JAVA_VM
-jrockit
VM の指定
MEM_ARGS
-Xms1024m
-Xmx1024m ヒープサイズを 1GB に指定
-Xns256m -Xgcreport -Xgcpause
表 6.2-58 /home/ossf/bea/user_projects/domains/specdomain/startManagedWebLogic.sh
パラメータ名
WL_HOME
設定値
備考
<ユーザ名>が違
/home/ossf/bea/weblogic81
う場合変更
PRODUCTION_MODE true
プロダクション
モード
JAVA_VENDOR
BEA
JAVA_HOME
/home/ossf/bea/jrockit81sp3_142_04/
jrockit へ の パ
ス。<ユーザ名>
が違う場合変更
CLASSPATH
"${WEBLOGIC_CLASSPATH}${CLASSPATHSEP} postgresql.jar を
${POINTBASE_CLASSPATH}${CLASSPATHSEP} クラスパスに追
${JAVA_HOME}/jre/lib/rt.jar${CLASSPATHSEP}
加
${WL_HOME}/server/lib/webservices.jar
${CLASSPATHSEP}${WL_HOME}¥
/server/lib/postgresql.jar
${CLASSPATHsep}${CLASSPATH}"
表 6.2-59、表 6.2-60 の設定は WebLogic の管理サーバが動作する AP サーバ 1 のみで使
用する。表 6.2-60 で示す config.xml は、AP サーバ 1 上で管理コンソールを用いて設定を
行う。ここではパラメータの一例を示すが、詳細な設定については 6.2.8 WebLogic クラス
タ環境構築手順を参照のこと。
表 6.2-59 /home/ossf/bea/user_projects/domains/specdomain/startWebLogic.sh
パラメータ名
設定値
SERVER_NAME
myserver
CLASSPATH
${WEBLOGIC_CLASSPATH}:${POINTBASE_CLA
備考
管理サーバ名
SSPATH}:${JAVA_HOME}/jre/lib/rt.jar:${WL_HOM
E}/server/lib/webservices.jar:${WL_HOME}/server/l
ib/postgresql.jar:${CLASSPATH}
MEM_ARGS
-Xms256m -Xmx256m
− 6-38 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-60 /home/ossf/bea/user_projects/domains/specdomain/config.xml
パラメータ名
設定値
備考
UnixMachine
dl360g3ap1
Unix マシン名
NodeManager
dl360g3ap1
ノード名
Server
Cluster="MyCluster"
クラスタグループ名
AcceptBacklog="400"
バックログの受け入れ
ListenPort="9001"
リスンポート
Machine="dl360g3ap1"
マシン名
Name="cluster1"
サーバ名
Name="SPECjAppServer"
アプリケーション名
Path="/home/ossf/bea/user_projects/do
アプリケーションへのパ
mains/specdomain/SPECjAppServer.e
ス。<ユーザ名>が違う場合
ar"
変更
InitialCapacity="100"
コネクションプールの初
Application
JDBCConnectionPool
期値(※)
MaxCapacity="100"
コネクションプールの最
大値(※)
Name="Postgres"
※
接続プール名
測定において AP サーバ(AP_HOST1∼4)を複数台使用する場合は、上記にある
InitialCapacity、MaxCapacity の設定値が 200 / AP 台数 の値になるようにする。
6.2.7.4 Emulator の環境情報
WebLogic クラスタ測定における Emulator の環境情報は、JBoss の場合と同様である。
6.2.5.4 Emulator の環境情報参照のこと。
6.2.7.5 Driver の環境情報
WebLogic クラスタ測定における Driver の環境情報を以下に示す。
6.2.7.5.1
SPECjAppServer2004 の環境情報
Driver における SPECjAppServer2004 の設定を表 6.2-61∼表 6.2-78 に示す。
表 6.2-61 /home/ossf/SPECjAppServer2004/bin/driver.sh
パラメータ名
J2EE_HOME
設定値
/home/ossf/bea/weblogic81
備考
<ユーザ名>が違う場合変更
{JAVA_HOME}/bin/java -Xms512m -Xmx512m -classpath
${JAS_HOME}/jars/launcher.jar
− 6-39 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-62 /home/ossf/SPECjAppServer.ear/bin/setenv.sh
パラメータ名
設定値
備考
JAS_HOME
/home/ossf/SPECjAppServer2004 <ユーザ名>が違う場合変更
JAVA_HOME
/home/ossf/j2sdk1.4.2_04
<ユーザ名>が違う場合変更
J2EE_HOME
/home/ossf/bea/weblogic81
<ユーザ名>が違う場合変更
APPSSERVER
weblogic
表 6.2-63 /home/ossf/SPECjAppServer2004/config/weblogic.env
パラメータ名
JAVA_HOME
設定値
備考
<ユーザ名>が違う
/home/ossf/j2sdk1.4.2_04
場合変更
J2EE_HOME
<ユーザ名>が違う
/home/ossf/bea/weblogic81
場合変更
JAVAX_JAR
${J2EE_HOME}/server/lib/weblogic.jar
JDBC_CLASSPATH ${J2EE_HOME}/server/lib/postgresql.jar
JAS_HOST
192.168.61.163
JAS_PORT
80
EMULATOR_HOST
192.168.61.162
EMULATOR_PORT
8080
JAVA
"${JAVA_HOME}/bin/java -Xms128m -Xmx128m"
Driver が起動する
各 JVM プロセス
のためのコマンド
ライン
表 6.2-64 /home/ossf/SPECjAppServer2004/config/corpdb.properties
パラメータ名
dbUser
設定値
備考
<PostgreSQL ユ ー
ossf
ザ名>が違う場合変
更
dbPassword
<password> が 違 う
ossf
場合変更
dbURL
jdbc:postgresql://192.168.1.168:5432/ossf
<DB 名>が違う場合
変更
dbDriver
org.postgresql.Driver
jdbcVersion
3
− 6-40 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-65 /home/ossf/SPECjAppServer2004/config/mfgdb.properties
パラメータ名
dbUser
設定値
備考
<PostgreSQL ユ ー
ossf
ザ名>が違う場合変
更
dbPassword
<password> が 違 う
ossf
場合変更
dbURL
jdbc:postgresql://192.168.1.168:5432/ossf
<DB 名>が違う場合
変更
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-66 /home/ossf/SPECjAppServer2004/config/ordsdb.properties
パラメータ名
dbUser
設定値
備考
<PostgreSQL ユ ー
ossf
ザ名>が違う場合変
更
dbPassword
<password> が 違 う
ossf
場合変更
dbURL
jdbc:postgresql://192.168.1.168:5432/ossf
<DB 名>が違う場合
変更
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-67 /home/ossf/SPECjAppServer2004/config/suppdb.properties
パラメータ名
dbUser
設定値
備考
<PostgreSQL ユ ー
ossf
ザ名>が違う場合変
更
dbPassword
<password> が 違 う
ossf
場合変更
dbURL
jdbc:postgresql://192.168.1.168:5432/ossf
<DB 名>が違う場合
変更
dbDriver
org.postgresql.Driver
jdbcVersion
3
− 6-41 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-68 /home/ossf/SPECjAppServer2004/config/utildb.properties
パラメータ名
dbUser
設定値
備考
<PostgreSQL ユ ー
ossf
ザ名>が違う場合変
更
dbPassword
<password> が 違 う
ossf
場合変更
dbURL
jdbc:postgresql://192.168.1.168:5432/ossf
<DB 名>が違う場合
変更
dbDriver
org.postgresql.Driver
jdbcVersion
3
表 6.2-69 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/jndi.properties
パラメータ名
設定値
備考
java.naming.provider.url t3://192.168.61.164:9001
表 6.2-70 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/corp.weblogic.cmp.xml
パラメータ名
data-source-name
設定値
備考
PostgresDS
表 6.2-71 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/mfg.weblogic.cmp.xml
パラメータ名
data-source-name
設定値
備考
PostgresDS
表 6.2-72 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/orders.weblogic.cmp.xml
パラメータ名
data-source-name
設定値
備考
PostgresDS
表 6.2-73 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/supplier.weblogic.cmp.xml
パラメータ名
data-source-name
設定値
備考
PostgresDS
− 6-42 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-74 /home/ossf/SPECjAppServer2004/src/deploy/jboss/util.weblogic.cmp.xml
パラメータ名
設定値
data-source-name
備考
PostgresDS
表 6.2-75 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/corp.weblogic.xml
パラメータ名
設定値
jndi-name
備考
PostgresDS
表 6.2-76 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/mfg.weblogic.xml
パラメータ名
設定値
備考
destination-jndi-name
queue/LargeOrderQueue
173 行目
provider-url
t3://192.168.61.163:9001
174 行目
connection-factory-jndi-name SPECConnectionFactory
175 行目
destination-jndi-name
queue/ReceiveQueue
184 行目
provider-url
t3://192.168.61.163:9001
185 行目
connection-factory-jndi-name SPECConnectionFactory
186 行目
表 6.2-77 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/orders.weblogic.xml
パラメータ名
設定値
備考
ejb-name
ItemEnt
EJB 名(43 行目)
max-beans-in-cache
4000
キャッシュサイズ
(46 行目)
read-timeout-seconds
1200
タイムアウト秒数
(47 行目)
destination-jndi-name
queue/FulfillOrderQueue
102 行目
provider-url
t3://192.168.61.163:9001
103 行目
connection-factory-jndi-name SPECConnectionFactory
104 行目
− 6-43 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-78 /home/ossf/SPECjAppServer2004/src/deploy/weblogic/supplier.weblogic.xml
パラメータ名
設定値
destination-jndi-name
queue/BuyerQueue
provider-url
t3://192.168.61.163:9001
備考
connection-factory-jndi-name SPECConnectionFactory
6.2.8 WebLogic クラスタ環境構築手順
WebLogic クラスタ構成において、SPECjAppServer2004 稼働させる環境構築手順を以
下に示す。
6.2.8.1 ハードウェアの調達
2.1 ハードウェアの調達 を元に調達を行う。本検証で使用したハードウェア一覧につい
ては、6.2.1 ハードウェア一覧を参照のこと。
6.2.8.2 ソフトウェアの調達
ハードウェアの調達に引き続いて、以下に示すソフトウェア群を調達する。AP サーバソ
フトウェア, JMS サーバソフトウェア以外は JBoss の場合と同様である。6.2.6.2 ソフトウ
ェアの調達参照のこと。
6.2.8.2.1
AP サーバソフトウェアの調達
本評価において SPECjAppServer.ear は WebLogic8.1 SP3 で、emurator.ear を展開して
得られる emulator.war は Tomcat-4.1.31 で稼動させる。それぞれ以下の URL からダウン
ロードできる。
・WebLogic8.1 SP3
本評価では以下の URL からダウンロードした server813_ja_linux32.bin を使用した。
http://www.beasys.co.jp/evaluation/index.html
現 在 SP4 が リ リ ー ス さ れ て お り 、 SP4 を イ ン ス ト ー ル す る 場 合 は
platform814_ja_linux32.bin をダウンロードする。なお、WebLogic に関しては日本 BEA
システムズ株式会社よりライセンスを購入する必要がある。
・Tomcat-4.1.31
http://jakarta.apache.org/site/binindex.cgi#tomcat
6.2.8.2.2
JMS サーバソフトウェアの調達
本評価では WebLogic8.1 SP3 を用いて JMS サーバを構築する。6.2.8.2.1 AP サーバソフ
トウェアの調達を参照のこと。
− 6-44 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.2.8.3 OSのインストール・設定
調達した計算機に対して、OS をインストールし、各種設定を行う。方法は JBoss の場合
と同様である。6.2.6.3 OSのインストール・設定を参照のこと。
6.2.8.4 ネットワーク環境の構築
ネットワーク環境の構築を行う。方法は JBoss の場合と同様である。6.2.6.4 ネットワー
ク環境の構築を参照のこと。
6.2.8.5 ソフトウェア環境情報
本評価において使用した環境定義ファイル一式を、6 章付録ファイル 1 の
ENV_SET_WEBLOGIC ディレクトリ以下に示す。ファイルについての詳細な説明は 6.2.7
ベースラインパラメータ一覧(WebLogic)で説明するものとする。
ファイルの一覧を図 6.2-7 に示す。
********************************************************************************
DB_HOST
+ POSTGRES_DIR: DB サーバ用の環境定義ファイル群
- pg_hba.conf
- postgresql.conf
DRIVER_HOST
+ SPEC_DIR: SPECjAppServer2004 の環境定義ファイル群
- weblogic-build.xml
+ bin
- setenv.sh
- driver.sh
+ config
- appserver
- corpdb.properties
- weblogic.env
- mfgdb.properties
- ordsdb.properties
- run.properties
- suppdb.properties
- utildb.properties
+ src
+ deploy
+ weblogic
- corp.weblogic.cmp.xml
- corp.weblogic.xml
- jndi.properties
- mfg.weblogic.cmp.xml
- mfg.weblogic.xml
- orders.weblogic.cmp.xml
− 6-45 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
- orders.weblogic.xml
- servlet.weblogic.xml
- supplier.weblogic.cmp.xml
- supplier.weblogic.xml
- util.weblogic.cmp.xml
- util.weblogic.xml
- web.weblogic.xml
EMULATOR_HOST
+ TOMCAT_DIR : tomcat の環境定義ファイル群
+ bin
- startup.sh
+ conf
- server.xml
JMS_HOST
+ POSTGRES_DIR: JMS 用データベースの環境定義ファイル群
- pg_hba.conf
- postgresql.conf
WEB_HOST
+ APACHE_DIR : Apache の環境定義ファイル群
+ conf
- httpd.conf
********************************************************************************
図 6.2-7 ファイル一覧
6.2.8.6 ソフトウェア群のインストール・設定
SPECjAppServer 実行環境に必要なソフトウェア群のインストールおよび設定について
説明する。本評価で使用したソフトウェアのバージョンとインストール先ディレクトリを
表 6.2-79 に示す。本評価では全ホスト上でユーザ ossf を作成し、基本的には”ossf”のホー
ムディレクトリ”/home/ossf”直下にインストールした。なお、別ユーザを使用する場合は、
本章内の”/home/ossf”の記述を”/home/<ユーザ名>”に変更のこと。
表 6.2-79 ソフトウェアバージョンとディレクトリ
ソフトウェア
バージョン(略号)
ディレクトリ
J2SDK
1.4.2_04
/home/ossf/j2sdk1.4.2_04
Jrockit
1.4.2_04
/home/ossf/bea/jrockit1.4.2_04
Apache ant
1.6.2
/home/ossf/apache-ant-1.6.2
PostgreSQL
7.4.6
/home/ossf/pgsql
Apache httpd
2.0.46
/etc/httpd
− 6-46 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic
8.1 SP3
/home/ossf/bea
Tomcat
4.1.31
/home/ossf/jakarta-tomcat-4.1.31
Sysstat
5.0.5
/usr/lib/sar
SPECjAppServer2004
/home/ossf/SPECjAppServer2004
なお表にあるバージョンの項目は引き続き記述する各ソフトウェアのインストールのバ
ージョンの略号<version>とする。
6.2.8.6.1
sysstat のインストール
sysstat のインストール手順は JBoss の場合と同様である。6.2.6.6.1sysstat のインスト
ールを参照のこと。
6.2.8.6.2
J2SDK インストール・設定
J2SDK のインストール・設定手順は JBoss の場合と同様である。6.2.6.6.2J2SDK イン
ストール・設定を参照のこと。
6.2.8.6.3
Ant のインストール・設定
ant のインストール・設定手順は JBoss の場合と同様である。6.2.6.6.3Ant のインストー
ル・設定を参照のこと。
6.2.8.6.4
PostgreSQL のインストール・設定
DB_HOST と JMS_HOST に PostgresSQL をインストールする手順は JBoss の場合と同
様である。6.2.6.6.4PostgreSQL のインストール・設定を参照のこと。
6.2.8.6.5
Apache のインストール・設定
WEB_HOST で実行する Apache httpd は、ディストリビューション付属の 2.0.46 を使
用するため、インストール手順は発生しないが、APACHE_DIR/conf/httpd.conf を環境に
合わせて修正する必要がある。以下に手順を示す。
z
APACHE_DIR/conf/httpd.conf を、環境に合わせて修正する。
本評価における詳細設定は、6.2.7.2.2 Apache httpd の環境情報, 6 章付録ファイル 1 を
参照のこと。
また、AP_HOST に接続するために WEB_HOST 上で mod_wl_20.so を WebLogic のイ
ンストールディレクトリからコピーする必要がある。この作業は WebLogic のインストール
後に行う。6.2.8.6.7 WebLogic のインストール・設定を参照のこと。
6.2.8.6.6
Tomcat のインストール・設定
EMULATOR_HOST に Tomcat をインストール・設定する手順は JBoss の場合と同様で
ある。6.2.6.6.6 Tomcat のインストール・設定を参照のこと。
− 6-47 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic のインストール・設定
6.2.8.6.7
AP_HOST1∼4、JMS_HOST、DRIVER_HOST 上に、WebLogic をインストール・設
定する手順を示す。
WebLogic のインストール
„
WebLogic のインストールの手順を示す。
z
AP_HOST と DRIVER_HOST と JMS_HOST に 6.2.8.2.1 AP サーバソフトウェ
アの調達で調達した server813_ja_linux32.bin をコピーする。
z
コンソールモードでインストールする際、日本語環境の場合にエラーが起こる場
合があるため、コンソールで使用する言語を変更する。
$ export LANG=C
z
WebLogic インストーラの起動
コンソールモードでインストールを実行する。
$ ./server813_ja_linux32.bin -mode=console
next を入力し、コンソールモードでインストールを開始する。インストールイメー
ジを図 6.2-8∼図 6.2-19 に示す。
----- ここから、インストールイメージ(太字,網掛けは入力値) ----Extracting0%....................................................................................................100%
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Welcome:
This installer will guide you through the installation of WebLogic Server 8.1 SP1. Type "Next"
or enter to proceed to the next prompt. If you want to change data entered previously, type
"Previous". You may quit the installer at any time by typing "Exit".
Enter [Exit][Next]> next
図 6.2-8 インストール開始
− 6-48 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
z
ソフトウェアライセンスへの同意
1 を入力し、ライセンスに同意する。
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
BEA Systems License Agreement:
BEA SYSTEMS, INC. SOFTWARE LICENSE AGREEMENT
USE OF SOFTWARE ORDERED FROM BEA SYSTEMS, INC. ("BEA") IS PROVIDED
ONLY
UNDER LICENSE FROM BEA. PLEASE READ THE FOLLOWING LICENSE CAREFULLY
AND INDICATE YOUR ACCEPTANCE BY CLICKING THE ACCEPTANCE BOX. CERTAIN
CAPITALIZED TERMS ARE DEFINED IN SECTION 11.
1. LICENSE TERMS
a. Evaluation Use. The terms of this Section 1(a) are applicable to you
if you have registered as an Evaluation customer. Subject to the terms
of this Agreement, BEA grants to you a non-exclusive,
non-transferable, license to use the evaluation version of the Software
solely for Evaluation Use. Third party software products or modules
supplied by BEA, if any, may be used solely with the Software. This
1 - Yes, I agree with the terms of the license
2 - No, I do not agree with the terms of the license
Enter option number to select OR [Down][Exit][Previous]> 1
図 6.2-9 ソフトウェアライセンスへの同意
z
BEA のホームディレクトリの設定
BEA のホームディレクトリをデフォルトの/home/ossf/bea とする。next を入力する。
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Choose BEA Home Directory:
-------------------------"BEA Home" = [/home/ossf/bea]
Input new BEA Home OR [Exit][Previous][Next]> next
図 6.2-10 BEA ホームディレクトリの設定
z
ホームディレクトリの選択
1 を入力し、ホームディレクトリを選択する。
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Choose BEA Home Directory:
-------------------------->1|Yes, Use this BEA home directory [/home/ossf/bea]
2|No, return to BEA home directory selection
Input new BEA Home OR [Exit][Previous][Next]> 1
図 6.2-11 ホームディレクトリの選択
− 6-49 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
z
インストールタイプの選択
2 を入力し、Custom Installation タイプを選択する。
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Choose Install Type:
-------------------->1|Complete
|Install the complete BEA WebLogic Platform.
2|Custom Installation
|Choose software components to install and perform optional configuration.
Enter index number to select OR [Exit][Previous][Next]> 2
図 6.2-12 インストールタイプの設定
z
インストールコンポーネントの選択
WebLogic Server のみをインストールするので[1.1]と入力する。
<------------------ BEA Installer - WebLogic Server 8.1 SP3 ------------------>
Choose Components to install:
----------------------------Release 8.1.3.0
|-----WebLogic Server [1] x
|
|-----Server [1.1] x
|
|-----Server Examples [1.2] x
|-----WebLogic Workshop [2] x
|-----Workshop Runtime Framework [2.1] x
|-----WebLogic Workshop Application Developer Edition [2.2] x
|-----Workshop Samples [2.3] x
Enter number exactly as it appears in brackets to toggle selection OR [Exit][Pre
vious][Next]> 1.1
図 6.2-13 インストールコンポーネントの選択
z
インストールコンポーネントの再選択
インストールするコンポーネントの選択が解除され、もう一度[1.1]と入力する。
<------------------ BEA Installer - WebLogic Server 8.1 SP3 ------------------>
Choose Components to install:
----------------------------Release 8.1.3.0
|-----WebLogic Server [1]
|
|-----Server [1.1]
|
|-----Server Examples [1.2]
|-----WebLogic Workshop [2]
|-----Workshop Runtime Framework [2.1]
|-----WebLogic Workshop Application Developer Edition [2.2]
|-----Workshop Samples [2.3]
− 6-50 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Enter number exactly as it appears in brackets to toggle selection OR [Exit][Pre
vious][Next]> 1.1
図 6.2-14 インストールコンポーネントの再選択
z
インストールコンポーネントの決定
WebLogic Server のみが選択されていることを確認し、next を入力する。
<------------------ BEA Installer - WebLogic Server 8.1 SP3 ------------------>
Choose Components to install:
----------------------------Release 8.1.3.0
|-----WebLogic Server [1] x
|
|-----Server [1.1] x
|
|-----Server Examples [1.2]
|-----WebLogic Workshop [2]
|-----Workshop Runtime Framework [2.1]
|-----WebLogic Workshop Application Developer Edition [2.2]
|-----Workshop Samples [2.3]
Enter number exactly as it appears in brackets to toggle selection OR [Exit][Pre
vious][Next]> next
図 6.2-15 インストールコンポーネントの決定
z
インストールコンポーネントの確認
選択したコンポーネントでインストールするかを確認されるので next を入力する。
<------------------ BEA Installer - WebLogic Server 8.1 SP3 ------------------>
Choose Components to install:
----------------------------->1|Yes, use these component selections
2|No, return to component selection
Enter index number to select OR [Exit][Next]> next
図 6.2-16 インストールコンポーネントの確認
z
Product ディレクトリの設定
next を入力する。デフォルトの Product ディレクトリを使用する。
− 6-51 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Choose Product Directory:
------------------------"Product Installation Directory" = [/home/ossf/weblogic81]
Input new Product Installation Directory OR [Exit][Previous][Next]> next
図 6.2-17 Product ディレクトリの設定
z
Product ディレクトリの選択
next を入力し、/home/ossf/bea/weblogic81 を Product ディレクトリとして決定する。
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Choose Product Directory:
------------------------->1|Yes, use this product directory [/home/ossf/weblogic81]
2|No, select another product directory
Enter index number to select OR [Exit][Previous][Next]> next
図 6.2-18 Product ディレクトリの選択
z
インストールの終了
Exit を入力し、インストールを終了する。
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Installing files..
0%
25%
50%
75%
100%
[--------------------|--------------------|--------------------|--------------------]
[**********************************************************************]
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Installing JDK....
0%
25%
50%
75%
100%
[--------------------|--------------------|--------------------|--------------------]
[**********************************************************************]
<------------- BEA Installer - WebLogic Server 8.1 SP3 ------------->
Installation Complete
Congratulations! WebLogic
/home/ossf/bea/weblogic81.
Server
8.1
SP3
has
been
successfully
installed
to
Press any key to continue OR [Exit]> Exit
図 6.2-19 インストール終了
− 6-52 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
AP_HOST に接続するために WEB_HOST 上で mod_wl_20.so を WebLogic のイン
„
ストールディレクトリからコピーする。
z
mod_wl_20.so をコピーする。
$ su # cp WEBLOGIC_DIR/weblogic81/server/lib/linux/i686/mod_wl_20.so\
APACHE_DIR/modules
WebLogic ドメインコンフィグレーション
„
コンフィグレーションウィザードでドメインの設定を行う。config.sh を実行しコンフィ
グレーションウィザードを開始する。この作業はインストールを実行したユーザで行う。
$ cd /home/ossf/bea/weblogic81/common/bin
$ ./config.sh -mode=console
next を入力し、コンソールモードでコンフィグレーションウィザードを開始する。
イメージを図 6.2-20∼図 6.2-38 に示す。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Select a Domain Template:
------------------------Please select a template from the list or select another directory of templates.
* [/home/ossf/weblogic81/common/templates/domains]
->1 |Basic WebLogic Server Domain 8.1.3.0
| BEA Systems, Inc.
| Create a basic WebLogic Server domain without installing sample
|applications.
2|Select another directory location
Enter index number to select OR [Down][Exit][Previous][Next]> next
図 6.2-20 ドメインコンフィグレーションの開始
z
ドメインテンプレートの選択
next を入力し、Basic ドメインテンプレートを選択する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Select a Domain Template:
-------------------------
− 6-53 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Please select a template from the list or select another directory of templates.
* [/opt/bea/weblogic81/common/templates/domains]
->1 |Basic WebLogic Server Domain 8.1.3.0
| BEA Systems, Inc.
| Create a basic WebLogic Server domain without installing sample
|applications.
2|Select another directory location
Enter index number to select OR [Down][Exit][Previous][Next]> next
図 6.2-21 ドメインテンプレートの選択
z
コンフィグレーションオプションの選択
2 を入力し、express モードのウィザードを選択しない。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Choose Configuration Option:
---------------------------*Do you want to run the wizard in express mode?
->1|Yes
2|No
Enter index number to select OR [Exit][Previous][Next]> 2
図 6.2-22 コンフィグレーションオプションの選択
z
管理サーバのコンフィグレーション
next を入力し、次の選択へ進む。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Configure the Administration Server:
-----------------------------------Enter adminstration server configurations. Each WebLogic Server domain must
have one Administration Server. The Administration Server hosts the
Administration Console which is used to perform administrative tasks.
|
Name
|
Value
|
- |--------------------------------------- |----------------------------------------- |
1|
*Name:
|
myserver
|
2|
Listen address:
| All Local Addresses
|
3|
Listen port:
|
7001
|
4|
SSL listen port:
|
N/A
|
5|
SSL enabled:
|
false
|
Select Option:
1 - Modify "Name"
2 - Modify "Listen address"
3 - Modify "Listen port"
4 - Modify "SSL enabled"
− 6-54 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Enter option number to select OR [Exit][Previous][Next]> next
図 6.2-23 管理サーバのコンフィグレーション
next を入力し、クラスタ、マシンのコンフィグレーションは行わない。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Choose Configuration Option:
---------------------------*Do you want to configure Managed Servers, Clusters and Machines?
1|Yes
->2|No
Enter index number to select OR [Exit][Previous][Next]> next
図 6.2-24 クラスタ、マシンのコンフィグレーション
next を入力し、JDBC ドライバのコンフィグレーションは行わない。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Choose Configuration Option:
---------------------------*Do you want to configure JDBC (Java Database Connectivity)?
1|Yes
->2|No
Enter index number to select OR [Exit][Previous][Next]> next
図 6.2-25 JDBC ドライバのコンフィグレーション
next を入力し、JMS のコンフィグレーションは行わない。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Choose Configuration Option:
---------------------------*Do you want to configure JMS (Java Messaging Service)?
1|Yes
− 6-55 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
->2|No
Enter index number to select OR [Exit][Previous][Next]> Next
図 6.2-26 JMS のコンフィグレーション
next を入力し、セキュリティのコンフィグレーションは行わない。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Choose Configuration Option:
---------------------------*Do you want to configure Advanced Security?
1|Yes
->2|No
Enter index number to select OR [Exit][Previous][Next]> next
図 6.2-27 セキュリティのコンフィグレーション
z
管理者のユーザ名とパスワードの設定
2 を入力し、管理者のパスワードを設定する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Configure Administrative Username and Password:
----------------------------------------------Create a user automatically assigned to the Administrative Role. This user is
the default administrator used to start development mode servers.
|
Name
|
Value
|
_|--------------------------------------- |------------------------------------------------------- |
1|
*User name:
|
weblogic
|
2|
*User password:
|
|
3| *Confirm user password:
|
|
4|
Description:
|
The default administration user
|
Select Option:
1 - Modify "User name"
2 - Modify "User password"
3 - Modify "Confirm user password"
4 - Modify "Description"
5 - Discard Changes
Enter option number to select OR [Exit][Previous][Next]> 2
図 6.2-28 ユーザ名とパスワードの設定
− 6-56 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
管理者のパスワードを weblogic とする。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Configure Administrative Username and Password:
----------------------------------------------Create a user automatically assigned to the Administrative Role. This user is
the default administrator used to start development mode servers.
"*User password:" = []
Input new *User password: OR [Exit][Reset][Accept]> weblogic(表示されない)
図 6.2-29 パスワードの設定
3 を入力し、管理者のパスワードの確認を選択する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Configure Administrative Username and Password:
----------------------------------------------Create a user automatically assigned to the Administrative Role. This user is
the default administrator used to start development mode servers.
|
Name
|
Value
|
_|--------------------------------------- |------------------------------------------------------- |
1|
*User name:
|
weblogic
|
2|
*User password:
|
********
|
3| *Confirm user password:
|
|
4|
Description:
|
The default administration user
|
Select Option:
1 - Modify "User name"
2 - Modify "User password"
3 - Modify "Confirm user password"
4 - Modify "Description"
5 - Discard Changes
Enter option number to select OR [Exit][Previous][Next]> 3
図 6.2-30 パスワードの確認を選択
weblogic を入力し、管理者のパスワードの確認を行う。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Configure Administrative Username and Password:
----------------------------------------------Create a user automatically assigned to the Administrative Role. This user is
the default administrator used to start development mode servers.
"*Confirm user password:" = []
− 6-57 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Input new *Confirm user password: OR [Exit][Reset][Accept]> weblogic(表示されない)
図 6.2-31 パスワードの確認
next を入力し、管理者の設定を終了する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Configure Administrative Username and Password:
----------------------------------------------Create a user automatically assigned to the Administrative Role. This user is
the default administrator used to start development mode servers.
|
Name
-|--------------------------------------1|
*User name:
2|
*User password:
3| *Confirm user password:
4|
Description:
|
Value
|
|------------------------------------------------------- |
|
weblogic
|
|
********
|
|
********
|
|
The default administration user
|
Select Option:
1 - Modify "User name"
2 - Modify "User password"
3 - Modify "Confirm user password"
4 - Modify "Description"
5 - Discard Changes
Enter option number to select OR [Exit][Previous][Next]> next
図 6.2-32 管理者設定の終了
z
ドメインのモード選択
2 を入力し、Production モードを選択する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Domain Mode Configuration:
-------------------------Enable Development or Production Mode for this domain.
->1|Development Mode
2|Production Mode
Enter index number to select OR [Exit][Previous][Next]> 2
図 6.2-33 ドメインモードの選択
z
JRockit の選択
1 を入力し、JRockit を選択する。
− 6-58 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Java SDK Selection:
------------------->1|JRockit SDK 1.4.2_04-8130 @ /home/ossf/bea/jrockit81sp3_142_04
2|Sun SDK 1.4.2_04 @ /home/ossf/bea/jdk142_04
3|Other Java SDK
Enter index number to select OR [Exit][Previous][Next]> 1
図 6.2-34 JRockit の選択
z
設定を行うドメインディレクトリの選択
next を入力し、設定を行うドメインとして/home/ossf/bea/user_projects/domains を
選択する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Select the target domain directory for this configuration:
---------------------------------------------------------"Target Location" = [/home/ossf/bea/user_projects/domains]
Input new Target Location OR [Exit][Previous][Next]> next
図 6.2-35 ドメインディレクトリの選択
z
ドメイン名の編集
specdomain を入力し、ドメイン名を編集する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Edit Domain Information:
-----------------------| Name |
Value
|
|------------- |--------------------------- |
1| *Name: |
mydomain
|
Enter value for “Name” OR [Exit][Previous][Next]> specdomain
図 6.2-36 ドメイン名の編集
next を入力し、設定を行うドメインとして specdomain を確認する。
<--------------------- BEA WebLogic Configuration Wizard --------------------->
Edit Domain Information:
-----------------------| Name |
Value
|
|------------- |--------------------------- |
− 6-59 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
1| *Name: |
specdamain
|
Enter value for “Name” OR [Exit][Previous][Next]> next
図 6.2-37 ドメイン名の確認
z
ドメインの生成
ドメインが生成される。
<------------- BEA WebLogic Configuration Wizard ------------->
Creating Domain...
0%
25%
50%
75%
100%
[--------------------|--------------------|--------------------|--------------------]
[**********************************************************************]
**** Domain Created Successfully! ****
図 6.2-38 ドメインの生成
„
ライセンスの適用
インストールした WebLogic Server のライセンスの適用を行う。6.2.8.2.1 AP サーバソ
フトウェアの調達において予め取得していたライセンスファイルを、license.bea とリネー
ムし既存のファイルに上書きする。
$ cp license.bea WEBLOGIC_DIR/license.bea
„
JDBC ドライバのコピー
DB_HOST から AP_HOST1∼4、JMS_HOST、DRIVER_HOST に postgresql.jar をコ
ピーする。
$ cp DB_HOST/pgsql/share/java/postgresql.jar \
各ホスト/WEBLOGIC_DIR/weblogic81/server/lib
„
CLASSPATH を追加
JMS_HOST 、AP_HOST1∼4 の
WEBLOGIC_DIR/user_projects/domains/specdomain/startManagedWebLogic.sh に
postgresql.jar のクラスパスを追加する。詳細な設定については JMS_HOST については
6.2.7.2.4 WebLogic の環境情報, AP_HOST1∼4 については 6.2.7.3.2 WebLogic の環境情報
を参照のこと。
− 6-60 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
boot.properties の作成
„
AP_HOST1∼4、JMS_HOST の WEBLOGIC_DIR/user_projects/domains/specdomain
ディレクトリ下に、以下の内容で boot.properties を作成する。
username=weblogic
password=weblogic
„
管理サーバの起動
本評価において WebLogic 管理サーバとする AP_HOST1 で管理サーバの起動を行う。
管理サーバ起動後、本評価における SPECjAppServer2004 のデプロイ以外の全ての設定を
行う。
z
CLASSPATH を追加
AP_HOST1 の
WEBLOGIC_DIR/user_projects/domains/specdomain/startWebLogic.sh に
postgresql.jar のクラスパスを追加する。詳細な設定については 6.2.7.3.2 WebLogic の
環境情報を参照のこと。
z
管理サーバの起動
管理サーバを以下の手順で起動する。
$ cd WEBLOGIC_DIR/user_projects/domains/specdomain
$ ./startWebLogic.sh
z
管理コンソールへアクセス
ブラウザから http://<AP_HOST1 の IP アドレス>:7001/console を入力する。
− 6-61 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.2-39 管理コンソールへのアクセス
以下のように入力してサインインする。
ユーザ名 : weblogic
パスワード : weblogic
z
マシンの作成
管理コンソールの「specdomain > マシン」を選択し「新しい Unix マシンのコンフ
ィグレーション」を選択する。
− 6-62 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.2-40 マシンの作成
「新しい Unix マシンのコンフィグレーション」で下記の 4 つのマシンを作成する。
名前に 1 つずつ dl360g3ap1, dl360g3ap2, dl360g3ap3, dl360g3ap4, dl360g4web を入
力し「作成ボタン」を押す。作成が終了すると、管理コンソールのマシン以下に入力
した名前でマシンが表示される。
− 6-63 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.2-41 作成したマシンの確認
z
サーバの作成
管理コンソールの「specdomain > サーバ」を選択し、「新しいサーバのコンフィグ
レーション」を選択する。
名前, マシン, リスンアドレス, リスンポートを入力し「作成」ボタンを押す。以下
に作成するサーバの一覧を示す。
表 6.2-80 作成するサーバの一覧
名前
z
マシン名
リスンアドレス
リスンポート
cluter1
dl360ap1
192.168.61.164
9001
cluter2
dl360ap2
192.168.61.165
9001
cluter3
dl360ap3
192.168.61.166
9001
cluter4
dl360ap4
192.168.61.167
9001
jmsserver
dl360g4web
192.168.61.163
9001
クラスタの作成
管理コンソールから「specdomain > クラスタ」を選択し、
「新しいクラスタのコン
フィグレーション」を選択する。クラスタアドレスに以下を入力し、
「作成」ボタンを
押す。
− 6-64 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
192.168.61.164, 192.168.61.165, 192.168.61.166, 192.168.61.167
z
管理コンソール上でサーバ以下の作成された cluster1∼cluster4 を選択し、「クラ
スタ > (なし)」 から「クラスタ > MyCluster」を選択し「適用」ボタンを押す。
注意点として jmsserver は「クラスタ > (なし)」のままである。
z
JDBC 接続プールの作成(Postgres)
DB_HOST 上で DB サーバ(PostgreSQL)を起動しておく。
$ pg_ctl ‒l postgres.log start
また起動時のオプション-l は必ずしも必須ではないが本評価において様々な分析を
行ったため、毎回オプション-l をつけて起動するものとした。
管理コンソールの「specdomain > サービス > 接続プール」を選択し、
「新しい JDBC
接続のコンフィグレーション」を選択する。データベースタイプは「PostgreSQL」を
選択し、データベースドライバは「PostgreSQL’s Driver (Type 4) Versions:Any」を選
択し「続行」ボタンを押す。
次の画面「specdomain > JDBC 接続プール > コンフィグレーション> 接続プロパ
ティの定義」では表 6.2-81 のように設定する。
表 6.2-81 JDBC 接続プールの設定
名前
データベース
ホスト名
ポート
名
postgres ossf
データベース
パスワード
ユーザ名
192.168.62.168 5432
ossf
ossf
次の画面「specdomain > JDBC 接続プール > コンフィグレーション> データベー
ス接続のテスト」で「ドライバのコンフィグレーションをテスト」ボタンを押す。
次の画面「specdomain > JDBC 接続プール > コンフィグレーション> 作成とデプ
ロイ」で「クラスタ > MyCluster > クラスタ内の全サーバ」を選択し「作成とデプロ
イ」ボタンを押す。
z
JDBC 接続プールの作成(PostgresJMS)
上記の postgres を作成したのと同じ手順で postgresJMS を作成する。表 6.2-82 に
設定を示す。
− 6-65 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 6.2-82 JDBC 接続プール(JMS)の作成
名前
データベース
ホスト名
ポート
データベー
名
パスワード
ス
ユーザ名
postgresJMS ossf_wljms
192.168.62.163 5432
ossf
ossf
「specdomain > JDBC 接続プール > コンフィグレーション> 作成とデプロイ」で、
「独立したサーバ > jmsserver」を選択し、作成とデプロイボタンを押す。
z
データソースの作成
管理コンソールの「specdomain > サービス > JDBC > データソース」を選択し、
「新しい JDBC データソースのコンフィグレーション」を選択する。設定を以下に示す。
名前:PostgresDS
JNDI 名:PostgresDS
「グローバルトランザクションを受け入れる」にチェックする。また、「非 XA ドラ
イバ用に 2 フェーズコミットをエミュレート」にチェックする。
「specdomain > JDBC データソース > データソースのコンフィグレーション >
接続プールへの接続」でプール名を「postgres」に指定し、「続行」ボタンを押す。
「specdomain > JDBC データソース > データソースのコンフィグレーション >
データソースの対象設定」で「クラスタ > MyCluster > クラスタ内の全サーバ」を指
定して「作成」ボタンを押す。
z
JMS サーバの作成
管理コンソールから「specdomain > サービス > JMS > 接続ファクトリ」を選択し、
「新しい JMS 接続ファクトリのコンフィグレーション」を選択する。以下の設定を行い、
「作成」ボタンを押す。
名前:SPECConnectionFactory
JNDI 名:SPECConnectionFactory
「specdomain > JMS 接続ファクトリ > SPECConnectionFactory」において「独立
したサーバ >
jmsserver」を選択し、「適用」ボタンを押す。
また作成後に、
「コンフィグレーション」タブの「トランザクション」タブを選択し、
− 6-66 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
「XA 接続ファクトリを有効化」をチェックし、「適用」ボタンを押す。
z
JMS ストアの作成
管理コンソールから「specdomain > サービス > JMS > ストア」を選択し「新しい
JMS JDBC ストアのコンフィグレーション」を選択する。以下の設定を行い「作成」
ボタンを押す。
名前:SPECStore
接続プール:PostgresJMS
z
JMS サーバのコンフィグレーション
管理コンソールの「specdomain > サービス > JMS > サーバ」を選択し、「新しい
JMS サーバのコンフィグレーション」を選択する。以下の設定を行い、
「作成」ボタン
を押す。
名前:SPECjmsserver
永続ストア:SPECStore
次 の 画 面 「 specdomain > JMS サ ー バ > SPECjmsserver 」 に お い て 対 象 を
「jmsserver」と選択し、
「適用」ボタンを押す。
z
JMS キューの作成
管理コンソールの「specdomain > サービス > JMS > サーバ > SPECjmsserver >
送り先」を選択し、
「新しい JMS キューのコンフィグレーション」を選択する。表 6.2-83
に示した内容でそれぞれ JMS キューの設定を行い、「作成」ボタンを押す。
表 6.2-83 作成する JMS キュー
JNDI 名
名前
z
ストアを有効化
BuyerQueue
queue/BuyerQueue
デフォルト
FulfillOrderQueue
queue/FulfillOrderQueue
デフォルト
LargeOrderQueue
queue/LargeOrderQueue
デフォルト
ReceiveQueue
queue/ReceiveQueue
デフォルト
外部 JMS サーバの作成
管理コンソールの「specdomain > サービス > JMS > 外部 JMS サーバ」を選択し、
「新しい外部 JMS サーバのコンフィグレーション」を選択する。以下の設定を行い、
「作成」ボタンを押す。
名前:SPECjmssererWrapper
− 6-67 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
初期コンテキストファクトリ:weblogic.jndi.WLInitialContextFactory(デフォルト)
JNDI 接続 URL:t3://192.168.61.163:9001
次の画面「specdomain > 外部 JMS サーバ > SPECjmsserverWrapper」で「クラ
スタ > MyCluster > クラスタ内の全サーバ」を選択し、「適用」ボタンを押す。
z
外部 JMS 接続ファクトリの作成
管 理 コ ン ソ ー ル の 「 specdomain > サ ー ビ ス > JMS > 外 部 JMS サ ー バ >
SPECjmsserverWrapper > 外部 JMS 接続ファクトリ」を選択し、「新しい外部 JMS
接続ファクトリのコンフィグレーション」を選択する。以下の設定を行い、「作成」ボ
タンを押す。
名前:SPECConnectionFactoryWrapper
ローカル JNDI 名:SPECConnectionFactoryWrapper
リモート JNDI 名:SPECConnectionFactory
ユーザ名:weblogic
パスワード:weblogic
パスワードの確認:weblogic
z
外部 JMS 送り先の設定
管 理 コ ン ソ ー ル の 「 specdomain > サ ー ビ ス > JMS > 外 部 JMS サ ー バ >
SPECjmsserverWrapper > 外部 JMS の送り先」を選択し、「新しい外部 JMS のコン
フィグレーション」を選択する。表 6.2-84 に示した内容でそれぞれ外部 JMS 送り先
の設定を行い「作成」ボタンを押す。
表 6.2-84 作成する外部 JMS 送り先
ローカル JNDI 名
名前
リモート JNDI 名
BuyerQueueWrapper
queue/BuyerQueueWrapper
queue/BuyerQueue
FulfillOrderQueueWrapper
queue/FulfillOrderQueueWrapper
queue/FulfillOrderQueue
LargeOrderQueueWrapper
queue/LargeOrderQueueWrapper
queue/LargeOrderQueue
ReceiveQueueWrapper
queue/ReceiveQueueWrapper
queue/ReceiveQueue
„
起動の準備
本検証のように管理サーバと管理対象サーバ(cluster1)を 1 つのサーバに同居させて使
用する場合、管理サーバと管理対象サーバの起動ディレクトリを分けて使用する。手順を
以下に示す。
$ cd WEBLOGIC_DIR/user_projects/domains/specdomain/
$ mkdir cluster1
$ cp boot.properties cluster1
− 6-68 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$ cp SerializedSystemini.dat cluster1
$ cp startManagedWebLogic.sh cluster1
6.2.8.7 データベースの初期化
データベースの初期化の手順は JBoss の場合と同様である。6.2.6.7 データベースの初期
化を参照のこと。なお、DB_HOST、JMS_HOST で使用するユーザ名を表 6.2-85 に示す。
表 6.2-85 ユーザ名
PostgreSQL ユーザ名
ホスト名
password
DB 名
DB_HOST
ossf
ossf
ossf
JMS_HOST
ossf
ossf
ossf_wljms
6.2.8.8 SPECjAppServer2004 アプリケーションのビルド・配置
SPECjAppServer2004 のビルドに必要なファイル群を 6 章付録ファイル 1 にて提供する。
これらのファイル群を使用して SPECjAppServer2004 をビルド・実行するには、各ファイ
ルのパラメータをあらかじめ設定する必要がある。詳細は 6.2.7.5.1 SPECjAppServer2004
の環境情報を参照のこと。
ここでは、SPECjAppServer2004 のビルドを DRIVER_HOST 上で実施することを前提
とした手順を示す。
6.2.8.8.1
必要ファイル群のコピー
SPECjAppServer2004 は多くのファイル群を提供するが、ホスト毎で必要とするファイ
ルが異なる。簡単のため、以下のようにファイル群を各ホストにコピーする。なお、
SPEC_CD は、6.2.6.2.1 SPECjAppServer2004 の調達で調達した CD メディアを格納した
CD ドライバのルート・ディレクトリを表す
なお、本評価で作成した ossf ユーザをとは別名のユーザを使用する場合や表 6.2-85 ユ
ーザ名示した PostgreSQL ユーザ名等とは別のものを使用する場合、ファイルの変更が必
要 に な る 。 変 更 点 に つ い て は 、 本 評 価 に お け る 詳 細 設 定 を 示 し た 6.2.7.5.1
SPECjAppServer2004 の環境情報を参照のこと。
z
DB_HOST 上の/home/ossf/schema/sql ディレクトリに、SPEC_CD/schema/sql 配下の
ファイルをコピーする。
$ mkdir /home/ossf/schema
$ cp -R SPEC_CD/schema/sql /home/ossf/schema/sql
z
DRIVER_HOST 上の SPEC_DIR に、SPEC_CD 配下の全ディレクトリおよびファイ
− 6-69 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ルをコピーする。
z
6 章付録ファイル 1 の
ENV_SET_WEBLOGIC/DRIVER_HOST/SPEC_DIR/src/deploy/weblogic デ ィ レ ク
トリを、DRIVER_HOST 上の SPEC_DIR/src/deploy 以下にコピーする。
z
6 章付録ファイル 1 の ENV_SET_WEBLOGIC/DRIVER_HOST/SPECDIR/bin 以下の
ファイルを、DRIVER_HOST 上の SPEC_DIR/bin の既存ファイルに上書きする。
z
6 章付録ファイル 1 の ENV_SET_WEBLOGIC/DRIVER_HOST/SPEC_DIR/config 以
下のファイルを、DRIVER_HOST 上の SPEC_DIR/config の既存ファイルに上書きす
る。
z
6 章付録ファイル 1 の
ENV_SET_WEBLOGIC/DRIVER_HOST/SPEC_DIR/weblogic-build.xml を、
DRIVER_HOST 上の SPEC_DIR にコピーする。
z
SPEC_CD 配 下 の src/deploy/reference 以 下 の フ ァ イ ル を DRIVER_HOST 上 の
SPEC_DIR/src/deploy/weblogic 以下にコピーする。
6.2.8.8.2
アプリケーションの設定
SPECjAppServer2004 はアプリケーションのビルドの前に、使用したい機能を有効する
ための各種設定を行う必要がある。本評価において使用した機能に基づく設定方法以下に
示す。なお測定において以下に示す機能を組み合わせることも可能である。
z
HTTP セッションレプリケーションを有効にする。
DRIVER_HOST 上の SPEC_DIR/src/deploy/weblogic/servlet.weblogic.xml の 12 行目,
19 行目のコメントと、SPEC_DIR/src/deploy/weblogic/web.weblogic.xml の 32 行目, 39 行
目のコメントを解除し、<session-descriptor>∼</session-descriptor>のタグを有効にする。
以下の行数は servlet.weblogic.xml のものである。
12 (<!-- ←コメント解除)
13 <session-descriptor>
14
<session-param>
15
<param-name>PersistentStoreType</param-name>
16
<param-value>replicated_if_clustered</param-value>
17
</session-param>
18 </session-descriptor>
19 (-->
z
←コメント解除)
EJB クラスタを有効にする。
− 6-70 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic における EJB クラスタは AP サーバが 2 台以上の場合自動で EJB クラスタの
機能が働く。
z
行ロックを有効にする。
DRIVER_HOST 上の SPEC_DIR/src/deploy/weblogic 以下のファイル内のコメントを解
除し、<use-select-for-update>True</use-select-for-update>のタグを有効にする。
・corp.weblogic.cmp.xml
・mfg.weblogic.cmp.xml
・orders.weblogic.cmp.xml
・supplier.weblogic.cmp.xml
なお、util.weblogic.cmp.xml 内の SequenceEnt はデフォルトで行ロック有効になっており、
常に行ロックを有効にしておく必要がある。
6.2.8.8.3
アプリケーションのビルド
DRIVER_HOST 上で SPECjAppServer2004 をビルドする手順を示す。
z
DRIVER_HOST 上で、アプリケーションをビルドする。
$ cd SPEC_DIR
$ ./ant/bin/ant -f weblogic-build.xml clean all
z
SPEC_DIR/jars 以 下 に 生 成 さ れ た SPECjAppServer.ear を 、 AP_HOST1 上 の
WEBLOGIC_DIR/user_projects/domains/specdomain ディレクトリにコピーする。
z
同様に、SPEC_DIR/jars 以下に生成された Emulator.war を、EMULATOR_HOST
上の TOMCAT_DIR/webapps ディレクトリにコピーする。
z
DRIVER_HOST/SPEC_DIR/config/run.properties 内の以下のパラメータの値を測定
に合わせて修正する。
・Url
・txRate
・rampUp
・stdyState
・rampDown
・triggerTime
txRate は、6.3.2.3 データ投入の”–DSCALE=<IR 値>”の<IR 値>と同じにする必要があ
る。なお、各パラメータについての詳細については、2.11.1 測定条件パラメータの設定を
参照のこと。
− 6-71 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
z
DRIVER_HOST 上で、Load Driver をビルドする。
$ cd SPEC_DIR
$ ./ant/bin/ant ‒f weblogic-build.xml clean-driver driver
− 6-72 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3 評価手順
本 章 で は 、 AP サ ー バ と し て 用 い る JBoss, WebLogic を ク ラ ス タ 化 し 、
SPECjAppServer2004 を用いた測定手順を示す。本章で示す測定手順は、AP サーバを 1
台から 4 台に増加させた場合においても共通の手順である。
6.3.1 JBoss クラスタ測定手順
JBoss クラスタ構成における、SPECjAppServer2004 の測定手順について記載する。
6.3.1.1 サーバプロセス群の起動
6.3.1.1.1
z
JMS サーバの起動
JMS_HOST 上で、JMS 用 DB サーバ(PostgreSQL)を起動する。(6.2.6.7 データベー
スの初期化ですでに起動している場合は必要ない。)
$ pg_ctl ‒l postgres.log start
また起動時のオプション-l は必ずしも必須ではないが本評価において様々な分析を行っ
たため、毎回オプション-l をつけて起動するものとした。
z
JMS_HOST 上の ossf ユーザでデータベースの破棄、作成を行う。
$ dropdb <DB 名> <ユーザ名>
$ createdb <DB 名> <ユーザ名>
なおこの手順は必須ではないが本評価においてデータベースの状態を一定に保つため
に毎回行うものとした。
z
JMS_HOST 上で、JMS サーバ(JBoss)を起動する。
$ cd JBOSS_DIR
$ ./bin/run.sh -c specjms --host= <IP アドレス>
6.3.1.1.2
z
DB サーバの起動
DB_HOST 上で、DB サーバ(PostgreSQL)を起動する。(6.2.6.7 データベースの初期化
ですでに起動している場合は必要ない。)
$ pg_ctl ‒l postgres.log start
− 6-73 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
また起動時のオプション-l は必ずしも必須ではないが本評価において様々な分析を行っ
たため、毎回オプション-l をつけて起動するものとした。
z
DB_HOST 上の ossf ユーザでデータベースの破棄、作成を行う。
$ dropdb <DB 名> <ユーザ名>
$ createdb <DB 名> <ユーザ名>
なおこの手順は必須ではないが本評価においてデータベースの状態を一定に保つため
に毎回行うものとした。
6.3.1.1.3
z
AP サーバの起動
測定するクラスタ台数に応じて AP_HOST1∼4 上で下記の手順に従って AP サーバ
(JBoss)を起動する。
$ cd JBOSS_DIR
$ ./bin/run.sh ‒c specall --host= <IP アドレス>
また 6.2.6.8 SPECjAppServer2004 アプリケーションのビルドで記載したとおり、
測定において AP サーバの使用台数が 1 台のみで、HttpSession レプリケーション、
EJB クラスタを使用しない場合は AP_HOST1 で下記の手順に従って AP サーバを起動
する。
$ cd JBOSS_DIR
$ ./bin/run.sh ‒c specdefault --host= <IP アドレス>
6.3.1.1.4
z
Web サーバの起動
WEB_HOST 上で、Web サーバ(Apache httpd)を起動する。
ま た 、 AP
サ ー バ の 使 用 台 数 に よ っ て 、 Web
サ ー バ 起 動 前 に
APACHE_DIR/conf/workers2.properties の内のチャネル設定のコメントを解除する必要
がある。詳細は、6.2.5.2.3 mod_jk2 の環境情報を参照のこと。
$ su ‒
# /etc/rc.d/init.d/httpd start
− 6-74 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3.1.1.5
z
Supplier Emulator の起動
EMULATOR_HOST 上で、Supplier Emulator(Tomcat)を起動する。
$ TOMCAT_DIR/bin/startsp.sh
6.3.1.2 データベースへの初期データの投入
データベースへの初期データの投入の手順を以下に示す。
6.3.1.2.1
z
データベーステーブルの作成と index の作成
DB_HOST 上に、測定に必要なデータを格納するためのテーブル・スキーマを作成す
る。
$ cd /home/ossf/schema/sql
$ psql <DB 名> <ユーザ名> < schema_C.sql
$ psql <DB 名> <ユーザ名> < schema_M.sql
$ psql <DB 名> <ユーザ名> < schema_O.sql
$ psql <DB 名> <ユーザ名> < schema_S.sql
$ psql <DB 名> <ユーザ名> < schema_U.sql
z
DB_HOST 上で c_customerinventory テーブルをインデックススキャンにすることで
DB サーバの性能が大幅に向上することが確認されているため、ci_customerid カラム
にインデックスを作成する。
$ psql <DB 名> <ユーザ名>
ossf=# CREATE INDEX C_ci_customerid_idx ON C_customerinventory ( ci_customerid );
6.3.1.3 データ投入
DB にデータを投入する手順を以下に示す。
z
DRIVER_HOST 上で以下のコマンドを実行する。
$ cd SPEC_DIR/
$ ./ant/bin/ant ‒f jboss-build.xml loaddb ‒DSCALE=<IR 値>
このコマンドを実行することにより、DB_HOST 上の PostgreSQL にデータを投入でき
る 。 IR(Injection Rate) 値 は 、 デ ー タ ベ ー ス へ の デ ー タ 投 入 数 を 決 定 す る 、
SPECjAppServer2004 固有のメトリックである。SCALE オプションを指定しない場合の
− 6-75 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
デ フ ォ ル ト 値 は 1 で あ る 。 6.2.6.8.3 ア プ リ ケ ー シ ョ ン の ビ ル ド 内 で 設 定 し た
DRIVER_HOST/SPEC_DIR/config/run.properties 内のパラメータ txRate の値と同じにす
る必要がある。
z
データ投入後、DB_HOST 上で、インデックスの再作成、及びデータベースの不要領
域の回収と解析を行う。
$ psql ossf ‒s
reindex table <テーブル名>
(各テーブルに対して行う)
$ vacuumdb --full --analyze <DB 名>
6.3.1.4 ベンチマーク測定の実施
測定の実施手順を以下に示す。
z
全ホスト上で、以下の手順でシステム監視コマンド(sysstat)を起動する。
$ sar ‒A ‒o <出力先ファイル> <測定間隔> <測定期間>
$ iostat <測定間隔> <測定期間> > <出力先ファイル>
$ vmstat <測定間隔> <測定期間> > <出力先ファイル>
z
DRIVER_HOST 上で、Load Driver を起動し、測定を開始する。
$ cd SPEC_DIR
$./bin/driver.sh
z
Load Driver 実行ターミナルに、以下のような表示が出力されれば、測定終了である。
Gathering DealerStats ...
Gathering MfgStats ...
Summary file is output/**/SPECjAppServer.summary
Calling getLog as master
6.3.1.5 サーバプロセス群の停止
サーバプロセスの停止手順を示す。ただし、停止順序は必ずしもこの限りではない。
6.3.1.5.1
z
Supplier Emulator の停止
EMULATOR_HOST 上で、Supplier Emulator(Tomcat)を停止する。
$ TOMCAT_DIR/bin/shutdown.sh
− 6-76 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3.1.5.2
z
Web サーバの停止
WEB_HOS 上で、Web サーバ(Apache httpd)を停止する。
$ su ‒
# /etc/rc.d/init.d/httpd stop
6.3.1.5.3
z
AP_HOST1∼4 上で、AP サーバ(JBoss)を Ctrl-C キーにより停止する。
6.3.1.5.4
z
AP サーバの停止
DB サーバの停止
DB_HOST 上で、DB サーバ(PostgreSQL)を停止する。
$ pg_ctl ‒m f stop
また、オプション-m f は必須ではないが本章のサーバプロセス群の停止の順番に依存しな
いため、毎回の測定終了後は必ず付けるものとした。
6.3.1.5.5
JMS サーバの停止
z
JMS_HOST 上で、JMS サーバ(JBoss)を Ctrl-C キーにより停止する。
z
JMS 用 DB サーバ(PostgreSQL)を停止する。下記に示すオプション-m f は必須ではな
いが本章のサーバプロセス群の停止の順番に依存しないため、毎回の測定終了後は必
ず付けるものとした。
$ pg_ctl ‒m f stop
6.3.1.6 ベンチマーク測定結果の評価
ベ ン チ マ ー ク 測 定 終 了 後 に 測 定 結 果 フ ァ イ ル 群 が
DRIVER_HOST/SPEC_DIR/output/**/ディレクトリ以下に生成される。各ファイルの説明
は 2.12 ベンチマーク測定結果の評価を参照のこと。
− 6-77 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3.2 WebLogic クラスタ測定手順
WebLogic クラスタ構成における、SPECjAppServer2004 の測定手順について記載する。
6.3.2.1 サーバプロセス群の起動
6.3.2.1.1
z
管理サーバの起動
AP_HOST1 上で管理サーバを起動する手順を以下に示す。(6.2.8.6.7 WebLogic のイン
ストール・設定ですでに起動している場合は必要ない。)
$ cd WEBLOGIC_DIR/user_projects/domains/specdomain
$ ./startWebLogic.sh
z
管理コンソールへアクセス
ブラウザから http://<AP_HOST1 の IP アドレス>:7001/console を入力する。
6.3.2.1.2
z
JMS サーバの起動
JMS_HOST 上で、JMS 用 DB サーバ(PostgreSQL)を起動する。(6.2.8.7 データベー
スの初期化ですでに起動している場合は必要ない。)
$ pg_ctl ‒l postgres.log start
また起動時のオプション-l は必ずしも必須ではないが本評価において様々な分析を行っ
たため、毎回オプション-l をつけて起動するものとした。
z
JMS_HOST 上の ossf ユーザでデータベースの破棄、作成を行う。
$ dropdb <DB 名> <ユーザ名>
$ createdb <DB 名> <ユーザ名>
なおこの手順は必須ではないが本評価においてデータベースの状態を一定に保つため
に毎回行うものとした。
z
JMS_HOST 上で、JMS サーバ(WebLogic)を起動する。
$ cd WEBLOGIC_DIR/user_projects/domains/specdomain
$ ./startManagedWebLogic.sh jmsserver http://<AP_HOST1 の IP アドレス>:7001
− 6-78 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3.2.1.3
DB サーバの起動
DB_HOST 上で、DB サーバ(PostgreSQL)を起動する方法は JBoss の場合と同様である。
5.3.1.2 DB サーバの起動を参照のこと。
6.3.2.1.4
z
AP サーバの起動
測定するクラスタ台数に応じて AP_HOST1∼4 上で AP サーバ(WebLogic)を起動する。
AP_HOST1 においては以下に示す手順で WebLogic を起動する。
$ cd WEBLOGIC_DIR/user_projects/domains/specdomain/cluster1
$ ./startManagedWebLogic.sh cluster1 http://<AP_HOST1 の IP アドレス>:7001
AP_HOST2∼4 においては以下に示す手順で WebLogic を起動する。
$ cd WEBLOGIC_DIR/user_projects/domains/specdomain
$ ./startManagedWebLogic.sh cluster(2∼4) \
http://<AP_HOST1 の IP アドレス>:7001
z
アプリケーションのデプロイ
管理コンソールから「specdomain > デプロイメント > アプリケーション」を選択し、
「新しいアプリケーションのデプロイ」を選択する。
図 6.3-1 新しいアプリケーションのデプロイ
− 6-79 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
「SPECjAppServer.ear」を選択し、
「アプリケーションの割り当て」ボタンを押す。
図 6.3-2 アプリケーションの割り当て
「クラスタ > MyCluster > クラスタ内の全サーバ」を選択し、「続行」ボタンを押す。
図 6.3-3 全クラスタの選択
− 6-80 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
デフォルトの状態で「デプロイ」ボタンを押す。
図 6.3-4 デプロイの実行
図 6.3-5 の画面が出ればデプロイ終了である。
図 6.3-5 デプロイの完了
− 6-81 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3.2.1.5
z
Web サーバの起動
WEB_HOST 上で、Web サーバ(Apache httpd)を起動する。また、AP サーバの使用台
数によって APACHE_DIR/conf/httpd.conf の設定を変更する必要がある。詳細は
6.2.7.2.2 Apache httpd の環境情報を参照のこと。
$ su ‒
# /etc/rc.d/init.d/httpd start
6.3.2.1.6
Supplier Emulator の起動
EMULATOR_HOST 上で、Supplier Emulator(Tomcat)を起動する手順は JBoss と同様
である。6.3.1.1.5 Supplier Emulator の起動を参照のこと。
6.3.2.2 データベースへの初期データの投入
データベースへの初期データの投入の手順を以下に示す。
6.3.2.2.1
z
データベーステーブルの作成と index の作成
JMS_HOST 上の ossf ユーザでテーブルの作成を行う。
$ psql <DB 名> <ユーザ名>
ossf=# create table jmsstate (recordHandle int, recordState int,\
recordGeneration int);
ossf=# create table jmsstore (recordHandle int, recordState int, record bytea);
z
JMS_HOST 上 ossf ユーザでインデックスを作成する。
ossf=# create index jmsmsg_x on jmsstate (recordHandle);
ossf=# create index jmsmsgq_x on jmsstore(recordHandle);
なおこの手順は必須ではないが本評価においてデータベースの状態を一定に保つために
毎回行うものとした。
z
DB_HOST 上に、測定に必要なデータを格納するためのテーブル・スキーマを作成し
インデックスを作成する。方法は JBoss の場合と同様である。6.3.1.2.1 データベース
テーブルの作成と index の作成を参照のこと。
− 6-82 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.3.2.3 データ投入
DB にデータを投入する手順を以下に示す。
z
DRIVER_HOST 上で、以下を実行する。
$ cd SPEC_DIR/
$ ./ant/bin/ant ‒f weblogic-build.xml loaddb ‒DSCALE=<IR 値>
このコマンドを実行することにより、DB_HOST 上の PostgreSQL にデータを投入でき
る 。 IR(Injection Rate) 値 は 、 デ ー タ ベ ー ス へ の デ ー タ 投 入 数 を 決 定 す る 、
SPECjAppServer2004 固有のメトリックである。SCALE オプションを指定しない場合の
デフォルト値は 1 である。6.2.8.8 SPECjAppServer2004 アプリケーションのビルド・配置
内で設定した DRIVER_HOST/SPEC_DIR/config/run.properties 内のパラメータ txRate
の値と同じにする必要がある。
z
データ投入後、DB_HOST 上で、インデックスの再作成、及びデータベースの不要領
域の回収と解析を行う。
$ psql ossf ‒s
reindex table <テーブル名>
(各テーブルに対して行う)
$ vacuumdb --full --analyze <DB 名>
6.3.2.4 ベンチマーク測定の実施
測定の実施手順は JBoss の場合と同様である。6.3.1.4 ベンチマーク測定の実施を参照の
こと。
6.3.2.5 サーバプロセス群の停止
サーバプロセスの停止手順以下の三点以外は JBoss の場合と同様である。6.3.1.5 サーバ
プロセス群の停止を参照のこと。
6.3.2.5.1
z
AP_HOST1∼4 上で、AP サーバ(WebLogic)を Ctrl-C キーにより停止する。
6.3.2.5.2
z
AP サーバの停止
JMS サーバの停止
JMS_HOST 上で、JMS サーバ(WebLogic)を Ctrl-C キーにより停止する。次に、JMS
用 DB サーバ(PostgreSQL)を停止する。下記に示すオプション-m f は必須ではないが
本章のサーバプロセス群の停止の順番に依存しないため、毎回の測定終了後は必ず付
けるものとした。
− 6-83 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
$ pg_ctl ‒m f stop
6.3.2.5.3
z
管理サーバの停止
AP_HOST1 上で管理サーバ(WebLogic)を Ctrl-C キーにより停止する。
6.3.2.6 ベンチマーク測定結果の評価
ベンチマーク測定終了後に測定結果ファイル群が
DRIVER_HOST/SPEC_DIR/output/**/ディレクトリ以下に生成される。各ファイルの説明
は 2.12 ベンチマーク測定結果の評価を参照のこと。
− 6-84 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.4 評価結果
本評価では、JBoss クラスタ及び WebLogic クラスタの HttpSession レプリケーション
機能を評価するために、それぞれのクラスタ構成において HttpSession のレプリケーショ
ンがありの場合となしの場合の 4 つのケースでスケーラビリティを評価した。処理性能、
応答時間、サーバリソースを 7 段階の負荷(規模)で測定し、AP サーバ台数を 1 台から 4 台
に増加させることでスケーラビリティを評価した。なお本節では上記 4 つのケース毎の評
価結果のみを示し、それぞれのケースを比較することによって得られる考察については、
6.5 節にて示す。
本評価では、今回使用したベンチマーク SPECjAppServer2004 の固有のメトリックであ
る処理性能を現す JOPS や負荷を表す IR の値は公開できない(1.2.2 項参照)。そのため、本
評価結果では JOPS の値は非表示にし、IR の値については A(最低負荷)∼G(最高負荷)のア
ルファベットで高低を表している。以下に注意点を述べる。
z
本評価で示す全てのグラフの横軸は IR の値となっており、各グラフの同一のアルフ
ァベットは同一の負荷を表し、横軸の右に行くほど負荷は大きくなっている。
z
グラフには負荷 A∼負荷 G が等間隔に並んでいないもの(例:図 6.4-1)と等間隔に並
んでいるもの(例:図 6.4-7)があるが、等間隔に並んでいないグラフの目盛りの幅が
実際の負荷量の増分を表している。
z
3 章, 4 章, 5 章のグラフにて示されているアルファベットとは同一の負荷を表してい
ない。
以後、JOPS 値を「処理性能」、IR 値を「負荷(規模)」と記述する。
また、グラフ中の「理想値」「基準値」についての説明を以下に述べる。
z
「負荷(規模)と処理性能の関係に関する測定結果」グラフの中の理想値とは、AP サ
ーバ 1 台時の負荷 A の場合の処理性能の結果に、かけた負荷と負荷 A との比率を乗
じて算出した値である。
z
「負荷(規模)と応答時間の関係に関する測定結果」グラフの中の基準値とは、
SPECjAppServer2004 で規定されている 90%応答時間の基準( Mfg-5 秒、Purchase-2
秒、Manage-2 秒、Browse-2 秒)のラインである。今回は平均応答時間のグラフのみ
掲載しているが、平均応答時間の基準は(90%応答時間+0.1 秒)となっているので、応
答時間の是非を判断するため便宜的に 90%応答時間の基準のラインを示してある。
6.4.1 JBoss クラスタ (HttpSession レプリケーションあり)評価結果
本項では、JBoss クラスタ構成において、HttpSession レプリケーションありの場合の評
価結果を示す。HttpSession のレプリケーション単位は HttpSession 全体で測定を行って
いる。これは、本評価で採用した JBoss4.0.0 では変更された Attribute 単位でレプリケー
ションさせる設定にバグがあり、動作させることができないためである。詳しくは
Appendix B.3.4 項を参照のこと。
− 6-85 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.4.1.1 負荷(規模)と処理性能の関係に関する測定結果
負荷(規模)と処理性能の関係に関する測定結果を図 6.4-1 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
JBoss AP1台
JBoss AP4台
JBoss AP2台
理想値
JBoss AP3台
40
35
処理性能
30
25
20
15
10
5
0
0
A B C
5D
E
10
F
15
G20
負荷(規模)
図 6.4-1 JBoss クラスタ(HttpSession レプリケーションあり)処理性能
図 6.4-1 のグラフから分かる事は、以下の通り。
¾
AP サーバ台数が多いほど、処理性能は高くなっている。
¾
AP サーバ 1 台でレプリケーションありの設定では、処理性能は負荷 B では理想値
直線上だが、負荷 C から処理性能はほぼ横ばいとなっている。
¾
AP サーバ 2 台∼4 台の場合は、AP サーバ 2 台より 3 台、3 台より 4 台と AP サ
ーバ台数が多いほうが処理性能は高い。負荷 D∼G でリニアに処理性能が向上し
ているが、負荷が高まるにつれ、理想値との差が広がっている。本評価で測定し
た最高負荷である負荷 G においては、理想値の約半分の性能しかでていない。
6.4.1.2 負荷(規模)と応答時間の関係に関する測定結果
負 荷 ( 規 模 ) と 応 答 時 間 の 関 係 に 関 す る 測 定 結 果 を 図 6.4-2 ∼ 図 6.4-5 に 示 す 。 図
6.4-2-Mfg、図 6.4-3-Purchase、図 6.4-4-Manage、図 6.4-5-Browse の処理の各グラフに
おいて、横軸が負荷(規模)、縦軸が応答時間の平均値である。横軸が負荷(規模)、縦軸が応
答時間の平均値である。
− 6-86 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均応答時間(秒)
JBoss AP1台
JBoss AP2台
JBoss AP4台
Mfg基準値
JBoss AP3台
35
30
25
20
15
10
5
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.4-2 JBoss クラスタ(HttpSession レプリケーションあり)Mfg 平均応答時間
JBoss AP1台
JBoss AP2台
JBoss AP4台
Purchase基準値
JBoss AP3台
平均応答時間(秒)
100
80
60
40
20
0
0
A B C
D5
E10
F15
G20
負荷(規模)
平均応答時間(秒)
図 6.4-3 JBoss クラスタ(HttpSession レプリケーションあり)Purchase 平均応答時間
JBoss AP1台
JBoss AP2台
JBoss AP4台
Manage基準値
JBoss AP3台
70
60
50
40
30
20
10
0
0
A B C
5
D
10
E
15
F
20
G
負荷(規模)
図 6.4-4 JBoss クラスタ(HttpSession レプリケーションあり)Manage 平均応答時間
− 6-87 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBoss AP1台
JBoss AP4台
JBoss AP2台
Browse基準値
JBoss AP3台
平均応答時間(秒)
120
100
80
60
40
20
0
0
A B C
D5
E
10
F
15
G20
負荷(規模)
図 6.4-5 JBoss クラスタ(HttpSession レプリケーションあり)Browse 平均応答時間
図 6.4-2∼図 6.4-5 のグラフから分かる事は以下の通り。
¾
AP サーバ台数が多いほど、応答時間は短い傾向にある。
¾
Mfg, Manage では、AP サーバ台数 1 台のとき極端に遅い。(考察 6.5.5.1 参照)
¾
Purchase, Browse では、負荷 C 以上の負荷で応答時間はほぼリニアに悪化してい
る。
¾
負荷 D 以上の負荷では、AP サーバ 1∼4 台全てが SPECjAppServer2004 で規定
されている応答時間の基準を、全く満たせていない。
6.4.1.3 サーバリソースに関する測定結果
サーバリソースとして CPU、メモリ、ディスク、ネットワークの負荷状況を測定した。
それらのうち CPU に関する物だけを以下に示す。その他のサーバリソースについては 6 章
付録ファイル 2 を参照のこと。
StdyState 期間の全ての AP サーバの CPU 使用率の平均を図 6.4-6 に示す。横軸が負荷
(規模)、縦軸が CPU 使用率の平均値である。
− 6-88 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均CPU使用率(%)
JBoss AP1台
100
90
80
70
60
50
40
30
20
10
0
0
JBoss AP2台
D5
A B C
JBoss AP3台
E10
JBoss AP4台
F
G20
15
負荷(規模)
図 6.4-6 JBoss クラスタ(HttpSession レプリケーションあり)全 AP サーバ平均 CPU 使用率
図 6.4-6 のグラフから分かる事は以下の通り。
¾
負荷が上がるにつれて、CPU 使用率は高くなっている。
¾
AP サーバ台数が多い方が、CPU 使用率は低くなっている。
¾
AP サーバ 1 台の場合、負荷 A∼D において CPU 使用率が大幅に上昇している。
その後、ほぼ 100%使い切っている。
AP サーバ 2∼4 台の場合は、負荷 D 以降、60%∼70%までしか上昇していない。
¾
そのとき処理性能はほぼ横ばいになっており、CPU が使い切れていないのに処理
性能は限界であることがわかる。
次に、AP サーバごとの CPU 使用率の平均を図 6.4-7∼図 6.4-9 に示す。図 6.4-7-AP サ
ーバ 2 台、図 6.4-8 -AP サーバ 3 台、図 6.4-9-AP サーバ 4 台となっている。横軸が負荷(規
模)、縦軸が CPU 使用率の平均値である。
JBoss AP1
JBoss AP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-7 JBoss クラスタ 2 台(HttpSession レプリケーションあり) AP サーバ毎平均 CPU 使用率
− 6-89 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBoss AP1
JBoss AP2
JBoss AP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-8 JBoss クラスタ 3 台(HttpSession レプリケーションあり) AP サーバ毎平均 CPU 使用率
JBoss AP1
JBoss AP2
JBoss AP3
JBoss AP4
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-9 JBoss クラスタ 4 台(HttpSession レプリケーションあり) AP サーバ毎平均 CPU 使用率
図 6.4-7∼図 6.4-9 のグラフから分かる事は以下の通り。
¾
AP サーバ間で CPU 使用率のバラつきが見られる。図 6.4-7-AP サーバ 2 台の場
合は、常に AP サーバ 2 の方が CPU 使用率は高く、バラつきは負荷 G のとき最大
で、25.6point も生じている。図 6.4-8-AP サーバ 3 台、図 6.4-9-AP サーバ 4 台
の場合は CPU 使用率のバラつき方は一定ではない。AP サーバ 3 台の場合のバラ
つきが最大なのは負荷 F のときの AP サーバ 1-3 間で 11.5point、AP サーバ 4 台
の場合は負荷 E のとき AP サーバ 2-3 間で 12.8point である。
− 6-90 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.4.2 JBoss クラスタ(HttpSession レプリケーションなし)評価結果
本項では、JBoss クラスタ構成において、HttpSession レプリケーションなしの場合の評
価結果を示す。なお、同様の測定が 4 章 分散処理性能比較においても実施されているが、
本環境とはハードウェア構成, ネットワーク構成, OS が異なるため直接の比較はできない
ことに注意されたい。
6.4.2.1 負荷(規模)と処理性能の関係に関する測定結果
負荷(規模)と処理性能の関係に関する測定結果を図 6.4-10 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
JBoss AP1台レプなし
JBoss AP3台レプなし
理想値
JBoss AP2台レプなし
JBoss AP4台レプなし
40
35
処理性能
30
25
20
15
10
5
0
0
A B C
D5
E
10
F15
G20
負荷(規模)
図 6.4-10 JBoss クラスタ(HttpSession レプリケーションなし)処理性能
図 6.4-10 のグラフから分かる事は以下の通り。
¾
AP サーバ 1 台では負荷 E までは理想値上をリニアに処理性能が向上しているが、
負荷 F から横ばいになっている。
¾
AP サーバ 2 台∼4 台では負荷 G まで理想値上である。
6.4.2.2 負荷(規模)と応答時間の関係に関する測定結果
負荷(規模)と応答時間の関係に関する測定結果を図 6.4-11∼図 6.4-14 に示す。図
6.4-11-Mfg、図 6.4-12-Purchase、図 6.4-13-Manage、図 6.4-14-Browse の処理の各グラ
フにおいて、横軸が負荷(規模)、縦軸が応答時間の平均値である。
− 6-91 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均応答時間(秒)
JBossレプなし 1台
JBossレプなし 4台
JBossレプなし 2台
Mfg基準値
JBossレプなし 3台
16
14
12
10
8
6
4
2
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.4-11 JBoss クラスタ(HttpSession レプリケーションなし)Mfg 平均応答時間
平均応答時間(秒)
JBossレプなし 1台
JBossレプなし 4台
JBossレプなし 2台
Purchase基準値
JBossレプなし 3台
7
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
平均応答時間(秒)
図 6.4-12 JBoss クラスタ(HttpSession レプリケーションなし)Purchase 平均応答時間
JBossレプなし 1台
JBossレプなし 2台
JBossレプなし 4台
Manage基準値
JBossレプなし 3台
7
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.4-13 JBoss クラスタ(HttpSession レプリケーションなし)Manage 平均応答時間
− 6-92 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBossレプなし 1台
JBossレプなし 2台
JBossレプなし 4台
Browse基準値
JBossレプなし 3台
平均応答時間(秒)
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.4-14 JBoss クラスタ(HttpSession レプリケーションなし)Browse 平均応答時間
図 6.4-11∼図 6.4-14 のグラフから分かる事は以下の通り。
¾
レプリケーションなしの場合は、AP サーバ 1 台では負荷 E までは速いが、負荷 F
から SPECjAppServer2004 の応答時間の基準を満たせず、かなり悪化している。
¾
AP サーバ 2 台∼4 台ではほぼ横ばいで、負荷 G でも SPECjAppServer2004 の応
答時間の基準を満たしている。
¾
AP サーバ 1 台の負荷 F 以降で応答時間が悪化し、AP サーバ 2 台∼4 台では負荷
G でも応答時間が悪化していないというのは、
処理性能の結果と同じ傾向である。
6.4.2.3 サーバリソースに関する測定結果
サーバリソースとして CPU、メモリ、ディスク、ネットワークの負荷状況を測定した。
それらのうち CPU に関する物だけを以下に示す。その他のサーバリソースについては 6 章
付録ファイル 2 を参照のこと。
StdyState 期間の全ての AP サーバの CPU 使用率の平均を図 6.4-15 に示す。横軸が負
荷(規模)、縦軸が CPU 使用率の平均値である。
− 6-93 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均CPU使用率(%)
JBossレプなしAP1台
JBossレプなしAP3台
100
90
80
70
60
50
40
30
20
10
0
0
A B C
5D
JBossレプなしAP2台
JBossレプなしAP4台
10E
F
15
G
20
負荷(規模)
図 6.4-15 JBoss クラスタ(HttpSession レプリケーションなし)全 AP サーバ平均 CPU 使用率
図 6.4-15 のグラフから分かる事は、以下の通り。
¾
AP サーバ 1 台レプリケーションなしの場合は負荷 F でほぼ 100%使い切っている。
¾
AP サーバ 2 台∼4 台の場合では、レプリケーションなしの場合は負荷 G でも CPU
を使い切っておらず、リニアに増加している。
処理性能と比較すると、AP サーバ 1 台の場合は、CPU を 100%使い切っている負
¾
荷 F から、処理性能は理想値上をリニアに上昇せず横ばいになっている。AP サー
バ 2 台∼4 台の場合は、負荷 G まで CPU 使用率はリニアに増加しており、処理性
能も理想値上をリニアに増加している。
次に、AP サーバごとの CPU 使用率の平均を図 6.4-16∼図 6.4-18 に示す。図 6.4-16 AP
サーバ 2 台、図 6.4-17-AP サーバ 3 台、図 6.4-18 AP サーバ 4 台である。横軸が負荷(規
模)、縦軸が CPU 使用率の平均値である。
JBossレプなしAP1
JBossレプなしAP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-16 JBoss クラスタ 2 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
− 6-94 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBossレプなしAP1
JBossレプなしAP2
JBossレプなしAP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-17 JBoss クラスタ 3 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
JBossレプなしAP1
JBossレプなしAP3
JBossレプなしAP2
JBossレプなしAP4
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-18 JBoss クラスタ 4 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
図 6.4-16∼図 6.4-18 のグラフから分かる事は、以下の通り。
¾
AP サーバ間で CPU 使用率にバラつきはあまりみられず、バラつき方は一定では
ない。図 6.4-16-AP サーバ 2 台の場合は、バラつきは負荷 F のとき最大で、7.6point
生じている。同様に、図 6.4-17-AP サーバ 3 台の場合、バラつきは負荷 G のとき
最大で AP サーバ 1-2 間で 7.1point、図 6.4-18-AP サーバ 4 台の場合は負荷 G の
とき最大で AP サーバ 3-4 間で 4.7point 生じている。
− 6-95 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.4.3 WebLogic クラスタ(HttpSession レプリケーションあり)評価結果
本項では、WebLogic クラスタ構成において、HttpSession レプリケーションありの場合
の評価結果を示す。
なお、HttpSession のレプリケーションの設定はデフォルトの設定を使用した。デフォル
ト設定では、AP サーバ台数 1 台の場合は、HttpSession のレプリケーションは行われず、
2 台∼4 台の場合は HttpSession のレプリケーション単位は変更された Attribute となる。
6.4.3.1 負荷(規模)と処理性能の関係に関する測定結果
負荷(規模)と処理性能の関係に関する測定結果を図 6.4-19 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
WebLogic AP2台
理想値
WebLogic AP3台
処理性能
WebLogic AP1台
WebLogic AP4台
0
A B C
D5
E
10
F
15
G
20
負荷(規模)
図 6.4-19 WebLogic クラスタ(HttpSession レプリケーションあり)処理性能
図 6.4-19 のグラフから分かる事は、以下の通り。
¾
WebLogic は AP サーバ 1 台∼4 台とも、負荷 G まで理想値どおりの処理性能であ
った。
6.4.3.2 負荷(規模)と応答時間の関係に関する測定結果
負荷(規模)と応答時間の関係に関する測定結果を図 6.4-20∼図 6.4-23 に示す。図
6.4-20-Mfg、図 6.4-21-Purchase、図 6.4-22-Manage、図 6.4-23-Browse の各グラフにお
いて、横軸が負荷(規模)、縦軸が応答時間の平均値である。
− 6-96 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Weblogic 1台
Weblogic 2台
Weblogic 4台
Mfg基準値
Weblogic 3台
平均応答時間(秒)
6
5
4
3
2
1
0
0
A B C
D5
E10
F15
20
G
負荷(規模)
図 6.4-20 WebLogic クラスタ(HttpSession レプリケーションあり)Mfg 平均応答時間
Weblogic 1台
Weblogic 2台
Weblogic 4台
Purchase基準値
Weblogic 3台
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
E10
F15
G20
負荷(規模)
図 6.4-21 WebLogic クラスタ(HttpSession レプリケーションあり)Purchase 平均応答時間
Weblogic 1台
Weblogic 4台
Weblogic 2台
Manage基準値
Weblogic 3台
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
E10
F15
G20
負荷(規模)
図 6.4-22 WebLogic クラスタ(HttpSession レプリケーションあり)Manage 平均応答時間
− 6-97 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Weblogic 1台
Weblogic 4台
Weblogic 2台
Browse基準値
Weblogic 3台
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
E10
F15
G20
負荷(規模)
図 6.4-23 WebLogic クラスタ(HttpSession レプリケーションあり)Browse 平均応答時間
図 6.4-20∼図 6.4-23 のグラフから分かる事は、以下の通り。
¾
AP サーバ 1∼4 台全ての場合で SPECjAppSercer2004 が規定している応答時間の
基準の範囲内である。
¾
応答時間は負荷が高まるにつれ遅くなっているが、縦軸の目盛りが微小であるの
で性能には全く問題はないといえる。
6.4.3.3 サーバリソースに関する測定結果
サーバリソースとして CPU、メモリ、ディスク、ネットワークの負荷状況を測定した。
それらのうち CPU に関する物だけを以下に示す。その他のサーバリソースについては 6 章
付録ファイル 2 を参照のこと。
StdyState 期間の全ての AP サーバの CPU 使用率の平均を図 6.4-24 に示す。横軸が負
荷(規模)、縦軸が CPU 使用率の平均値である。
− 6-98 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic AP1台
WebLogic AP3台
WebLogic AP2台
WebLogic AP4台
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
0
A B C
5D
10
E
F15
20
G
負荷(規模)
図 6.4-24 WebLogic クラスタ(HttpSession レプリケーションあり)全サーバ平均 CPU 使用率
図 6.4-24 のグラフから分かる事は、以下の通り。
¾
AP サーバ台数が多い方が CPU 使用率は低くなる。
¾
AP サーバ台数 1 台∼3 台のときは、負荷 E のところで CPU 使用率が急に上昇し
ている。AP サーバ 4 台のときは負荷が F のところで急に上昇している。
次に、AP サーバごとの CPU 使用率の平均を図 6.4-25∼図 6.4-27 に示す。図 6.4-25-AP
サーバ 2 台、図 6.4-26-AP サーバ 3 台、図 6.4-27-AP サーバ 4 台の結果を示している。横
軸が負荷(規模)、縦軸が CPU 使用率の平均値である。
WebLogic AP1
WebLogic AP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-25 WebLogic クラスタ 2 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
− 6-99 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic AP1
WebLogic AP2
WebLogic AP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-26 WebLogic クラスタ 3 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
WebLogic AP1
WebLogic AP2
WebLogic AP3
WebLogic AP4
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-27 WebLogic クラスタ 4 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
図 6.4-25∼図 6.4-27 のグラフから分かる事は、以下の通り。
¾
AP サーバ間での CPU 使用率のバラつきはあまりみられない。バラつきが最も大
きいのは、図 6.4-27-AP サーバ 4 台の負荷 G のとき AP サーバ 2-4 間で 7.5point
である。
6.4.4 WebLogic クラスタ(HttpSession レプリケーションなし)評価結果
本項では、WebLogic クラスタ構成において、HttpSession レプリケーションなしの場合
の評価結果を示す。
− 6-100 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.4.4.1 負荷(規模)と処理性能の関係に関する測定結果
負荷(規模)と処理性能の関係に関する測定結果を図 6.4-28 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
WebLogic AP2台レプなし
WebLogic AP4台レプなし
処理性能
WebLogic AP1台レプなし
WebLogic AP3台レプなし
理想値
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.4-28 WebLogic クラスタ(HttpSession レプリケーションなし)処理性能
図 6.4-28 のグラフから分かる事は、以下の通り。
¾
WebLogic レプリケーションなしでは、AP サーバ台数によらず負荷 G まで理想値
どおりの処理性能であった。
6.4.4.2 負荷(規模)と応答時間の関係に関する測定結果
負荷(規模)と応答時間の関係に関する測定結果を図 6.4-29∼図 6.4-32 に示す。図
6.4-29-Mfg、図 6.4-30-Purchse、図 6.4-31-Manage、図 6.4-32-Browse の各グラフにお
いて、横軸が負荷(規模)、縦軸が応答時間の平均値である。
Webligicレプなし 1台
Webligicレプなし 3台
Mfg基準値
Webligicレプなし 2台
Webligicレプなし 4台
平均応答時間(秒)
6
5
4
3
2
1
0
0
A B C
5D
E
10
F
15
G
20
負荷(規模)
図 6.4-29 WebLogic クラスタ(HttpSession レプリケーションなし)Mfg 平均応答時間
− 6-101 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Webligicレプなし 1台
Webligicレプなし 3台
Purchase基準値
平均応答時間(秒)
2.5
Webligicレプなし 2台
Webligicレプなし 4台
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.4-30 WebLogic クラスタ(HttpSession レプリケーションあり)Purchase 平均応答時間
Webligicレプなし 1台
Webligicレプなし 3台
Manage基準値
Webligicレプなし 2台
Webligicレプなし 4台
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.4-31 WebLogic クラスタ(HttpSession レプリケーションあり)Manage 平均応答時間
Webligicレプなし 1台
Webligicレプなし 3台
Browse基準値
平均応答時間(秒)
2.5
Webligicレプなし 2台
Webligicレプなし 4台
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.4-32 WebLogic クラスタ(HttpSession レプリケーションあり)Browse 平均応答時間
− 6-102 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.4-29∼図 6.4-32 のグラフから分かる事は、以下の通り。
¾
AP サーバ 1 台∼4 台全ての場合で SPECjAppServer2004 で規定されている応答
時間の基準の範囲内である。
¾
応答時間は負荷が高まるにつれ遅くなっているが、縦軸の目盛りが微小であるの
で性能には全く問題はないといえる。
6.4.4.3 サーバリソースに関する測定結果
サーバリソースとして CPU、メモリ、ディスク、ネットワークの負荷状況を測定した。
それらのうち CPU に関する物だけを以下に示す。その他のサーバリソースについては 6 章
付録ファイル 2 を参照のこと。
StdyState 期間の全ての AP サーバの CPU 使用率の平均を図 6.4-33 に示す。横軸が負
荷(規模)、縦軸が CPU 使用率の平均値である。
平均CPU使用率(%)
WebLogicレプなしAP1台
WebLogicレプなしAP3台
WebLogicレプなしAP2台
WebLogicレプなしAP4台
100
90
80
70
60
50
40
30
20
10
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.4-33 WebLogic クラスタ(HttpSession レプリケーションなし)全 AP サーバ平均 CPU 使用率
図 6.4-33 のグラフから分かる事は、以下の通り。
¾
AP サーバ台数 1 台∼3 台のときは、負荷 E のところで CPU 使用率が急に上昇
している。AP サーバ 4 台のときは負荷 F のところで上昇している。
次に、AP サーバごとの CPU 使用率の平均を図 6.4-34∼図 6.4-36 に示す。図 6.4-34-AP サ
ーバ 2 台、図 6.4-35-AP サーバ 3 台、図 6.4-36-AP サーバ 4 台である。横軸が負荷(規模)、
縦軸が CPU 使用率の平均値である。
− 6-103 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogicレプなしAP1
WebLogicレプなしAP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-34 WebLogic クラスタ 2 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
WebLogicレプなしAP1
WebLogicレプなしAP2
WebLogicレプなしAP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-35 WebLogic クラスタ 3 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
WebLogicレプなしAP1
WebLogicレプなしAP2
WebLogicレプなしAP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
負荷(規模)
図 6.4-36 WebLogic クラスタ 4 台(レプリケーションなし) AP サーバ毎平均 CPU 使用率
− 6-104 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.4-34∼図 6.4-36 のグラフから分かる事は、以下の通り。
¾
レプリケーションなしの場合も、AP サーバ間の CPU 使用率のバラつきは少ない。
バラつきが大きいときで、図 6.4-36-AP サーバ 4 台の負荷 E のとき AP サーバ 3-4
間で 7.6point である。
− 6-105 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.5 分析と考察
本節では、以下の 4 つの観点から測定結果を比較した分析を示し、その後、得られる考
察について示す。
z
JBoss クラスタ構成における HttpSession レプリケーションのあり/なし比較
z
WebLogic クラスタ構成における HttpSession レプリケーションのあり/なし比較
z
JBoss 単体/WebLogic 単体比較
z
JBoss クラスタ構成(HttpSession レプリケーションあり)/WebLogic クラスタ構成
(HttpSession レプリケーションあり)比較
6.5.1 JBoss クラスタ構成における HttpSession レプリケーションのあり/なし
比較
JBoss クラスタ構成において、HttpSession のレプリケーションを行った場合と、行わな
い場合の性能を比較し分析する。HttpSession のレプリケーションを行う場合、レプリケー
ションの単位は HttpSession 全体である。
6.5.1.1 負荷(規模)と処理性能の関係に関する比較
負荷(規模)と処理性能の関係に関する比較結果を図 6.5-1 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
JBoss AP1台
JBoss AP4台
JBoss AP3台レプなし
JBoss AP2台
JBoss AP1台レプなし
JBoss AP4台レプなし
JBoss AP3台
JBoss AP2台レプなし
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A B C
D5
E10
負荷(規模)
F
15
G
20
図 6.5-1 JBoss クラスタ レプリケーションあり/なし比較 処理性能
図 6.5-1 のグラフから分かる事は、以下の通り
¾
AP 台数 1 台∼4 台全ての場合で、レプリケーションなしの方がレプリケーション
ありより処理性能が高い。
¾
AP サーバ 1 台ではレプリケーションありの場合、処理性能は負荷 B までは理想値
上だが、負荷 C から劣化し始め、負荷 D 以降は横ばいである。レプリケーション
− 6-106 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
なしの場合、負荷 E までは理想値上をリニアに向上しているが、負荷 F から横ば
いになっている。
AP サーバ 2 台∼4 台ではレプリケーションありの場合、負荷 D からみるとリニア
¾
に処理性能が向上しているが、負荷が高まるにつれ理想値との差が広がっている。
一方、レプリケーションなしの場合は負荷 G まで理想値上で、処理性能は劣化し
ていない。
6.5.1.2 負荷(規模)と応答時間等の関係に関する比較
負荷(規模)と応答時間の関係に関する比較結果を図 6.5-2∼図 6.5-5 に示す。
図 6.5-2-Mfg、図 6.5-3-Purchase、図 6.5-4-Manage、図 6.5-5-Browse の処理の各グラフ
において、横軸が負荷(規模)、縦軸が応答時間の平均値である。
平均応答時間(秒)
JBoss AP1台
JBoss AP4台
JBossレプなし 3台
JBoss AP2台
JBossレプなし 1台
JBossレプなし 4台
JBoss AP3台
JBossレプなし 2台
基準値
35
30
25
20
15
10
5
0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.5-2 JBoss クラスタレプリケーションあり/なし比較 Mfg 平均応答時間
平均応答時間(秒)
JBoss AP1台
JBoss AP4台
JBossレプなし 3台
JBoss AP2台
JBossレプなし 1台
JBossレプなし 4台
JBoss AP3台
JBossレプなし 2台
Purchase基準値
90
80
70
60
50
40
30
20
10
0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.5-3 JBoss クラスタレプリケーションあり/なし比較 Purchase 平均応答時間
− 6-107 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均応答時間(秒)
JBoss AP1台
JBoss AP4台
JBossレプなし 3台
JBoss AP2台
JBossレプなし 1台
JBossレプなし 4台
JBoss AP3台
JBossレプなし 2台
Manage基準値
70
60
50
40
30
20
10
0
0
A B C
5D
10
E
15
F
G20
負荷(規模)
図 6.5-4 JBoss クラスタレプリケーションあり/なし比較 Manage 平均応答時間
JBoss AP1台
JBoss AP4台
JBossレプなし 3台
JBoss AP2台
JBossレプなし 1台
JBossレプなし 4台
JBoss AP3台
JBossレプなし 2台
Browse基準値
平均応答時間(秒)
120
100
80
60
40
20
0
0
A B C
5D
10
E
15
F
G20
負荷(規模)
図 6.5-5 JBoss クラスタレプリケーションあり/なし比較 Browse 平均応答時間
図 6.5-2∼図 6.5-5 のグラフから分かる事は、以下の通り。
¾
レプリケーションなしの方がレプリケーションありより応答時間は速い。
¾
図 6.5-2-Mfg では、レプリケーションあり、AP サーバ 1 台の場合は、負荷 C か
ら応答時間が極端に遅くなっており、SPECjAppServer2004 で規定されている応
答時間の基準(90%応答時間 Mfg-5 秒)を満たせなくなっている。レプリケーション
な し AP サ ー バ 1 台 の 場 合 は 、 負 荷 F か ら 極 端 に 遅 く な っ て お り 、
SPECjAppServer2004 で規定されている応答時間の基準を満たせていない。処理
性能が向上せず横ばいになる点と同様の点で応答時間が遅くなっている。AP サー
バ台数 2∼4 台の場合は、レプリケーションなしの方がレプリケーションありより
応答時間は速い傾向にあり、全ての場合で SPECjAppServer2004 で規定されてい
る応答時間の基準内に収まっている。(考察 6.5.5.1 参照)
− 6-108 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.5-3-Purchase∼図 6.5-5-Browse では、負荷が高くなるにつれ、レプリケー
¾
ションありのほうが、レプリケーションなしよりも応答時間が非常に遅くなって
いる。負荷 D から SPECjAppServer2004 で規定されている応答時間の基準を満た
せていない。
6.5.1.3 サーバリソースに関する比較
CPU 使用率についての比較結果を図 6.5-6 JBoss クラスタレプリケーションあり/なし比
較に示す。横軸が負荷(規模)、縦軸が CPU 使用率の平均値である。
平均CPU使用率(%)
JBoss AP1台
JBoss AP4台
JBossレプなしAP3台
100
90
80
70
60
50
40
30
20
10
0
0
A B C
JBoss AP2台
JBossレプなしAP1台
JBossレプなしAP4台
5D
E10
JBoss AP3台
JBossレプなしAP2台
F
15
G
20
負荷(規模)
図 6.5-6 JBoss クラスタレプリケーションあり/なし比較 全 AP サーバ平均 CPU 使用率
図 6.5-6 JBoss クラスタレプリケーションあり/なし比較のグラフから分かる事は、以下
の通り。
¾
レプリケーションなしの方がレプリケーションありよりも CPU 使用率が少ない傾
向がみられる。
¾
実際にレプリケーションする相手のいない AP サーバ 1 台の場合でも、レプリケー
ションの設定ありの場合となしの場合で CPU 使用率が大きく異なる。レプリケー
ションありでは低負荷な状態から CPU 使用率が大幅に上昇し、負荷 C で 86%、
負荷 D でほぼ 100%使い切っている(考察 6.5.5.2 参照)。レプリケーションなしで
は負荷 A から F まで、CPU 使用率はほぼリニアに上昇し、負荷 F でほぼ 100%使
い切っている。レプリケーションあり/なしともに、CPU 使用率が 100%になると
ころで、処理性能が横ばいになり、応答時間も悪化している。
¾
AP サーバ 2∼4 台の場合レプリケーションありでは CPU を使い切れていない(考
察 6.5.5.3 参照)。負荷 D 以降 CPU 使用率の伸びが悪化し、負荷 G でも CPU 使用
率は 60%∼70%ぐらいである。処理性能、応答時間も CPU 使用率の伸びが悪化し
た負荷 D 以上で悪化している。レプリケーションなしでは、CPU 使用率は負荷 G
までリニアに上昇している。このとき、レプリケーション無しの場合は処理性能、
応答時間ともに悪化していない。
− 6-109 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
次に、AP サーバごとの CPU 使用率の平均の比較を図 6.5-7∼図 6.5-9 に示す。図 6.5-7
-AP サーバ 2 台、図 6.5-8-AP サーバ 3 台、図 6.5-9-AP サーバ 4 台の結果である。横軸が
負荷(規模)、縦軸が CPU 使用率の平均値である。
JBoss AP1
JBoss AP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
B
レプリケーションあり
C
D
E
F
G
レプリケーションなし
負荷(規模)
図 6.5-7 JBoss クラスタ AP サーバ 2 台 平均 CPU 使用率比較
JBoss AP1
JBoss AP2
JBoss AP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
レプリケーションあり
B
C
D
E
F
G
レプリケーションなし
負荷(規模)
図 6.5-8 JBoss クラスタ AP サーバ 3 台 平均 CPU 使用率比較
− 6-110 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBoss AP1
JBoss AP2
JBoss AP3
JBoss AP4
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
B
レプリケーションあり
C
D
E
F
G
レプリケーションなし
負荷(規模)
図 6.5-9 JBoss クラスタ AP サーバ 4 台 平均 CPU 使用率比較
図 6.5-7∼図 6.5-9 のグラフから分かる事は、以下の通り。
¾
全体的に、レプリケーションありの方がレプリケーションなしよりも CPU 使用率
は高く、AP サーバ間のバラつきが大きい傾向である(考察 6.5.5.4 参照)。バラつき
が一番大きいのは図 6.5-7-AP サーバ 2 台の場合で、レプリケーションありでは負
荷 G のとき最大で 25.6point、レプリケーションなしでは、負荷 F のとき最大で、
7.6point も生じている。
6.5.2 WebLogic クラスタ構成における HttpSession レプリケーションのあり/
なし比較
WebLogic クラスタ構成において、HttpSession のレプリケーションを行った場合と、行
わない場合の性能を比較、分析する。HttpSession のレプリケーションの設定は、AP サー
バ台数 1 台の場合は HttpSession のレプリケーションは行われず、2 台∼4 台の場合は
HttpSession のレプリケーション単位は Attribute となる。
6.5.2.1 負荷(規模)と処理性能の関係に関する測定結果
負荷(規模)と処理性能の関係に関する比較結果を図 6.5-10 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
− 6-111 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic AP1台
WebLogic AP4台
WebLogic AP3台レプなし
WebLogic AP2台
WebLogic AP1台レプなし
WebLogic AP4台レプなし
WebLogic AP3台
WebLogic AP2台レプなし
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A B C
D5
10
E
負荷(規模)
F
15
G20
図 6.5-10 WebLogic クラスタ レプリケーションあり/なし比較 処理性能
図 6.5-10 のグラフから分かる事は、以下の通り。
¾
WebLogic クラスタでは HttpSession のレプリケーションありの場合となしの場合
共に、各 AP サーバ台数で負荷 G の場合まで理想値どおりの処理性能であった。
6.5.2.2 負荷(規模)と応答時間の関係に関する測定結果
負荷(規模)と応答時間の関係に関する比較結果を図 6.5-11∼図 6.5-14 に示す。図
6.5-11-Mfg、図 6.5-12-Purchase、図 6.5-13-Manage、図 6.5-14-Browse の各グラフにお
いて、横軸が負荷(規模)、縦軸が応答時間の平均値である。
Weblogic 1台
Weblogic 4台
Webligicレプなし 3台
Weblogic 2台
Webligicレプなし 1台
Webligicレプなし 4台
Weblogic 3台
Webligicレプなし 2台
Mfg基準値
平均応答時間(秒)
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.5-11 WebLogic クラスタレプリケーションあり/なし比較 Mfg 平均応答時間
− 6-112 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Weblogic 1台
Weblogic 4台
Webligicレプなし 3台
Weblogic 2台
Webligicレプなし 1台
Webligicレプなし 4台
Weblogic 3台
Webligicレプなし 2台
Purchase基準値
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.5-12 WebLogic クラスタレプリケーションあり/なし比較 Purchase 平均応答時間
Weblogic 1台
Weblogic 4台
Webligicレプなし 3台
Weblogic 2台
Webligicレプなし 1台
Webligicレプなし 4台
Weblogic 3台
Webligicレプなし 2台
Manage基準値
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
10
E
F15
G20
負荷(規模)
図 6.5-13 WebLogic クラスタレプリケーションあり/なし比較 Manage 平均応答時間
Weblogic 1台
Weblogic 4台
Webligicレプなし 3台
Weblogic 2台
Webligicレプなし 1台
Webligicレプなし 4台
Weblogic 3台
Webligicレプなし 2台
Browse基準値
平均応答時間(秒)
2.5
2.0
1.5
1.0
0.5
0.0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-14 WebLogic クラスタレプリケーションあり/なし比較 Browse 平均応答時間
− 6-113 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.5-11∼図 6.5-14 のグラフから分かる事は、以下の通り。
¾
WebLogic クラスタ構成では、HttpSession のレプリケーションありの場合となし
の場合で、応答時間に差は見られなかった。
6.5.2.3 サーバリソースに関する測定結果
CPU 使用率についての比較結果を図 6.5-15 に示す。横軸が負荷(規模)、縦軸が CPU 使
用率の平均値である。
平均CPU使用率(%)
WebLogic AP1台
WebLogic AP4台
WebLogicレプなしAP3台
WebLogic AP2台
WebLogicレプなしAP1台
WebLogicレプなしAP4台
WebLogic AP3台
WebLogicレプなしAP2台
100
90
80
70
60
50
40
30
20
10
0
0
A B C
D5
10
E
15
F
20
G
負荷(規模)
図 6.5-15 WebLogic クラスタレプリケーションあり/なし比較 全 AP サーバ平均 CPU 使用率
図 6.5-15 のグラフから分かる事は、以下の通り。
¾
レプリケーションあり/なしでも差は見られない。
¾
レプリケーションあり/なしともに、AP サーバ台数 1∼3 台のときは、負荷が E の
ところで CPU 使用率が急に上昇している。AP サーバ 4 台のときは負荷が F のと
ころで上昇している。(考察 6.5.6.3 参照)
次に、AP サーバごとの CPU 使用率の平均を図 6.5-16∼図 6.5-18 に示す。図 6.5-16-AP
サーバ 2 台、図 6.5-17-AP サーバ 3 台、図 6.5-18-AP サーバ 4 台の結果を示している。横
軸が負荷(規模)、縦軸が CPU 使用率の平均値である。
− 6-114 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
WebLogic AP1
WebLogic AP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
B
レプリケーションあり
C
D
E
F
G
レプリケーションなし
負荷(規模)
図 6.5-16 WebLogic クラスタ AP サーバ 2 台 平均 CPU 使用率比較
WebLogic AP1
WebLogic AP2
WebLogic AP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
B
レプリケーションあり
C
D
E
F
G
レプリケーションなし
負荷(規模)
図 6.5-17 WebLogic クラスタ AP サーバ 3 台 平均 CPU 使用率比較
WebLogic AP1
WebLogic AP2
WebLogic AP3
WebLogic AP4
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
レプリケーションあり
B
C
D
E
F
G
レプリケーションなし
負荷(規模)
図 6.5-18 WebLogic クラスタ AP サーバ 4 台 平均 CPU 使用率比較
− 6-115 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.5-16∼図 6.5-18 のグラフから分かる事は、以下の通り。
¾
レプリケーションあり/なしで差は見られない。
¾
AP サーバ間の CPU 使用率のバラつきは少ない。
6.5.3 JBoss 単体/WebLogic 単体比較
本項では、JBoss 単体、WebLogic の単体での性能を比較する。
6.5.3.1 負荷(規模)と処理性能の関係に関する比較結果
負荷(規模)と処理性能の関係に関する比較結果を図 6.5-19 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
JBoss単体
WebLogic単体
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A B C
D5
E
10
F15
G
20
負荷(規模)
図 6.5-19 JBoss/WebLogic 単体比較 処理性能
図 6.5-19 のグラフから分かる事は、以下の通り。
¾
WebLogic は単体、レプリケーションなしでも負荷 G まで理想値に沿っている。
¾
JBoss は単体、レプリケーションなしの場合、負荷が E までは理想値直線上であ
る。負荷 F、G では処理性能は横ばいである。
6.5.3.2 負荷(規模)と応答時間の関係に関する比較結果
負荷(規模)と応答時間の関係に関する比較結果を図 6.5-20∼図 6.5-23 に示す。図
6.5-20-Mfg、図 6.5-21-Purchse、図 6.5-22-Manage、図 6.5-23-Browse の各グラフにお
いて、横軸が負荷(規模)、縦軸が応答時間の平均値である。
− 6-116 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均応答時間(秒)
JBossレプなし 1台
Webligicレプなし 1台
Mfg基準値
16
14
12
10
8
6
4
2
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-20
JBoss/WebLogic 単体比較 Mfg 平均応答時間
平均応答時間(秒)
JBossレプなし 1台
Webligicレプなし 1台
Purchase基準値
7
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-21 JBoss/WebLogic 単体比較 Purchase 平均応答時間
平均応答時間(秒)
JBossレプなし 1台
Webligicレプなし 1台
Manage基準値
7
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-22 JBoss/WebLogic 単体比較 Manage 平均応答時間
− 6-117 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBossレプなし 1台
Webligicレプなし 1台
Browse基準値
平均応答時間(秒)
6
5
4
3
2
1
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-23 JBoss/WebLogic 単体比較 Browse 平均応答時間
図 6.5-20∼図 6.5-23 のグラフから分かる事は、以下の通り。
¾
WebLogic は負荷 G でも応答時間は劣化していない。
¾
JBoss は負荷 E までは応答時間は短いが、負荷 F、G の場合では大幅に悪化して
いる。
6.5.3.3 サーバリソースに関する比較結果
CPU 使用率についての比較結果を図 6.5-24 に示す。横軸が負荷(規模)、縦軸が CPU 使
用率の平均値である。
平均CPU使用率(%)
JBossレプなしAP1台
WebLogicレプなしAP1台
100
90
80
70
60
50
40
30
20
10
0
0
A B C
5D
10
E
15
F
20G
負荷(規模)
図 6.5-24 JBoss/WebLogic 単体比較 平均 CPU 使用率
図 6.5-24 のグラフから分かる事は、以下の通り。
− 6-118 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
¾
単体、レプリケーションなしでは JBoss、WebLogic の CPU 使用率はあまり変わ
らない。
¾
WebLogic は負荷 E で CPU 使用率が大幅に増加しても、処理性能、応答時間は劣
化していない。
¾
JBoss では、負荷 E で CPU 使用率が大幅に増加し、処理性能、応答時間とも大幅
に劣化している。
6.5.4 JBoss クラスタ構成(HttpSession レプリケーションあり)/WebLogic クラ
スタ構成(HttpSession レプリケーションあり)
JBoss クラスタ構成と WebLogic クラスタ構成の性能を比較する。なお、JBoss の
HttpSession のレプリケーション単位は HttpSession 全体、WebLogic は Attribute 単位で
ある。
6.5.4.1 負荷(規模)と処理性能の関係に関する比較結果
負荷(規模)と処理性能の関係に関する比較結果を図 6.5-25 に示す。横軸が負荷(規模)、縦
軸が処理性能である。
JBoss AP1台
JBoss AP4台
WebLogic AP3台
JBoss AP2台
WebLogic AP1台
WebLogic AP4台
JBoss AP3台
WebLogic AP2台
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-25 JBoss/WebLogic クラスタ比較 処理性能
図 6.5-25 のグラフから分かる事は、以下の通り。
¾
AP サーバ 1 台の場合、JBoss の処理性能は負荷 B では理想値直線上だが、負荷 C
から劣化し始め、負荷が D のとき理想値の半分以下に性能が劣化している。その
後、処理性能は横ばいである。WebLogic の処理性能は AP サーバ 1 台でも、負荷
G まで理想値上である。
¾
AP サーバ台数 2∼4 台の場合、JBoss は負荷 A∼C の低負荷の場合は、理想値と
同様の処理性能が出ているが、負荷が D で、処理性能が劣化している。WebLogic
は AP サーバ 1 台の場合と同様、負荷 G まで理想値直線上である。
¾
負荷 G のとき、WebLogic 単体で JBoss クラスタ 4 台時の約 2 倍の処理性能が出
ている。
− 6-119 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
6.5.4.2 負荷(規模)と応答時間の関係に関する比較結果
負荷(規模)と応答時間の関係に関する比較結果を図 6.5-26∼図 6.5-29 に示す。
図 6.5-26-Mfg、図 6.5-27-Purchse、図 6.5-28-Manage、図 6.5-29-Browse の各グラフに
おいて、横軸が負荷(規模)、縦軸が応答時間の平均値である。
平均応答時間(秒)
JBoss AP1台
JBoss AP4台
Weblogic 3台
JBoss AP2台
Weblogic 1台
Weblogic 4台
JBoss AP3台
Weblogic 2台
Mfg基準値
35
30
25
20
15
10
5
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-26 JBoss/WebLogic クラスタ比較 Mfg 平均応答時間
平均応答時間(秒)
JBoss AP1台
JBoss AP4台
Weblogic 3台
JBoss AP2台
Weblogic 1台
Weblogic 4台
JBoss AP3台
Weblogic 2台
Purchase基準値
90
80
70
60
50
40
30
20
10
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-27 JBoss/WebLogic クラスタ比較 Purchase 平均応答時間
− 6-120 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均応答時間(秒)
JBoss AP1台
JBoss AP4台
Weblogic 3台
JBoss AP2台
Weblogic 1台
Weblogic 4台
JBoss AP3台
Weblogic 2台
Manage基準値
70
60
50
40
30
20
10
0
0
A B C
D5
10
15
E
G20
F
負荷(規模)
図 6.5-28 JBoss/WebLogic クラスタ比較 Manage 平均応答時間
JBoss AP1台
JBoss AP4台
Weblogic 3台
平均応答時間(秒)
120
JBoss AP2台
Weblogic 1台
Weblogic 4台
JBoss AP3台
Weblogic 2台
Browse基準値
100
80
60
40
20
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-29 JBoss/WebLogic クラスタ比較 Browse 平均応答時間
図 6.5-26∼図 6.5-29 のグラフから分かる事は、以下の通り。
¾
WebLogic は負荷 G でも応答時間は SPECjAppServer2004 で規定されている応答
時間の基準の範囲内である。JBoss は負荷 D∼G では、AP サーバ 1 台∼4 台全て
で SPECjAppServer2004 で規定されている応答時間の基準を全く満たせていない。
6.5.4.3 サーバリソースに関する測定結果
CPU 使用率についての比較結果を図 6.5-30 に示す。横軸が負荷(規模)、縦軸が CPU 使
用率の平均値である。
− 6-121 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均CPU使用率(%)
JBoss AP1台
JBoss AP4台
WebLogic AP3台
JBoss AP2台
WebLogic AP1台
WebLogic AP4台
JBoss AP3台
WebLogic AP2台
100
90
80
70
60
50
40
30
20
10
0
0
A B C
D5
10
E
15
F
G20
負荷(規模)
図 6.5-30 JBoss/WebLogic クラスタ比較 全 AP サーバ平均 CPU 使用率
図 6.5-30 のグラフから分かる事は、以下の通り。
¾
JBoss は負荷 D までは CPU 使用率が上昇しているが、その後負荷 G までほぼ横
ばいになっている。CPU 使用率が上昇しなくなった負荷 D 以降で、処理性能、応
答時間(Purchase、Manage、Browse)も悪化している。
¾
WebLogic は、AP サーバ台数 1 台∼3 台の場合は負荷 E で CPU 使用率が大幅に
上昇し、AP サーバ4台の場合は、負荷が F のときに大幅に上昇し、その後は緩や
かに上昇している。しかし WebLogic は CPU 使用率が大幅に上昇した後でも処理
性能、応答時間は劣化していない。
¾
WebLogic は CPU 使用率が大幅に上昇したところで、JBoss の AP サーバ台数 2
台∼4 台の場合の CPU 使用率よりも高くなっている。
¾
CPU 使用率が逆転するのは、JBoss が負荷 D 以降、CPU 以外のボトルネック(考
察 6.5.5.3 参照)により、
処理が頭打ちになっているものと推測されるためである。
次に、AP サーバごとの CPU 使用率の比較を図 6.5-31∼図 6.5-33 に示す。図 6.5-31-AP
サーバ 2 台、図 6.5-32-AP サーバ 3 台、図 6.5-33-AP サーバ 4 台の結果を示している。横
軸が負荷(規模)、縦軸が CPU 使用率の平均値である。
− 6-122 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
AP1
AP2
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
B
C
JBoss
D
E
F
G
WebLogic
負荷(規模)
図 6.5-31 JBoss/WebLogic クラスタ AP サーバ 2 台 平均 CPU 使用率比較
AP1
AP2
AP3
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
B
C
JBoss
D
E
F
G
WebLogic
負荷(規模)
図 6.5-32 JBoss/WebLogic クラスタ AP サーバ 3 台 平均 CPU 使用率比較
AP1
AP2
AP3
AP4
平均CPU使用率(%)
100
90
80
70
60
50
40
30
20
10
0
A
B
C
D
E
F
G
A
JBoss
B
C
D
E
F
G
WebLogic
負荷(規模)
図 6.5-33 JBoss/WebLogic クラスタ AP サーバ 4 台 平均 CPU 使用率比較
− 6-123 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
図 6.5-31∼図 6.5-33 のグラフから分かる事は、以下の通り。
¾
WebLogic よりも、JBoss の方が AP サーバ間の CPU 使用率のバラつきが大きい。
6.5.5 JBoss クラスタ構成についての考察
6.5.5.1 Mfg, Manage の処理が遅い原因について
JBoss サーバが単体の場合、Mfg, Manage の応答時間が極端に悪化している(図 6.5-2, 図
6.4-4)。本評価においては原因を追究することはできなかったが、以下の 2 つが推測される。
z
CPU 使用率を比較すると、AP サーバの CPU 使用率が高くなったときに応答時間が
悪くなる傾向が見られる。そのため Mfg, Manage は CPU 使用率による性能への影
響が大きい可能性がある。EJB へのアクセス形態や、HttpSession へのアクセスの
有無など SPECjAppServer2004 内部のより詳細な調査・分析が必要と言える。
z
EJB スタブのロードバランスの仕組みに非効率な部分があり、クラスタメンバが 1
台の場合に余計なオーバヘッドが生じ、 Mfg, Manage の処理に特に影響が出ている
と考えられる。JBoss の EJB スタブの仕組みについてのより詳細な調査・分析が必
要と言える。
6.5.5.2 JBoss の HttpSession レプリケーションの設定について
JBoss サーバが単体の場合でも、HttpSession レプリケーションのあり/なしの設定によ
り性能が大きく異なることが分かった。レプリケーションありの場合、CPU 使用率は負荷
C で 86%、負荷 D 以降ほぼ 100%と高い(図 6.5-6 JBoss クラスタレプリケーションあり/
なし比較) 。つまり、HttpSession レプリケーションありの設定時には、実際にはレプリケ
ーションを行う相手のサーバが居ないにも関わらず、「非常に重い処理」を実行していると
推測される。
6.5.5.3 JBoss クラスタについて
JBoss クラスタの評価結果としては、HttpSession レプリケーションなしの場合ではス
ケールアウトしたものの、HttpSession レプリケーションありの場合には、全くスケール
アウトしない結果となった。
JBoss クラスタの設定を行うことにより性能が劣化するのは上記の通りだが、ここでは
さらにスケールアウトしない理由について考察を行う。
スケールアウトしない理由については、クラスタ構成時に CPU が使い切れていないこと
から CPU 以外の何らかのボトルネックがあると推測される。JBoss クラスタの仕組み上、
以下の点がボトルネックになりうる。
z
HttpSession のレプリケーション単位が HttpSession 全体である点
JBoss では HttpSession のレプリケーションの単位として、HttpSession 全体と変
更があった Attribute のみの 2 種類を選択できる。しかし、JBoss4.0.0 では Attribute
のみレプリケーションさせる設定にはバグがあり(TIPS 集 B.3.4 参照)、動作させる
− 6-124 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ことができない。JBoss では HttpSession 全体をコピーしているため、HttpSession
全体のサイズや、内包される object の複雑さにより、シリアライズ/デシリアライズ
のコストやネットワークトラフィックがボトルネックになる可能性がある。
z
HttpSession のレプリケーション対象が JBoss クラスタ全体である点
JBoss は JBoss クラスタ内に存在する他の JBoss サーバ全てに HttpSession のレプ
リケーションを行う。そのため、JBoss クラスタ内の JBoss サーバの数が増えると、
レプリケーション先の個数が増え、その分時間がかかることになる。ネットワーク
のトラフィックも増大する。そのため、ネットワークがボトルネックになる可能性
がある。
z
HttpSession レプリケーションに同期ポイントが存在する可能性
JBoss の HttpSession レプリケーション時に synchronized 又は単一スレッドでしか
動作していない箇所が存在し、そのためにスケールアウトしない可能性がある。
今回の評価期間内では真の原因の特定までは行えなかったが、JBoss クラスタを改善する
ためには
z
そもそもの処理を軽くすること
z
スケールアウトできるための仕組みを実装すること
の 2 つの改善が必要となることが分かった。
6.5.5.4 CPU 使用率のバラつきについて
HttpSession レプリケーションありの場合は、AP サーバ間でかなりの CPU 使用率のバ
ラつきが在り、負荷分散を行っている mod_jk2 の振り分けアルゴリズム(TIPS 集 B.2.3 参
照)や接続処理に問題がありそうなことが分かった。HttpSession レプリケーションなしの
場合は、CPU 使用率のバラつきは少なかったが、HttpSession レプリケーションありの場
合よりも CPU 使用率が低かったため(図 6.5-6 JBoss クラスタレプリケーションあり/なし
比較参照)、バラつきが目立たなかったと考えられる。
6.5.6 WebLogic クラスタ構成についての考察
6.5.6.1 WebLogic 単体性能について
WebLogic 単体において、今回の測定範囲では WebLogic 単体で処理限界を迎えることが
なかった。そのため WebLogic の性能について評価するには、より高い負荷での測定が必要
となる。
6.5.6.2 WebLogic クラスタ構成について
WebLogic クラスタにおいて、HttpSession レプリケーションのあり/なしで処理性能、応
答時間、CPU 使用率ともに大きな差は生じなかった。
また、今回の測定範囲では既に単体で処理性能の理想値を満たしているためスケールア
ウトの効果を確認することはできなかった。しかしクラスタ構成時に CPU 使用率が下がっ
ていること、応答時間がほとんど劣化していないこと、HttpSession レプリケーションなし
− 6-125 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
の場合の処理性能、応答時間、CPU 使用率の結果と遜色ない事などから、HttpSession レ
プリケーションありにおいても、クラスタ構成でスケールアウトするであろうことは十分
に予測可能な結果となった。
6.5.6.3 WebLogic の CPU 使用率の高さについて
WebLogic ではある負荷量を境に、急激に CPU 使用率が上昇することが分かった。しか
し、CPU をほぼ使い切ったと思われる負荷量以降も、さらに高い負荷をかけると理想値に
沿って処理性能が伸びていった。このため、WebLogic の CPU 使用率が高いのには何か特
別な原因があると推測し、さらなる調査・測定を行った。
今回の測定では、WebLogic が使用する Java VM は JRockit1.4.2_04 を選択していた。
そこで JRockit についてさらなる調査を行ったところ、JRockit ではロック獲得待ちの実装
として Fat Spin を採用していることが分かった。
一般的に、スレッドの排他制御においてロック獲得待ちの方式には、スリープさせる方
法とスピンロックさせる方法の 2 つが存在する。
z
スリープさせる方法
¾
ロックが獲得できなかった場合スレッドを休止状態にし、ロックが解放された
際にスレッドを実行状態に戻す方法
¾
CPU リソースを無駄に消費しない
¾
ロックの取得/解放時にカーネルへのシステムコールを発行する等のオーバヘッ
ドがある
¾
z
ロックの競合が多い場合、ロック保持時間が長い場合に向いている
スピンロックさせる方法
¾
ロックが獲得できなかった場合、ロックが獲得できるまでループしながら待つ
方法
¾
CPU リソースを無駄に消費する
¾
ロックの取得/解放時のオーバヘッドが少ない
¾
ロックの競合が少ない場合、ロック保持期間が短い場合に向いている
Fat Spin はこの両者の利点を取り入れた方法で、ロックの獲得待ちはまずスピンロック
で行い、それが長引くとスリープさせる。
本評価では、ある負荷を閾値として、CPU 使用率が大きく増大した。これは負荷が増え
る事によってロックの競合が多くなったため、スピンロックを実行中のスレッドの数が多
くなったためと推測される。Fat Spin を無効にし、ロック獲得待ちを全てスリープさせる
方法を使用するオプション(-XXdisablefatspin)を付けて測定したところ、CPU 使用率が大
幅に下がった。AP サーバ 1 台で、Fat Spin あり/なしを比較した CPU 使用率のグラフを図
6.5-34、図 6.5-35 に示す。
− 6-126 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
平均CPU使用率(%)
Fat Spinあり
Fat Spinなし
#REF!
100
90
80
70
60
50
40
30
20
10
0
5.0
D
0.0
10.0
E
15.0
F
20.0
G
25.0
負荷(規模)
図 6.5-34 Fat Spin あり/なし平均 CPU 使用率
平均CPU使用率(%)
%user
%system
%iowait
100
90
80
70
60
50
40
30
20
10
0
D
E
F
G
D
Fat Spinあり
E
F
G
Fat Spinなし
負荷(規模)
図 6.5-35 Fat Spin あり/なし 平均 CPU 使用率詳細
Fat Spin なしの方では、
負荷 E では 51point、負荷 F では 48point、負荷 G では 36point、
Fat Spin ありに比較して CPU 使用率が低い。スループットについては変化がなかったので、
WebLogic の CPU 使用率の高さは Fat Spin によるものであると言える。
Fat Spin ありの場合、負荷 F において CPU はほぼ使い切っているように見えるが、そ
の後の負荷 G においてもスループットは伸びている。ロック待ちの方法がスピンロックか
らスリープに切り替わったことで、ロック待ち以外の処理に CPU を使えるようになったた
めと推測されるが、詳細については本評価では追求しきれなかった。
本評価のように急激に CPU 使用率が上がると、CPU 監視等で問題となるケースも出て
− 6-127 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
くる。また、CPU を使い切ったように見えた後にさらにスループットが伸びるという事象
は、性能見積もりがしづらい。よって本評価の範囲では、-XXdisablefatspin オプションを
付けた方が良いと言える。
しかし、本評価では WebLogic の測定において性能の限界値を確認する事ができなかった。
そのため Fat Spin の性能的な是非は、実際のロック状況の計測や、ロック方式を切り替え
る閾値などを、より高い負荷をかける事も考慮しつつ詳細に調査した上で、判断する必要
がある。また、JRockit も WebLogic 本体と共にバージョンアップしているため、今後のバ
ージョンアップによって傾向が変わる可能性にも注意する必要が有ある。
6.5.7 JBoss 単体/WebLogic 単体比較についての考察
6.5.7.1 単体性能比較
JBoss 単体と WebLogic 単体を比較した場合、性能に大きな差が存在した。今回の測定範
囲では WebLogic の処理限界を確認することはできなかった。しかし、 JBoss が性能限界
に達している負荷 E において WebLogic は 33%程度しか CPU を使用していない(図 6.5-34
Fat Spin なしで比較)。WebLogic は性能限界に達していないことも考慮に入れると JBoss
と WebLogic では単体で 3 倍程度の性能差が存在することが推測される。
また、今回は JBoss 側に条件を合わせ、WebLogic だけが持つチューニング機能は殆ど使
用していない。そのため WebLogic との性能差はさらに開きが増すと思われる。
6.5.8 JBoss クラスタ構成/WebLogic クラスタ構成比較についての考察
6.5.8.1 クラスタ構成性能比較
JBoss クラスタは HttpSession レプリケーションを使用することにより、単体よりも性
能が劣化する結果となった。一方 WebLogic はスケールアウトの処理限界は確認できなかっ
たものの、CPU 使用率等からスケールアウトすることを容易に想定できる結果となった。
WebLogic では単体での測定結果を元に、スケールアウトすることを想定した見積もりが
可能だが、JBoss については単体での性能を元にクラスタ時の性能を見積もることは不可能
である。
JBoss クラスタでは、HttpSession レプリケーションを使用しなければスケールアウトす
ることが確認できた。ただしこれはシステムの信頼性を犠牲にして性能を確保する手段で
あるため、採用には注意が必要である。
またクラスタ構成時の CPU 使用率においても、JBoss のように AP サーバ間に差が出る
ことは無く、理想的に振り分けられていることが分かった。
6.5.8.2 クラスタ構成の構築のしやすさについて
評価手順を確立することで分かった、クラスタ構成の構築のしやすさについても考察を
述べる。
− 6-128 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
JBoss では、HttpSession のレプリケーションを行うには、サーバ毎にライブラリの追加
や様々な設定ファイルの変更が必要となり、構築は煩雑であった。
一方 WebLogic の場合には、管理サーバによって設定の一元化が可能となっており、構築
は簡単であった。さらに GUI によりほとんど全ての設定が可能となっており、ヘルプも充
実しているため初心者にも扱いやすい。注意点としては、管理サーバを別途起動する必要
があるため、サーバリソースの調整が必要な事が挙げられる。
6.5.9 まとめ
6.5.9.1 評価手順の確立
本評価により、JBoss クラスタ、WebLogic クラスタ上での SPECjAppServer2004 アプリ
ケーションを稼動させる手順を確立することができた。本評価手順を元に性能評価を行う
事が可能である。
6.5.9.2 JBoss の適用領域
JBoss と WebLogic との性能差は、予想以上に大きなものであることが確認できた。それ
では、今回の評価結果から JBoss を採用するのは時期尚早であると結論付けてしまって良
いだろうか。ここでは JBoss の適用領域を考察する。
まず、求められる性能要件であるが、JBoss 単体の処理能力内に収まっている必要がある。
単体での性能は AP サーバの性能もさることながら、その上で動作するアプリケーションの
作りに大きく依存することが多い。そのため十分な負荷試験は必要であり、その負荷試験
において JBoss の処理能力を超えないことが確認できれば、採用にあたり問題は無い。
次に信頼性要件についてであるが、これは JBoss クラスタによって信頼性を向上させた
場合、性能が大きく犠牲になるため現実的ではない。JBoss クラスタの機能によって信頼性
を向上させるのではなく、必要なユーザデータについてはその度に DB に格納するなど、
アプリケーションの作りによってカバーする必要がある。
JBoss を採用するには以上のような要件や対策を持って望むべきである。よってまとめる
と、JBoss の適用領域とは、
z
大きな性能要件を求められていない
z
信頼性についてはアプリケーションの作りによってカバーできる
領域であるという事ができる。
6.5.9.3 今後の課題
今後リリースされる JBoss4.0.2 ではバグが修正され、Attribute のみレプリケーションさ
せる設定が可能となる見込みである。JBoss クラスタの性能が向上する可能性があるため、
適用領域についても再度評価を行い判断することが望まれる。
− 6-129 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Appendix A SPECjAppServer2004 ノウハウ
A.1 設定上の注意点
この節では、SPECjAppServer2004 を正常に動作させる上で注意しなければならない設
定項目や、注意点について述べる。
z
z
z
Driver 側の設定
¾
Driver のヒープメモリのサイズ設定について
¾
AP サーバが複数存在する場合の EJB のロードバランシングについて
SPECjAppSErver2004 アプリケーション又はアプリケーションサーバの設定
¾
SequenceEnt への row-locking 指定について
¾
SPECjAppServer2004 における XA 処理の必要性について
¾
LargeOrderEntLocal の NoSuchObjectLocalException 対応
SPECjAppServer2004 を動作させる上での注意点
¾
SPECjAppServer2004 の REPEATABLE_READ の解釈について
A.1.1 Driver のヒープメモリのサイズ設定について
SPECjAppServer2004 の Driver では、多数のスレッドを使用して AP サーバへアクセス
する。そのため、IR の値を大きくして測定するには Driver のヒープメモリのサイズを大き
くする必要がある。Driver はデフォルトではヒープメモリのサイズ設定がされていないた
め 、 Java VM の ヒ ー プ メ モ リ の デ フ ォ ル ト サ イ ズ で あ る 64MB を 越 え る と
OutOfMemoryError が発生してしまう。
実 際 に ス レ ッ ド を 生 成 し て い る java プ ロ セ ス は 、 Driver プ ロ グ ラ ム 中 か ら
Runtime#exec()で起動される。そのため Driver 起動用のスクリプト driver.sh 上の java コ
マンド実行の箇所で、ヒープメモリのサイズを増加させても意味が無い。
この Runtime#exec()で起動される java プロセスのヒープメモリのサイズをカスタマイ
ズするには、$SPECJ_HOME/config/default.env を元に作成する jboss.env ファイルにお
いて、変数 JAVA にヒープメモリのサイズを指定すれば良い。図 A.1-1 に設定例を示す。
JAVA="${JAVA_HOME}/bin/java -Xms128m -Xmx128m"
図 A.1-1 ヒープメモリのサイズの指定例
java プロセスは DealerAgent や MfgAgent など役割に応じて複数起動される。そのため
ヒープメモリのサイズは大きすぎないように注意すること。
A.1.2 AP サーバが複数存在する場合の EJB のロードバランシングについて
SPECjAppserver2004 では、AP サーバ上の EJB に対して、以下の 2 通りのアクセスが
ある。
− Appendix-1 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
z
Driver からの直接アクセス
z
Driver、Emulator からの HTTP リクエストを処理する Web アプリケーションから
の EJB アクセス
図 A.1-2 にこの 2 種類のアクセスについての図を示す。
AP サーバ
Web コン
Web サーバ
EJB
テナ
振り分け
振り分け
Web アプリ
Emurator
ケーションか
らのアクセス
が必要
は不要
直接アク
セス
Driver
AP サーバ
振り分け
Web コン
EJB
テナ
が必要
振り分け
Driver
は不要
図 A.1-2 EJB へのアクセス
これらのアクセスについて、AP サーバが複数台存在する場合、EJB の振り分けを考慮す
る必要がある。以下にそれぞれのアクセス毎の考慮点について説明する。
A.1.2.1 Driver からの直接アクセスに対する振り分け
SPECjAppSErver2004 の「Run and Reporting Rules 2.8 Driver Rules」では、Driver
から EJB を lookup する際に、ロードバランスさせるための「list of URLs」を指定してよ
いと記述されている。しかし実際の Driver プログラム上では、この「list of URLs」を処
理する場所が見当たらない。jndi.properties でひとつの JNDI サーバを指定することにな
るため、EJB をロードバランスさせても EJB の lookup は 1 サーバに集中することになる。
JBoss では複数 URL を jndi.properties に記述することができるが、それは AP サーバの
High Availability のためであって、EJB を lookup する際にロードバランスはされない。
SPECjAppserver2004 で EJB のロードバランスを実現するには、AP サーバの機能を用
いて EJB のスタブ上でクラスタ内の AP サーバに対してロードバランスする必要がある。
この場合、SPECjAppServer2004 の Driver プログラムでは、EJB の lookup が計測の最初
に行われるが、EJB スタブが Driver プログラムにキャッシュされる。そのため EJB スタ
ブが AP サーバに対してロードバランスされていれば良い。
A.1.2.2 Web アプリケーションからのアクセスに対する振り分け
Web アプリケーションからの EJB アクセスについては、Web アプリケーションへのアク
セスにおいて、既に振り分けが行われているそのため、同一 Java VM 上に存在する EJB
に優先的にアクセスした方が、Object のシリアライズ/デシリアライズの回避、ネットワー
クを介したアクセスの回避が可能となるため、パフォーマンス上有利な事が多い。
Driver から直接アクセスする EJB は LargeOrderSes と WorkOrderSes だが、これらは
Web アプリケーションからも呼ばれている(他に
MfgAuditSes
− Appendix-2 −
などの EJB もあるが、
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
これらは Web アプリケーションからは呼ばれない)。Driver からのアクセスをロードバラ
ンスするためにこれらの EJB をクラスタ化した場合、Web アプリケーションからアクセス
する際にもロードバランスされる。その結果、別 AP サーバ上の EJB をリモートで呼び出
すことになり、パフォーマンス上マイナスになってしまう。
しかし、SPECjAppServer2004 の Driver を使用した負荷試験においては、Driver が発
生する HTTP のリクエストでは、この Web アプリケーションから LargeOrderSes と
WorkOrderSes へのアクセスは発生しない。そのため負荷試験では上記 2 つの EJB のクラ
スタ化によってパフォーマンスが犠牲になることはない。
A.1.3 SequenceEnt への row-locking 指定について
SPECjAppserver2004 の 一 部 の EntityBean で は 、 以 下 の 2 つ の SessionBean 、
EntityBean を使用してユニークな ID を得ている。
z
org.spec.jappserver.util.sequenceses.ejb.SequenceSes
z
org.spec.jappserver.util.sequenceent.ejb.SequenceEnt
図 A.1-3 にユニークな ID を得るための仕組みを示す。
②EntityBean から
SequenceSesEJB
値をコピー
Sequenceblock A
nextKey()
こっちに割り振られ
11~20
①DB から値を取
Sequenceblock B
SequenceEnt
…~…
11~20
り出す
たら 11~20 を取得
id nextnum blocksize
③DB を更新
⑥DB を更新
こっちに割り振られ
たら 21~30 を取得
SequenceSesEJB
A
11
10
B
…
…
Sequenceblock A
nextKey()
21~30
SequenceEnt
④DB から値を取
21~30
り出す
Sequenceblock B
…~…
⑤EntityBean から
値をコピー
図 A.1-3 ユニークな ID の取得
ここで SequenceEnt にロックがかかっていないと、複数の SequenceSes が同じ領域を
さす block を保持することとなり、ID が重複する可能性がある。図 A.1-3 では①∼③の間
ロックをかけておかないと、④で取得する値が①と同じものになってしまう。
本検証では、SequenceEnt に対し row-locking(select for update)を指定し、ID の重
複が起こらないことを確認した。なお、原理的には Optimistic locking でも可だが、今回の
検証では動作確認を行っていない。
− Appendix-3 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
なお、これらの対処を行わない場合、SPECjAppServer2004 の測定中、DB の INDEX
に対して duplicate key エラーが発生した。DB が PostgreSQL の場合、図 A.1-4 のような
Exception が throw される。
org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint
"m_wo_idx"
図 A.1-4 PostgreSQL の場合の Exception
A.1.4 SPECjAppServer2004 における XA 処理の必要性について
SPECjAppServer2004 ではマニュアルに明記されていないが、データソースと JMS の 2
フェーズコミットが必要となるコードが存在する。
1.
WorkOrderSes#scheduleWorkOrder(String, int, Data)
(ア) WorkOrderEnt を create (DB へのインサート)
(イ) WorkOrder.process();の中で JMS にメッセージ送信
2.
OrderSesEJB#newOrder(Integer, ShoppingCart, boolean, boolean)
(ア) OrderEnt を create (DB へのインサート)
(イ) doLargeOrders()の中で JMS にメッセージ送信
このため両リソース(データソース、JMS 接続)が XA 対応している必要があるが、
PostgreSQL は XA に対応していない。SPECjAppServer2004 で PostgreSQL を使用する
には、AP サーバの機能によって XA をエミュレートする回避策を用いる必要がある。
以下では JBoss、WebLogic それぞれが持つ回避策に付いて説明する。
A.1.4.1 JBoss
JBoss4.0 では「Last Resource Gambit」という方式が採用され、非 XA リソースがひと
つだけなら 2 フェーズコミットに参加させることができる。
具体的には、非 XA リソースは prepare フェーズでは常に OK を返し、commit フェーズ
では 1 番最初に commit を評価することで、
「A が commit したのに B が rollback」という
状況を避け、実質的に 2 フェーズコミットを機能させている。詳細については以下を参照
のこと。
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=45704
A.1.4.2 WebLogic
「非 XA ドライバ用に 2 フェーズ コミットをエミュレート」のチェックをつけること
で 2 フェーズコミットをエミュレートしている。詳細については以下を参照のこと。
http://edocs.beasys.co.jp/e-docs/wls/docs81/ConsoleHelp/jdbc_datasources.html
− Appendix-4 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
A.1.5 LargeOrderEntLocal の NoSuchObjectLocalException 対応
高 負 荷 時 に 、 LargeOrderSesEJB#findLargeOrders() に お い て 図 A.1-5 の よ う な
Exception が発生する。
2004-12-27 21:51:07,030 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackLocalException in method:
public abstract org.spec.jappserver.mfg.helper.LargeOrderInfo
org.spec.jappserver.mfg.largeorderent.ejb.LargeOrderEntLocal.getLargeOrderInfo(), causedBy:
javax.ejb.NoSuchObjectLocalException: Entity not found: primaryKey=20128
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:182)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:514)
at org.jboss.ejb.Container.invoke(Container.java:854)
at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:413)
at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:44)
at $Proxy157.getLargeOrderInfo(Unknown Source)
at org.spec.jappserver.mfg.largeorderses.ejb.LargeOrderSesEJB.findLargeOrders(LargeOrderSesEJB.java:111)
at sun.reflect.GeneratedMethodAccessor216.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113)
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:854)
at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
− Appendix-5 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:242)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:775)
at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:382)
at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:534)
図 A.1-5 LargeOrderEntLocal の NoSuchObjectLocalException
この例外は、
「find した LargeOrderEntLocal が、アクセス時には別トランザクションに
より既に remove されていた」という現象が起こったときに発生する。
SPECjAppServer2004 では、LargeOrderEntLocal は同時アクセスの頻度が少ないこと
を仮定して row-locking していない。そのため findLargeOrders メソッド内で、上記の現
象が起こったときには、NoSuchObjectLocalException を catch した上でそれを破棄し、処
理をエラーにさせることなく継続する、というロジックで書かれている。しかし、JBoss
では NoSuchObjectLocalException ではなく NoSuchObjectLocalException をネストした
TransactionRolledbackLocalException が throw される。そのため、処理は継続されず、
エラーは EJBException としてクライアントである Driver まで伝達してしまう。
対処法としては「LargeOrderEnt を row-locking する」「トランザクション境界を変更
する」「CMP の先読み設定を変更する」がある。以下ではそれぞれの方法について説明す
る。
z
LargeOrderEnt を row-locking する
同時アクセスを排除すれば上記の例外は、NoSuchObjectLocalException も含めて
発生しなくなる。ただしこの方法は row-locking を行う事で並列性が失われ、性能劣
化が起こる可能性がある。
z
トランザクション境界を変更する
findLargeOrders メソッドで TransactionRolledbackLocalException が throw さ
れる理由は、メソッド内で呼ばれている getLargeOrderInfo メソッドが呼び出し元
と同一のトランザクションを引き継いでいるためである。そのため、
getLargeOrderInfo 内で投げられた NoSuchObjectLocalException がトランザクシ
− Appendix-6 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ョ ン 全 体 を
rollback
す る よ う マ ー ク さ れ て し ま い 、
TransactionRolledbackLocalException となる。
LargeOrderEnt の メ ソ ッ ド getLargeOrderInfo の ト ラ ン ザ ク シ ョ ン 属 性 を
RequiresNew にすることによって、getLargeOrderInfo は別の新しいトランザクシ
ョンとして実行され、投げられる例外は TransactionRolledbackLocalException で
はなく、NoSuchObjectLocalException になる。この場合変更すべき部分は、mfg.xml
において LargeOrderEnt の getLargeOrderInfo メソッドの宣言トランザクション部
分である。
<container-transaction>
<method>
<ejb-name>LargeOrderEnt</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>LargeOrderEnt</ejb-name>
<method-name>getLargeOrderInfo</method-name>
</method>
<trans-attribute>RequiresNew</trans-attribute>
</container-transaction>
図 A.1-6 mfg.xml の変更点
z
CMP の先読み設定を変更する
JBoss の Entity Bean のデフォルトの動作では、finder メソッド実行時に、プラ
イマリキーの値のみ読み込み、Bean のフィールドについては実際にアクセスが行わ
れるまで読み込みを先延ばしするようになっている。これを finder 実行時にフィー
ルドを全て読み込んでしまうように変更することで、finder 実行時に Bean の内容を
確定することができる。そうすれば外部のトランザクションが Entity Bean を
remove し て も 、 自 分 が 保 持 し て い る Bean を そ の ま ま 使 え る の で
NoSuchObjectLocalException は throw されない。
設定方法は JBoss の配備記述子の read-ahead 要素をデフォルトの on-load から
on-find に変更すれば良い。
<entity>
<ejb-name>LargeOrderEnt</ejb-name>
<read-ahead>
<strategy>on-find</strategy>
<page-size>255</page-size>
− Appendix-7 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
<eager-load-group>*</eager-load-group>
</read-ahead>
<table-name>M_largeorder</table-name>
<cmp-field>
<field-name>id</field-name>
<column-name>lo_id</column-name>
</cmp-field>
図 A.1-7 JBoss 配備記述子の read-ahead 要素
今回の検証では、比較対象の WebLogic が「CMP の先読み設定を変更する」の on-find
と同じ動作となっており例外が発生していなかった事から、JBoss も on-find と設定して測
定を行った。
A.1.6 SPECjAppServer2004 の REPEATABLE_READ の解釈について
SPECjAppServer2004「Run and Reporting Rules」の「Appendix A」において、
Non-repeatable read は「トランザクション T1 が 1 行 read する。T1 がコミットする前に、
トランザクション T2 がその行を変更/削除する。両方のトランザクションがコミットに成
功する」と定義されている。
この定義は一般に言われる Non-repeatable read の定義(「トランザクション T1 が 1 行
read する。トランザクション T2 がその行を変更し、コミットする。T1 が再度その行を read
したときに変更された値に出会ってしまう。」
)とは違い、
「ロストアップデート」のことを
言っているように見える。
「ロストアップデート」とは、同時に 2 つの更新トランザクショ
ンが起こったときに、先にコミットした方の更新が失われてしまうことである。この現象
は AP サーバが複数台存在する環境では、排他ロックをつかう EntityBean でない限り発生
しうる。これを回避する方法としては、”select for update”を発行して参照時に行ロックを
かける方法(JBoss では<row-locking>を指定)と、Optimistic Locking を使用する方法が
ある。
本検証では、SPECjAppServer2004 の定義に従い、row-locking を指定してロストアッ
プデートを回避する設定を行い、測定を行った。
A.2 測定上の注意点
ここでは SPECjAppServer2004 を測定する際の結果についての注意点を述べる。
z
SPECjAppServer2004 のレポートの FAILED について
z
SPECjAppServer2004 測定時の「Error vehicle already sold」について
z
SPECjAppServer2004 測定結果の Response Time の 90%Tile が 10 秒になる事象に
ついて
z
SPECjAppServer2004 測定結果の Dealer.detail の情報が欠落する事象について
− Appendix-8 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
A.2.1 SPCjAppServer2004 のレポートの FAILED について
SPECjAppServer2004 の測定結果において、FAILED が現れる事がある。ここではそれ
らの原因のうち、理由が分かりづらいものについて述べる。
z
時刻のずれによるトランザクション数 FAILED
Audit.report の「Orders Transaction validation」「Work Order Transaction
validation」にて FAILED が発生する問題である。
ここでは、クライアント側で処理したと思っているトランザクション数と、DB に
永続化された Order/WorkOrder のレコード数が一致することをチェックしている。
レポート生成時に org.spec.jappserver.driver.Auditor#validateReport()でクライ
アントマシンのタイムスタンプを
org.spec.jappserver.orders.orderauditses.ejb.OrderAuditSes
に
渡
し
、
OrderAuditSes#getOrderCount()内ではそのタイムスタンプで SELECT している。
そのため、クライアントマシンと AP サーバの時刻がずれていると、AP サーバのタ
イムスタンプで create しているレコードと不整合が生じ、FAILED が発生すること
になる。
テストマシン間で時刻を正確に合わせることによって、PASS させることができる。
z
測定時間によるトランザクション比率の FAILED
Dealer.summary の TRANSACTION MIX にて FAILED が発生する問題である。
ここでは、クライアントの種別毎に処理したトランザクション量を計算し、それ
らの割合が指定された割合になっているかどうかをチェックしている。
計測時間が短いとこれらの割合が満たせなくなり、FAILED が発生することにな
る。
測定時間を長く取ることでリクエストのばらつきが少なくなり、PASS させること
ができる。
A.2.2 SPECjAppServer2004 測定時の「Error vehicle already sold」について
SPECjAppServer2004 測定終了後、dealer.err に「Error vehicle already sold」という
エラーが記録されることがある。このエラーは顧客が自分の在庫の車を売ろうとしたら、
既に売られていたというものである。在庫は顧客に属しているため、
「同じユーザ ID でア
クセスし同時に売る」ことが無い限り発生し得ない。
これは SPECjAppServer2004 の仕様では、発生しうる事象として扱われている。
SPECjAppServer2004 の Dealer プログラムでは、負荷を発生させるスレッド DealerEntry
が doPurchase()、doManage()、doBrowse()の各メソッドでユーザ ID をランダムに決定し
ている。そのため、「同じユーザ ID でアクセスし同時に売る」現象は起こりうる。またこ
のエラーが出たアクセスもスループットにカウントされるようになっている。
このエラーが頻発するようであればスループットに影響してくると思われるが、本検証
においては数回の測定につき 1 回発生する程度であったため、計測値は有効と判断した。
− Appendix-9 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
A.2.3 SPECjAppServer2004 測定結果の Response Time の 90%Tile が 10 秒に
なる事象について
SPECjAPpServer2004 の結果出力において、図 A.2-1 に示すように Dealer.summary
ファイルの RESPONSE TIMES の 90%TH の値が全て 10 秒になってしまうことがある。
RESPONSE TIMES AVG.
MAX.
90TH%
REQD. 90TH%
Purchase
77.543
303.916
10.000
2
Manage
57.303
426.077
10.000
2
Browse
104.017
249.620
10.000
2
Requirement for 90% Response Time FAILED
Requirement for Avg. Response Time FAILED
図 A.2-1 Dealer.summary の結果
これは SPECjAppServer2004 のレポート出力機能の仕様である。90%Tile の計算におい
て、0.1 秒∼10.0 秒までの配列を用いて計算している。そのため、10 秒以上のアクセスは
全て 10.0 秒としてカウントされてしまう。
実際の 90%Tile の値が 10 秒以上だとしても、Dealer.summary では 10 秒として表示さ
れてしまうため、注意が必要である。このような状況であるため、本検証では応答時間の
グラフ等については全て平均応答時間で記述した。
A.2.4 SPECjAppServer2004 測定結果の Dealer.detail の情報が欠落する事象に
ついて
SPECjAppServer2004 の出力結果において、Dealer.detail ファイルではサーバが処理し
たトランザクション数について、時系列に沿って集計している。この Dealer.detail におい
て、負荷試験が行われているにも関わらず、全くトランザクション数が出力されないこと
がある。
これは結果をファイルに出力している箇所において、出力の終了条件が「集計されたト
ランザクション数が 0 の期間があったとき」という実装になっているためである。トラン
ザクション数が 0 になるのは測定が終了した場合以外にも、サーバが過負荷で応答が帰っ
てこなかった場合に起こりうる。
この事象を回避するには SPECjAppServer2004 のソースコードを修正するしかない。
SPECjAppServer2004 のソースコードは購入した CD-ROM の中に含まれているため、以
下に修正の方針を示す。
z
org.spec.jappserver.driver.DealerReport, org.spec.jappServer.driver.MfgReport
¾
genReport メソッド
—
RunInfo 型の引数を追加
—
内部で呼んでいる printDetail メソッドに引数で渡された RunInfo 型のオブ
ジェクトを渡す
¾
printDetail メソッド
− Appendix-10 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
z
—
RunInfo 型のオブジェクトから、試験時間を計算する
—
for 文の終了条件を「試験時間が終わるまで」に修正する
org.spec.jappserver.driver.SPECjAppServer
¾
generateReport メソッド
—
DealerReport 型オブジェクトの genReport メソッドに runInfo オブジェク
トを引数として渡す
—
MfgReport 型オブジェクトの genReport メソッドに runInfo オブジェクト
を引数として渡す
− Appendix-11 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Appendix B JBoss ノウハウ
B.1 設定上の注意点
この節では、JBoss4.0.0 のバグ情報や、測定中に注意しなくてはならない設定項目につい
て述べる。
z
z
JBoss4.0.0 バグ情報
¾
PreparedStatementCache について
¾
JvmRouteFilter のバグについて
設定項目
¾
レプリケーションのタイムアウト設定
¾
UDP のエラー対応
B.1.1 PreparedStatementCache について
PreparedStatementCache を使用すると、DB の SQL 処理のうち事前処理部分(パースや
実行計画作成等)を毎回実行しなくても済む為、SQL 処理が高速化され、DB の負荷も軽減
される。
しかし、JBoss4.0.0 では PreparedStatementCache が使えない。これは JBoss4.0.0 の
既知のバグである。詳細は以下を参照のこと。
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=1051812&group_id=2
2866
こ の バ グ は JBoss4.0.1 で 修 正 さ れ る 見 込 み で あ る 。 今 回 の 検 証 で は
PreparedStatementCache による性能向上効果は測定していない。
B.1.2 JBoss4.0.0 における JvmRouteFilter のバグについて
Apache と JBoss の連携を行う mod_jk2 では、Cookie を用いて sticky セッションを行う。
sticky セッション振り分けを行うには、
jbossweb-tomcat50.sar/META-INF/jboss-service.xml で図 B.1-1 に示す設定を追加する。
<attribute name="UseJK">true</attribute>
図 B.1-1 UseJK の設定
このとき JvmRouteFilter クラスのバグにより、アプリケーションがデプロイに失敗する。
対応としては org.jboss.web.tomcat.tc5.JvmRouteFilter の init()メソッドを図 B.1-2 か
ら図 B.1-3 のように修正し、リビルドして、jbossweb-tomcat50.sar/tomcat50-service.jar
を置き換える必要がある。
− Appendix-12 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
manager_ = (AbstractJBossManager)
filterConfig.getServletContext().getAttribute(AbstractJBossManager.class.getName());
図 B.1-2 JvmFilter#init()修正前
manager_ = (AbstractJBossManager)
filterConfig.getServletContext().getAttribute(JBossManager.class.getName());
図 B.1-3 JvmFilter#init()修正後
なおこれは既知のバグであり、JBoss4.0.1 では修正するとアナウンスされている。詳細
については以下を参照のこと。
[ 1037726 ] JvmRouteFilter crashes in init() method for clustered webapp
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=1037726&group_id=2
2866
B.1.3 レプリケーションのタイムアウトの設定
SPECjAppServer2004 を JBoss クラスタで測定中、図 B.1-4 のような ERROR が発生
した。
2005-01-18
18:21:24,431
ERROR
[org.jboss.web.localhost.Engine]
StandardWrapperValve[default]:
Servlet.service() for servlet default threw exception
java.lang.RuntimeException: JBossCacheManager.processSessionRepl(): failed to replicate session.
at
org.jboss.web.tomcat.tc5.session.JBossCacheManager.processSessionRepl(JBossCacheManager.java:378)
at org.jboss.web.tomcat.tc5.session.JBossCacheManager.storeSession(JBossCacheManager.java:213)
at org.jboss.web.tomcat.tc5.session.JBossCacheManager.add(JBossCacheManager.java:245)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:354)
at org.jboss.web.tomcat.tc5.session.JBossCacheManager.createSession(JBossCacheManager.java:171)
at org.apache.coyote.tomcat5.CoyoteRequest.doGetSession(CoyoteRequest.java:2274)
at org.apache.coyote.tomcat5.CoyoteRequest.getSession(CoyoteRequest.java:2116)
at org.apache.coyote.tomcat5.CoyoteRequestFacade.getSession(CoyoteRequestFacade.java:526)
at org.apache.coyote.tomcat5.CoyoteRequestFacade.getSession(CoyoteRequestFacade.java:531)
at org.jboss.web.tomcat.tc5.JvmRouteFilter.doFilter(JvmRouteFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
− Appendix-13 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:44)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:169)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:80)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused
by:
org.jboss.tm.JBossRollbackException:
Unable
to
commit,
tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=dl360g3ap1/287121, BranchQual=, localId=287121]
status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.util.NestedRuntimeException: ; nested throwable: (org.jboss.cache.lock.TimeoutException: rsp=sender=dl360g3ap2:32812, retval=null,
received=false, suspected=false))
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:344)
at org.jboss.tm.TxManager.commit(TxManager.java:200)
at
org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:
126)
at
org.jboss.web.tomcat.tc5.session.JBossCacheManager.processSessionRepl(JBossCacheManager.java:364)
− Appendix-14 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
... 44 more
Caused
by:
org.jboss.util.NestedRuntimeException:
(org.jboss.cache.lock.TimeoutException:
;
-
rsp=sender=dl360g3ap2:32812,
nested
retval=null,
throwable:
received=false,
suspected=false)
at
org.jboss.cache.interceptors.ReplicationInterceptor$SynchronizationHandler.beforeCompletion(Replication
Interceptor.java:225)
at
org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationH
andler.java:71)
at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1383)
at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1075)
at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:296)
... 47 more
Caused
by:
org.jboss.cache.lock.TimeoutException:
rsp=sender=dl360g3ap2:32812,
retval=null,
received=false, suspected=false
at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:2139)
at org.jboss.cache.TreeCache.callRemoteMethods(TreeCache.java:2161)
at org.jboss.cache.interceptors.ReplicationInterceptor.runPreparePhase(ReplicationInterceptor.java:302)
at
org.jboss.cache.interceptors.ReplicationInterceptor$SynchronizationHandler.beforeCompletion(Replication
Interceptor.java:208)
... 51 more
図 B.1-4 HttpSession レプリケーションのエラー
これは、HttpSession レプリケーションのタイムアウトによるものである。タイムアウト値
については、deploy/tc5-cluster-service.xml に図 B.1-5 のように追加することで設定でき
る。
<attribute name="SyncReplTimeout">60000</attribute>
図 B.1-5 HttpSession レプリケーションのタイムアウト値の設定
SyncReplTimeout のデフォルト値は 30000(ms)である。パラメータの詳細については、
以下の URL を参照のこと。
http://doc.jboss.org/jbcache/TreeCache.html
B.1.4 HttpSession レプリケーションのマルチキャストポートの指定
JBoss の HttpSession レプリケーション設定を有効にして JBoss を起動すると、図 B.1-6
− Appendix-15 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
のようなワーニングが発生する。
2005-01-11 21:38:39,684 WARN
[org.jgroups.protocols.UDP] discarded message
from different group (Tomcat-Cluster). Sender was dl360g3ap1:33694
2005-01-11 21:38:39,685 WARN
[org.jgroups.protocols.UDP] discarded message
from different group (Tomcat-Cluster). Sender was dl360g3ap2:33546
図 B.1-6 HttpSession レプリケーションのワーニング
このワーニングは、JGroups のマルチキャストポートが衝突しているために発生する。
JBoss のクラスタ設定(deploy/cluster-service.xml)と HttpSession レプリケーション設定
(deploy/tc5-cluster-service.xml)で別々に JGroups の設定を行っているが、デフォルトだと
マルチキャストポートがバッティングしている。deploy/tc5-cluster-service.xml の UDP
要素を図 B.1-7 のように、mcast_port を 45566 から変更することで発生しなくなる。
<UDP mcast_addr="230.1.2.3" mcast_port="55566"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false"/>
図 B.1-7 HttpSession レプリケーションのマルチキャスト設定
またこの設定は全てのクラスタノードで同じ値にする必要がある。本検証では、上記の
とおりに値を変更して測定を実施した。
B.2 チューニングノウハウ
この節では、本検証で得られた JBoss のチューニングに関する項目について述べる。
z
ear-deployer.xml
¾
Isolated と CallByValue の設定について
z
JBoss の不要サービス停止
z
Apache mod_jk2
¾
Apache MPM を worker にする
B.2.1 Isolated と CallByValue の設定について
JBoss4.0.0 の all セットと default セットでは deploy/ear-deployer.xml の Isolated と
CallByValue の内容が異なる。表 B-1 に違いを示す。
− Appendix-16 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
表 B-1 deploy/ear-deployer.xml の内容の違いについて
設定
Isolated
all
内容
default
各 ear のクラスローダが独自のスコープを false(共通)
true(独立)
持ち、他の ear から独立する
CallByValue
ear 内部での呼び出し参照渡しで最適化し false(参照渡 true(値渡し)
ない(=値渡し)
し)
備考
従
来
の
JBoss と 同
じ
CallByValue は特にパフォーマンスへの影響が大きいため、注意が必要である。本検証で
は、図 B.2-1 に示す通りの設定とした。
<attribute name="Isolated">true</attribute>
<attribute name="CallByValue">false</attribute>
図 B.2-1 deploy/ear-deployer.xml の設定
B.2.2 JBoss の不要サービス停止
JBoss では 3.2 系よりマイクロカーネルアーキテクチャを採用している。そのため、JBoss
で必要なサービスについては、$JBOSS_HOME/server/設定セット名/deploy ディレクトリ
内に必要なファイルを配置/除去するだけで、簡単にサービスを追加・停止することができ
る。
本検証においては、JBoss の不要なサービスを停止させ、不要なスレッドの起動や不要な
メモリの使用を省くことにした。
表 B-2 に今回使用したサービスの一覧を、表 B-3 に今回除去したサービスの一覧を示す。
表 B-2 必要サービス一覧
ファイル or ディレクトリ
deploy.last/
提供されるサービス
ファーミングによるデプロイ
備考
試験では使用していない
単体環境では不要
jms/
JMS プロバイダ
jbossweb-tomcat50.sar/
Web コンテナ
cluster-service.xml
クラスタ全般
ear-deployer.xml
EAR のデプロイ
ejb-deployer.xml
EJB のデプロイ
hsqldb-ds.xml
HSQLDB のデータソース
jboss-jdbc-metadata.sar
JDBC で利用されるライブラリ
− Appendix-17 −
単体環境では不要
試験では使用していない
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
jboss-local-jdbc.rar
JDBC で利用されるライブラリ
jboss-xa-jdbc.rar
JDBC で利用されるライブラリ
jbossjca-service.xml
JCA、RAR のデプロイ
jmx-invoker-service.xml
JMX 呼び出し、JRMP プロキシ生成
postgres-ds.xml
データソース
sqlexception-service.xml
SQLException の処理
tc5-cluster-service.xml
TreeCache による HttpSession レプリケーシ
単体環境では不要
ョン
表 B-3 不要サービス一覧
ファイル or ディレクトリ
提供されるサービス
備考
bsh-deployer.xml
.bsh スクリプトをデプロイ可能
cache-invalidation-service.
cache invalidation(クラスタ内のキャッシュ
cache invalidation を使わ
xml
無効化)
な
い
な
ら
不
要
( cluster-service.xml の
jboss.cache:service=Inval
idationBridge,type=Java
Groups も要削除)
client-deployer-service.xml
application-client.xml による client jar のデプ
ロイ
deploy-hasingleton-service
シングルトンサービスのデプロイ
.xml
ebxmlrr-service.sar
ebXml 用 Web アプリ
hibernate-deployer-service
Hibernate 用アーカイブ HAR のデプロイ
.xml
http-invoker.sar
HTTP 経由の EJB/JMX 呼び出し
iiop-service.xml
IIOP、CORBA
jboss-aop.deployer
アスペクトのデプロイ
jboss-ws4ee.sar
Web サービス
jboss-xa-jdbc.rar
JDBC で利用されるライブラリ
今回は JDBC で XA はしな
い
jbossha-httpsession.sar
CMP による HTTP セッションレプリケーショ
JBossCacheManager
ン
使うので不要
jmx-console.war
JMX 管理コンソール
mail-service.xml
メール
management/*
管理コンソール
monitoring-service.xml
監視
properties-service.xml
プロパティエディタ
− Appendix-18 −
を
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
remoting-service.xml
ネットワーク関連
schedule-manager-service.
スケジューラ
全てコメントアウトされ
xml
ている
scheduler-service.xml
スケジューラ
全てコメントアウトされ
ている
snmp-adaptor.sar
SNMP
uuid-key-generator.sar
EJB のプライマリキー生成
B.2.3 Apache MPM を worker にする
JBoss クラスタの測定において、Apache MPM の設定を prefork にした場合と、worker
にした場合とで各 AP サーバの平均 CPU 使用率の傾向に変化が見られた。図 B.2-2 に
平均CPU使用率[%]
Apache MPM の設定と AP サーバの平均 CPU 使用率を示す。
100
90
80
70
60
50
40
30
20
10
0
AP1
AP2
AP3
prefork
AP4
AP1
AP2
MPM設定とAPサーバ
AP3
AP4
worker
図 B.2-2 MPM 設定と AP サーバ平均 CPU 使用率
Apache MPM の設定が prefork の場合、AP サーバ 1 の CPU 使用率が常に高く、AP サ
ーバ 2、AP サーバ 3、AP サーバ 4 という順で低くなる傾向が常に見られた。一方 Apache
MPM の設定を worker にした場合、平均 CPU 使用率にばらつきは見られるものの、特定
の AP サーバのみが常に高くなるという傾向は無くなった。
mod_jk2 ではラウンドロビンで各 AP サーバに振り分けを行うが、そのラウンドロビン
は各 Apache のプロセス毎に管理される。そのため、prefork の設定では最初の接続が常に
AP サーバ 1 に集中するため、このような偏りを生じている。これは mod_jk2 の設定ファ
イルで AP サーバ 1∼4 の並び順を逆順に変更すると、AP サーバ 4 が一番 CPU 使用率が高
くなることなどからも確認された。
本検証では依然平均 CPU 使用率のばらつきが見られるものの、より均等に負荷が振り分
けられていると思われる worker にて測定を実施した。
− Appendix-19 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
B.3 HttpSession レプリケーションについて
この節では、JBoss4.0.0 の HttpSession レプリケーションについて、本検証で得られたノ
ウハウやバグ情報について述べる。
z
z
HttpSession レプリケーションのノウハウ
¾
HttpSession レプリケーションのフェイルオーバの仕組み
¾
HttpSession レプリケーションのバージョンについて
¾
HttpSession レプリケーションのレプリケーション範囲について
バグ情報
JBossCache ATTRIBUTE 不具合
¾
B.3.1 HttpSession レプリケーションのフェイルオーバの仕組み
JBoss は Web コンテナとして内部に Tomcat を内包している。
JBoss 独自の拡張機能は、
Tomcat の持ついくつかのインタフェースを実装することで、提供されている。JBoss4.0.0
の HttpSession レプリケーション機能も、Tomcat の持つ HttpSession を扱うインタフェ
ースである Manager を実装するクラスである、JBossCacheManager クラスによって提供
される。
JBosscacheManager が実現する JBossCache の動作を図 B.3-1 に示す。
JBoss
JBoss
JBoss
②ローカルに
無ければ検索
JBoss
分散キャッ
分散キャッ
分散キャッ
シュ
シュ
シュ
シュ
ローカルキ
ローカルキ
ャッシュ
ャッシュ
ローカルキ
③コピー
ャッシュ
Servlet
②コピー
Servlet
Servlet
①最初に
分散キャッ
Servlet
検索
①最初に
④以降はロー
③ローカルに
検索
カルのみ検索
コピー
クライアント
クライアント
正常時
フェイルオーバ時
図 B.3-1 JBossCache の動作
JBossCacheManager は自ノード内に持つローカルキャッシュとレプリケーション用の
分散キャッシュ(TreeCache により実現)を持つ。JBossCacheManager はリクエスト処
理中に HttpSession を求められた際、まずローカルキャッシュを検索する。HttpSession
がローカルキャッシュに存在しなかった場合のみ TreeCache から検索し、HttpSession を
ローカルキャッシュにコピーする。そして以降はローカルキャッシュを使う。毎回
TreeCache から検索しないのは、分散キャッシュからローカルキャッシュに移す際にデシ
リアライズが発生しコストがかかるためと推測される。
− Appendix-20 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
sticky セッションの場合、当該セッションのローカルキャッシュは 1 ノードしか持たな
い状態になるため、ローカルキャッシュが無い=フェイルオーバと判断される。また
mod_jk2 によるロードバランス+sticky セッションを行っていた場合にはセッション ID に
jvmRoute(server.xml にノード固有の値を設定する)の値が付加されているため、
JvmRouteFilter クラスにより異なる jvmRoute を発見した際にフェイルオーバが認識され、
セッション ID の jvmRoute を置換する。
ちなみに、フェイルオーバ後はリクエストを振り分けられた各ノードに当該セッション
のローカルキャッシュが存在し、セッション情報が個々に独立して処理されてしまう。そ
のため JBoss の HttpSession レプリケーション環境では、sticky セッションが必須となる。
B.3.2 HttpSession レプリケーションのバージョンについて
JBoss4.0.0 がリリースされた前後で、JBoss の HttpSession レプリケーションのバージ
ョンが大幅に変更されている。この項では JBoss の HttpSession レプリケーションのバー
ジョンについて整理する。
z
JBoss3.2.5 以前
ClusteredHttpSessionEB という EntityBean を使用して HttpSession レプリケー
ションを実現している。ちなみに、JBoss3.2.4、JBoss3.2.5 では UseLocalCache オ
プションが追加されており、false に設定することにより非 sticky セッションでもセ
ッション情報が維持できる。true の場合、フェイルオーバ時以外はローカルキャッ
シュを参照するため、アクセスするノードが変わると結果的にセッションが継続さ
れない(JBoss3.2.3 以前はこの状態)
。false の場合、毎回レプリケートされたセッ
ション情報を参照する。
z
JBoss3.2.6 以降
HttpSession レプリケーションの仕組みがリファクタリングされ JBossCache を
使うようになった。JBoss3.2.4 で追加された UseLocalCache オプションは無効とな
っている。
z
JBoss4.0.0
http://www.jboss.org/developers/projects/jboss/tc5-clustering.html
に
は
JBossCache によるアーキテクチャは JBoss4.0 ではなく JBoss4.1 に porting される、
と書かれているが、実際は既に JBossCache を使うことが JBoss4.0 のデフォルトと
なっている。つまり 4.0 は 3.2.6 と同等である。
B.3.3 HttpSession レプリケーションのレプリケーション範囲について
JBoss では HttpSession レプリケーションのレプリケーション範囲が、JBoss クラスタ全
体となる。そのため JBoss クラスタ内のノード数が増えると、レプリケーションに時間が
かかる、ネットワークのトラフィックが大きく増大する、といった事象が発生する。本項
では JBoss の設定によりレプリケーション範囲を変更することができないか、確認した結
果を説明する。
z
ClusterName による方法
例えば 4 台構成のクラスタの場合、TreeCache の ClusterName を分けることによ
− Appendix-21 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
って 2:2 のグループを作ることが出来る。これは deploy/ tc5-cluster-service.xml
により設定することが可能である。
ただしこれは単に2組のクラスタを作るに過ぎないので、商用アプリケーション
サーバ等が持つ機能と同等の動きとはいえない。また、mod_jk2 は 1URL から振り
分け先をグループ化できない(例えばノード A,B,C,D があった場合、A のフェイル
オーバ時には必ず B を使う、といったような設定)ので、SPECjAppServer2004 で
はこの方法は取れない。
z
その他の方法
JBoss4.0.0 時点では TreeCache はパーティション全体にレプリケーションを行う
ため不可能。WebLogic と同様にサブグループを作るアイデアが Roadmap にあがっ
ている。
(http://docs.jboss.org/roadmap/JBossProjectDevSchedule.html の 764 参照)
よって現時点では有効な設定は存在せず、HttpSession レプリケーションのレプリケーシ
ョン範囲は、JBoss クラスタ全体となる。
B.3.4 JBossCache ATTRIBUTE 不具合
JBoss4.0.0 で は HttpSession レ プ リ ケ ー シ ョ ン の replication-granularity を
ATTRIBUTE に設定した場合、正常に動作しない。
これらは JBossCache(TreeCache)に依存するバグであり、JBossForlum や jira において
バグを報告した。その結果 JBossCache1.2.1 がインテグレートされる JBoss4.0.2 において
修正される見込みである。以下に発生するエラーの概要について述べる。
1.
高負荷時に JBossCache(TreeCache)で二重コミットが発生する問題
エラーメッセージは図 B.3-2 のとおり。
ERROR
[org.jboss.cache.TreeCache]
commit():
entry
for
transaction
<192.168.1.164:33253>:8427 not found
図 B.3-2 二重コミットのエラー
詳細については以下の JBossFolum 又は開発者から依頼を受けて行った jira のバ
グ報告を参照のこと。
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=57353
http://jira.jboss.com/jira/browse/JBWEB-7
2.
不正なメソッド呼び出しの問題
JBossCache1.2 を組み込んだ JBoss4.0.1 が 2004/12/23 にリリースされたが、こ
のバージョンではさらに図 B.3-3 のエラーメッセージが出力される。
ERROR
[org.jgroups.blocks.RpcDispatcher]
− Appendix-22 −
failed
invoking
method
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
java.lang.UnsupportedOperationException: commit() should not be called on
TreeCache directly
図 B.3-3 不正なメソッド呼び出しのエラー
なおこのエラーメッセージについて開発者からは実害は無いとのコメントを得た。
3.
トランザクションが PREPARE フェーズで既にアクティブな問題
エラーメッセージは図 B.3-4 のとおり。
2004-12-13 15:33:00,813 ERROR (TP-Processor7)[org.jboss.web.tomcat.tc5.session.JBossCacheManager]
processSessionRepl: failed with exception: org.jboss.tm.JBossRollbackException: Unable to commit,
tx=TransactionImpl:XidImpl[FormatId=257,
GlobalId=smtld005/17,
BranchQual=,
localId=17]
status=STATUS_NO_TRANSACTION; - nested throwable: (org.jboss.util.NestedRuntimeException: ; nested throwable: (javax.transaction.NotSupportedException: Transaction already active, cannot nest
transactions.))
図 B.3-4 トランザクションが既にアクティブなエラー
詳細については以下の jira を参照のこと。
http://jira.jboss.com/jira/browse/JBCACHE-32
なお、最新の CVS から JBossCache のソースコードを取得し、同期部分に若干の修正を
入れてみたところ、ATTRIBUTE 設定が動作するようになった。参考までに JBoss クラス
タ 2 台にて短時間で測定した結果を図 B.3-5∼図 B.3-10 に示す。
SESSION AP2台
ATTRIBUTE AP2台
理想値
40
35
処理性能
30
25
20
15
10
5
0
0
A
B
C
D
5
E
10
F
15
G20
負荷(規模)
図 B.3-5 JBoss クラスタ 処理性能比較
図 B.3-5 のグラフから、設定を ATTRIBUTE にすることにより、処理性能が大きく改善
され、負荷 F までは理想値上をリニアに伸びていく事が分かる。
− Appendix-23 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
SESSION 2台 Mfg
基準値 Mfg
Mfg
ATTRIBUTE 2台 Mfg
応答時間(秒)
6
5
4
3
2
1
0
0
A
B
5
C
10
D
E
15
F
20
G
負荷(規模)
図 B.3-6 JBoss クラスタ 平均応答時間比較(Mfg)
SESSION 2台 Purchase
基準値 Purchase
ATTRIBUTE 2台 Purchase
応答時間(秒)
80
60
40
20
0
0
A
B
5
C
10
D
E
15
F
20
G
負荷(規模)
応答時間(秒)
図 B.3-7 JBoss クラスタ 平均応答時間比較(Purchase)
SESSION 2台 Manage
基準値 Manage
40
35
30
25
20
15
10
5
0
0
A
B
C
5
D
ATTRIBUTE 2台 Manage
10
E
15
F
20
G
負荷(規模)
図 B.3-8 JBoss クラスタ 平均応答時間比較(Manage)
− Appendix-24 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
SESSION 2台 Browse
基準値 Browse
ATTRIBUTE 2台Browse
応答時間(秒)
100
80
60
40
20
0
0
A
B
C
5
10
D
E
15
F
20
G
負荷(規模)
図 B.3-9 JBoss クラスタ 平均応答時間比較(Browse)
図 B.3-6∼図 B.3-9 のグラフから、設定を ATTRIBUTE にすると応答時間が大きく改善
している事が分かる。負荷 F までは急激な応答時間の劣化が起こっていない。しかし、
Purchase と Browse においては 90%Tile 応答時間の基準値を超えてしまった。
CPU使用率(%)
SESSION AP2台
100
90
80
70
60
50
40
30
20
10
0
0
A
B
C
D5
ATTRIBUTE AP2台
E
10
F
15
20G
負荷(規模)
図 B.3-10 JBoss クラスタ CPU 使用率比較
図 B.3-10 のグラフから、設定を ATTRIBUTE にすると、負荷 D,E では CPU 使用率が
改善している事が分かる。また、負荷 F 以上では CPU を使いきれるようになる事が分かる。
JBossCache に若干手を入れる必要があった事から未だ品質面で問題があると考え、本評
価においては ATTRIBUTE の設定を使用した本測定は行わなかった。しかし簡易な測定の
範囲では、正式版のリリースに期待を持たせる結果となった。
− Appendix-25 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
B.4 Entity Bean について
この節では、JBoss4.0.0 の Entity Bean について、本検証で得られた以下のノウハウにつ
いて述べる。
z
JBoss4.0.0 の機能
¾
z
Entity Bean の分散ロック、分散キャッシュについて
JBoss4.0.0 の機能と SPECjAppServer2004 向けの設定
¾
EntityBean の CMP 設定について
B.4.1 EntityBean の分散ロック、分散キャッシュについて
AP サーバ内部では Entity Bean の排他制御が上手く行われていたとしても、AP サーバ
が複数台存在する環境では、AP サーバ間で Entity Bean が上手く排他制御されるようにし
ないと、不整合が発生することになる。この AP サーバ間の Entity Bean の排他制御のこ
とを、ここでは「Entity Bean の分散ロック」と呼ぶ。
JBoss4.0.0 で組み込まれている JBossCache では、クラスタ間にキャッシュをレプリケ
ーとするサービスを提供している。これを分散キャッシュという。レプリケーション方法
には以下の 3 種類の方法が選択可能である。
z
ローカル:レプリケーションを行わない
z
非同期レプリケーション : レプリケーションはバックグラウンドで実行する
z
同期レプリケーション : レプリケーションが全クラスタに終了するまで(更新を
行った)メソッド呼び出しをブロックする。
また各 AP サーバで起動するレプリケーションの処理を、トランザクションを用いて管理
し、クラスタ内で一貫した状態に保つことが可能である。トランザクションの隔離レベル
は SERIALIZABLE, REPEATABLE, READ_COMMITTED, READ_UNCOMMITTED,
NONE を選択することができる。
この JBossCache を使用すれば Entity Bean の分散ロックは可能と思われる。しかし、
JBoss4.0 現在 JBoss Cache は Entity Bean に統合されていないため、この方式を使用する
ことはできない。
そのため本検証では、CMP Entity Bean を使う場合において CMP エンジンの設定を変
えることで、全ての SELECT 文に"FOR UPDATE"を暗黙的に追加するという JBoss 従来
の方法を用いて測定を行った。
設定方法としては、jboxxcmp-jdbc.xml に<row-locking>要素を使用することで Select 時
に”SELECT...FOR UPDATE”が実行される。
B.4.2 EntityBean の CMP 設定について
JBoss では EntityBean の CMP(Container Managed Persistence)設定において、性能や
データの一貫性に基づいて、様々な設定を選択することができる。以下では JBoss4.0.0 で
有効なこれらの設定について説明する。
− Appendix-26 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
B.4.2.1 コミットオプションの種類
コミットオプションとは、CMP EntityBean のインスタンスが DB と同期をとる方法
についてのオプションで EJB 仕様で規定されている。JBoss では以下の 4 つから選択す
ることができる。
z
オプション A
データベースに接続しているユーザは CMP EntityBean だけであると仮定し、
トランザクションをまたがって EntityBean の現在値をキャッシュする。データ
ベースの内容は他から変更されないはずなのでロードするのは最初の1回であり、
かなりのパフォーマンスを向上させることができる。
デメリットとしては、CMP EntityBean の外部ではデータを更新することがで
きない。別のプログラムや直接 JDBC を使ってデータを更新するとデータに一貫
性のない結果になる。
z
オプション B(デフォルト)
CMP EntityBean はデータベースのユーザが複数であると仮定する。トランザ
クションをまたがってエンティティに関するコンテキスト情報を保持するが、デ
ータベースの内容は他の誰かが変更しているかもしれないので、データベースと
直接同期をとるためにトランザクションの開始時に毎回データをロードする。し
たがって、キャッシュによるパフォーマンス向上の効果は見込めない。
z
オプション C
CMP EntityBean はトランザクションの終わりに全てのエンティティのコンテ
キスト情報を破棄する。Bean インスタンスはストア後に破棄され、毎回インスタ
ンスの割り付けとデータベースからのロードを実行する。
z
オプション D
JBoss 固有のオプション。このオプションはコミットオプション A と同様にキ
ャッシュを使用するが、そのキャッシュされたデータは定期的に定められた時間
を過ぎると破棄される。
B.4.2.2 JBossCMP の設定の種類
JBoss4.0.0 では、上記のコミットオプションに加え、Entity Bean のロックや共有の有
無により以下の設定が使用できる。
z
Standard CMP 2.x EntityBean
トランザクション間で EntityBean インスタンスを共有する。そのため一つの
EntityBean に同時に複数のトランザクションが関与しないよう、排他ロックを行
う。コミットオプション B であり、データベースから毎回データを取得する。非
クラスタ環境のデフォルト。
z
Clustered CMP 2.x EntityBean
トランザクション間で EntityBean インスタンスを共有する。そのため一つの
EntityBean に同時に複数のトランザクションが関与しないよう、排他ロックを行
う。コミットオプション B であり、データベースから毎回データを取得する。ク
ラスタ設定時のデフォルトであり、
「Standard CMP 2.x EntityBean」がクラスタ
− Appendix-27 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
対応されているだけで他は変わらない。
z
Standard CMP 2.x EntityBean with cache invalidation
トランザクション間で EntityBean インスタンスを共有する。そのため一つの
EntityBean に同時に複数のトランザクションが関与しないよう、排他ロックを行
う。コミットオプション A であり、トランザクションにまたがってキャッシュを
行う。1 つの JBoss サーバにおいて EntityBean の値に更新が走った時点でク、ラ
スタ全体のキャッシュを無効化する。読み取りの比率が多い EntityBean では高い
性能が期待できる。
z
Instance Per Transaction CMP 2.x EntityBean
トランザクション毎に EntityBean インスタンスを生成する。データベース上で同
じレコードであったとしても、JBoss 上に複数の EntityBean インスタンスが存在
することになり、並列性が最も高い。トランザクション毎にインスタンスを持つの
で、ロックは存在しない。コミットオプション C である。また、WebLogic のデフ
ォルトと同じ設定となる。
z
cmp2.x jdbc2 pm
トランザクション毎に EntityBean インスタンスを生成する。データベース上で
同じレコードであったとしても、JBoss 上に複数の EntityBean インスタンスが存
在することになり、並列性が最も高い。コミットオプション C である。トランザ
クション毎にインスタンスを持つので、ロックは存在しない。
SPECjAppServer2002 での測定で高パフォーマンスを上げるために追加された
設定であり、
「Instance Per Transaction CMP 2.x EntityBean」をベースとして、
トランザクションにまたがったキャッシュも持つ。このキャッシュにより
EntityBean の値のロードは効率的になるが、更新時にキャッシュレベルでのロッ
クが必要となる。結果的に「Standard CMP 2.x EntityBean」と「Instance Per
Transaction CMP 2.x EntityBean」の中間のようなパフォーマンス傾向を持つと
考えられる。
なお、このオプションは SPECjAppServer2002、2004 で規定されている「DB
は外部アプリケーションから更新できなくてはならない」に違反している。
以上の JBoss CMP 設定内容を整理したものを、表 B-4 に示す。
表 B-4 JBoss CMP の設定
設定名
ロック
コミットオ
Bean インスタンス
プション
Standard
CMP
2.x
EntityBean あり
B
(Clustered CMP 2.x EntityBean)
Standard CMP 2.x EntityBean with あり
トランザクション間
で共有
A
cache invalidation
トランザクション間
で共有
Instance Per Transaction CMP 2.x なし
C
− Appendix-28 −
トランザクション毎
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
EntityBean
に生成
cmp2.x jdbc2 pm
なし
C
トランザクション毎
に生成
ロック、トランザクションと Bean インスタンスの関係は、以下の 2 つの組み合わせに絞
られる。
① 排他ロック:トランザクション間で EntityBean インスタンスを共有
Bean インスタンスを使いまわすことで生成/廃棄のオーバヘッドを削減できるが、ロ
ングトランザクションが起こった場合、最初にロックを取得したスレッドが長時間
他のロック待ちスレッドをブロックする、という問題がある。
② ロック無し:トランザクション毎に EntityBean インスタンスを生成/廃棄する
各トランザクションが Bean インスタンスを保持するため、ロック待ちの問題は起こ
らないが、生成/廃棄のオーバヘッドがある。
B.4.2.3 SPECjAppSErver2004 で適用可能な設定
ここで、SPECjAppServer2004 のルールと性能の両面から、本検証で使用した CMP 設
定について述べる。
まず、SPECjAppServer2004 では「DB は外部アプリケーションから更新できなければ
ならない」ため、コミットオプション A はルールに反している。そのため「Standard CMP
2.x EntityBean with cache invalidation」は基本的に使用しない。また、同様にキャッシ
ュを保持する「cmp2.x jdbc2 pm」も使用しない。
「Standard CMP 2.x EntityBean」(「Clustered CMP 2.x EntityBean」)は排他ロック
をかけることにより、トランザクション待ちが発生しやすくパフォーマンス面ではあまり
期待出来ない。一方「Instance Per Transaction CMP 2.x EntityBean」と比較して Bean
生成/廃棄のオーバヘッドが無い。
本検証では、
「Instance Per Transaction CMP 2.x EntityBean」を基本として測定し、
「Standard CMP 2.x EntityBean」(「Clustered CMP 2.x EntityBean」)を追加検証とし
てパフォーマンスが改善するかどうかを調べる。
SPECjAppServer2004 「Run and Reporting Rules」の 2.10.2.2 EJBEntities によると、
各 EntityBean に求められるトランザクション分離レベルを表 B-5 に示す。
表 B-5 SPECjAPpServer2004 で各 EntityBean に要求されるトランザクション分離レベル
Entity Bean
ドメイン
Customer Domain
Manufacturing Domain
分離レベル
ItemEnt
READ_COMMITTED
OrderLineEnt, OrderEnt
REPEATABLE_READ
PartEnt,
BomEnt,
ComponentEnt,
AssemblyEnt,
READ_COMMITTED
LargeOrderEnt
WorkOrderEnt, InventoryEnt
− Appendix-29 −
REPEATABLE_READ
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Supplier Domain
SupplierCompEnt,
Corp Domain
SupplierEnt
READ_COMMITTED
SComponentEnt, POEnt, POLineEnt
REPEATABLE_READ
CustomerEnt, CustomerInventoryEnt
REPEATABLE_READ
ここで REPEATABLE_READ を一般的な理解で解釈するならば、トランザクション内
で値がキャッシュされるため、EntityBean を使う限り REPEATABLE_READ は保証され
る。しかし A.1.6 項で解説したとおり、REPEATABLE_READ を要求される EntityBean
には row-locking を指定する。また、A.1.3 項で解説した通り、SequenceEnt にも row-locking
が必要となる。これを踏まえ、本検証で採用した JBossCMP の設定を表 B-6 に示す。
表 B-6 各 EntityBean の JBoss CMP 設定
JBoss CMP 設定
EntityBean
「 Standard
ItemEnt
invalidation
CMP
」
の
2.x
EntityBean
<commit-option>
with
を
cache
D
、
<optioned-refresh-rate>を 1200 に変更して用いる
PartEnt, ComponentEnt, AssemblyEnt,
A) す べ て 「 Instance Per Transaction CMP 2.x
BomEnt,
EntityBean」
LargeOrderEnt,
SupplierCompEnt,
B) トランザクションの長い EntityBean は「Instance Per
SupplierEnt
Transaction CMP 2.x EntityBean」、短い EntityBean は
「Standard CMP 2.x EntityBean」
(「Clustered CMP 2.x
EntityBean」)
C) すべて「Standard CMP 2.x EntityBean」
(「Clustered
CMP 2.x EntityBean」)
OrderLineEnt, OrderEnt, WorkOrderEnt,
上記の設定に加えて、row-locking 有り
InventoryEnt, SComponentEnt, POEnt,
POLineEnt, CustomerEnt,
CustomerInventoryEnt, SequenceEnt
B.4.2.4 設定時の注意点
クラスタ環境で「 Clustered CMP 2.x EntityBean」以外の設定を選択した場合 は
<invoker-proxy-binding-name>の値を clustered-entity-rmi-invoker に変える必要がある。
また、standardjboss.xml ファイルを直接編集するのではなく、各設定を拡張して EJB
毎の jboss.xml に記述する
− Appendix-30 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
B.5 測定上の注意点
B.5.1 高負荷測定開始時の ClassCircularityError について
JBoss で高負荷の測定をする際、計測開始時(RampUp 中)に図 B.5-1 のようなエラー
が発生する事がある。
2005-01-07 20:20:25,147 ERROR [org.jboss.ejb.plugins.LogInterceptor]
TransactionRolledbackLocalException in method: public abstract
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderEntLocal
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderEntHomeLocal.create(java.lang.String,int,java.
sql.Date) throws javax.ejb.CreateException, causedBy:
javax.ejb.EJBException: Unexpected Error
java.lang.ClassCircularityError: org/jboss/ejb/plugins/lock/NonReentrantLock
at org.jboss.ejb.EntityEnterpriseContext.<init>(EntityEnterpriseContext.java:71)
at org.jboss.ejb.plugins.EntityInstancePool.create(EntityInstancePool.java:52)
at org.jboss.ejb.plugins.AbstractInstancePool.get(AbstractInstancePool.java:146)
at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:96)
at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:61)
at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:28)
at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:41)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:109)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:129)
at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:106)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:120)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.jav
a:93)
at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:508)
at org.jboss.ejb.Container.invoke(Container.java:876)
at
org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLocalProxyFactory.java:342)
at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:118)
at $Proxy94.create(Unknown Source)
at
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.scheduleWorkOrder(WorkOrderSesEJ
B.java:91)
…
図 B.5-1 ClassCircularityError
− Appendix-31 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
この ClassCircularityError は Sun JDK のバグで、高負荷で同じクラスがロードされる
と発生する。詳細については以下を参照のこと。
http://bugs.sun.com/bugdatabase/view_bug.do;:WuuT?bug_id=4699981
JBoss では発生しにくいよう手を打っているが、根本的な解決はしていない。詳細につい
ては以下を参照のこと。
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=58403
起動後いきなり高負荷にならないようにするくらいしか回避方法はないが、使用される
クラスがいったんロードされるともう起こらない。そのため、SPECjAppServer2004 では
SteadyState 期間中に発生する可能性はないと考えられ、測定に影響は無いと判断した。
B.5.2 高負荷時の InstanceAlreadyExistException について
JBoss4.0.0 で高負荷の試験時、図 B.5-2 のような Exception が発生する。
Error
registering
jboss.web:name=JkRequest17,type=RequestProcessor,worker=jk-192.168.1.164-8009
javax.management.InstanceAlreadyExistsException:
jboss.web:name=JkRequest17,type=RequestProcessor,worker=jk-192.168.1.164-8009 already registered.
図 B.5-2 InstanceAlreadyExistException
これは org.apache.jk.common.HandlerRequest#decodeRequest()内部の同期化の問題で
あり、Tomcat5.5 では修正されている。
この MBean は管理コンソール内の StatusServlet でのみ利用されているため、MBean
登録に失敗したとしても、当該エラーによるアプリケーションへの影響はない。
B.5.3 HttpSession レプリケーション時の ConcurrentModificationException に
ついて
HttpSession レプリケーション有効時に、高負荷をかけると図 B.5-3 のようなエラーが
発生する。
2004-11-10 18:25:31,662 ERROR
[org.jboss.cache.interceptors.OrderedSynchronizationHandler] failed calling
afterCompletion() on
org.jboss.cache.interceptors.TransactionInterceptor$SynchronizationHandler@1b0590b
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:448)
図 B.5-3 ConcurrentModificationException
− Appendix-32 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
これは JBossCache のログ出力で起こっているため、org.jboss.cache パッケージのログ
レベルを INFO にすれば発生しない。ただし、バグとしてはログ出力にとどまらない問題
と認識されているため、今後修正される見込みである。詳細については、以下を参照のこ
と。
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=53757
B.5.4 JBoss で 60 秒おきに発生する FullGC について
JBoss4.0.0 では、60 秒ごとに Full GC が発生する。-verbose:gc オプションを使用し GC
実行時にログを出力させることで明らかになる。
これは JBoss が使用している Sun の RMI 実装が 60 秒毎に FullGC を明示的に起こして
い る こ と が 原 因 で あ る 。 -XX:+DisableExplictGC オ プ シ ョ ン に よ り Runtime#gc() や
System#gc()メソッドの呼び出しを無効化すると、Full GC が発生しなくなる。
そのため GC チューニングを実施する際、60 秒毎に発生する Full GC については考慮に
入れないか、-XX:+DisableExplictGC オプションを使用してチューニングする必要がある。
− Appendix-33 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Appendix C WebLogic ノウハウ
C.1 設定上の注意点
C.1.1 実行スレッドキューの分割について
WebLogic8.1SP3 では、クライアントからのアクセスに応じて動作する Servlet や EJB
において、処理を行うスレッドを分割する事ができる。
デフォルトでは「weblogic.kernel.Default」という名前の実行スレッドキューにより処理
が行われるが、この実行スレッドキューは JMS からの応答を受け付ける処理も行っている。
そのためこの実行スレッドキューを Servlet や EJB へのアクセスによって使い切ってしま
うと、JMS から AP サーバへの応答を受け付けるスレッドが枯渇し、SPECjAppServer2004
の動作が停止してしまうことがある。
JMS が無応答になることで、実際には図 C.1-1 のような例外が発生する。
####<2005/02/02 19 時 43 分 50 秒 JST> <Error> <EJB> <dl360g3ap1> <cluster1> <ExecuteThread: '19' for queue:
'weblogic.kernel.Default'>
<<anonymous>>
<>
<BEA-010026>
< ト ラ ン ザ ク シ ョ ン
Name=[EJB
org.spec.jappserver.supplier.receiverses.ejb.ReceiverSesEJB.deliverPO(org.spec.jappserver.common.DeliveryInfo)
],Xid=BEA1-3A96ED80FE4093D22190(174659861),Status=Unknown,numRepliesOwedMe=0,numRepliesOwedO
thers=0,seconds
since
begin=61,seconds
left=60,XAServerResourceInfo[JMS_SPECStore]=(ServerResourceInfo[JMS_SPECStore]=(state=new,assigned=n
one),xar=null,re-Registered
=
false),XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wr
apper.JTSXAResourceImpl]=(state=prepared,assigned=cluster1),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl
@a691dfb,re-Registered
=
false),SCInfo[specdomain+cluster1]=(state=prepared),SCInfo[specdomain+jmsserver]=(state=pre-prepared),prop
erties=({weblogic.transaction.name=[EJB
org.spec.jappserver.supplier.receiverses.ejb.ReceiverSesEJB.deliverPO(org.spec.jappserver.common.DeliveryInfo)
],
weblogic.jdbc=t3://192.168.61.164:9001}),local
properties=({modifiedListeners=[]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(Coordi
natorURL=cluster1+192.168.61.164:9001+specdomain+t3+,
XAResources={},NonXAResources={})],CoordinatorURL=jmsserver+192.168.61.163:9001+specdomain+t3+) の コ
ミット中に例外が発生しました。: javax.transaction.SystemException: Timeout during commit processing
at
weblogic.rjvm.BasicOutboundRequest.sendReceive()Lweblogic.rmi.spi.InboundResponse;(BasicOutboundRequest
.java:108)
at
weblogic.rmi.internal.BasicRemoteRef.invoke(Ljava.rmi.Remote;Lweblogic.rmi.extensions.server.RuntimeMetho
dDescriptor;[Ljava.lang.Object;Ljava.lang.reflect.Method;)Ljava.lang.Object;(BasicRemoteRef.java:137)
− Appendix-34 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
at
weblogic.transaction.internal.CoordinatorImpl_813_WLStub.commit(Lweblogic.transaction.internal.Propagation
Context;)V(Unknown Source)
:
>
図 C.1-1 JMS が無応答になった際のエラー
この問題を解決するには、SPECjAppServer2004 で動作する全ての Servlet、EJB を別
の実行スレッドキューに分ける必要がある。
WebLogic の管理コンソールから実行スレッドキューを作成し、SPECjAppServer2004
に 含 め る WebLogic 固 有 の 配 置 記 述 子 に そ の キ ュ ー の 名 前 を wl-dispatch-policy 、
dispatch-policy 要素に記述すれば良い。
詳細な設定方法については、WebLogic のマニュアルを参照のこと。
− Appendix-35 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Appendix D PostgreSQL ノウハウ
D.1 チューニングノウハウ
本検証では、SPECjAppServer2004 測定において DB サーバネックとはなっていない。
し か し 、 検 証 の 初 期 の 頃 は PostgreSQL が ボ ト ル ネ ッ ク と な っ て い た 。 本 節 で は
SPECjAppServer2004 を動作させる上で必要な、PostgreSQL のチューニングノウハウに
ついて説明する。
z
データ投入直後の reindex、analyze、vacuum full
z
index 付与によるチューニング
D.1.1 データ投入直後の reindex、analyze、vacuum full
SPECjAppServer2004 測定時、DB サーバの CPU 使用率%usr の値が低負荷においても
かなり高く、CPU ネックとなっていた。
PostgreSQL の SQL 実行時間を出力する機能を用いて解析したところ、ある特定の SQL
において非常に長い時間がかかっていることが分かった。ある特定の SQL とは図 D.1-1 の
ような物である。
SELECT ci_id, ci_value FROM c_customerinventory WHERE (ci_id=121311) OR (ci_id=121312) OR
(ci_id=121313) OR (ci_id=121314) OR (ci_id=121315) OR (ci_id=121316) OR (ci_id=168688) OR
(ci_id=168689) OR (ci_id=168690) OR (ci_id=168691) FOR UPDATE
図 D.1-1 長い時間がかかっている SQL
ここで ci_id カラムには index が付与されているにも関わらず、シーケンシャルスキャン
が走っていた。
psql コマンドを用いて、原因を追求したところ、WHERE 句内の条件の数が 9 つを越え
ると、シーケンシャルスキャンが走っていた。
reindex を実行したところ、この事象は改善され、index を使用するようになった。CPU
使用率も大幅に改善された。
そのため、本検証ではデータ投入直後、SPECjAppServer2004 の測定の前に reindex,
analyze, vacuum full コマンドを実行した後で測定を行うようにした。
D.1.2 index 付与によるチューニング
上記チューング実施後、ci_customerid をキーにして検索を行っている SQL のプランを
出力したところ c_customerinventory テーブルにシーケンシャルスキャンが走っていた。
EXPLAIN の結果を図 D.1-2 に示す。
− Appendix-36 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
ossf=# explain analyze SELECT ci_id FROM c_customerinventory WHERE (ci_customerid=47862);
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------Seq
Scan
on
c_customerinventory
(cost=0.00..25646.80
rows=7
width=4)
(actual
time=198.758..613.254 rows=5 loops=1)
Filter: (ci_customerid = 47862)
Total runtime: 613.313 ms
(3 rows)
図 D.1-2 チューニング前の EXPLAIN による結果
テーブル定義を確認したところ、図 D.1-3 に示す通り対象カラムにインデックスが張ら
れていなかった。
ossf=# \d c_customerinventory
Table "public.c_customerinventory"
Column
¦
Type
¦ Modifiers
---------------+---------------+----------ci_id
¦ integer
ci_itemid
¦ character(20) ¦
ci_quantity
¦ integer
¦
ci_customerid ¦ integer
¦
ci_value
¦ not null
¦ numeric(12,2) ¦
Indexes:
"c_ci_idx" unique, btree (ci_id)
図 D.1-3 c_customerinventory テーブルの構造
ci_customerid カラムの値は、ユニークではないので図 D.1-4 で示す SQL を実行し通常
のインデックスを作成したところ、プランが変更され、インデックススキャンされるよう
になった。EXPLAIN の結果を図 D.1-5 に示す。
CREATE INDEX C_ci_customerid_idx ON C_customerinventory (ci_customerid);
図 D.1-4 インデックスの作成
ossf=# explain analyze SELECT ci_id FROM c_customerinventory WHERE (ci_customerid=47862);
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------Index Scan using c_ci_customerid_idx on c_customerinventory
− Appendix-37 −
(cost=0.00..3.08 rows=7 width=4)
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
(actual time=0.021..0.029 rows=5 loops=1)
Index Cond: (ci_customerid = 47862)
Total runtime: 0.065 ms
(3 rows)
図 D.1-5 index 作成後の EXPLAIN による結果
トータルのスループットも大幅に向上したため、本検証ではインデックスを付与した状態
で測定を行った。
− Appendix-38 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004
Appendix E その他
E.1 測定上の注意点
E.1.1 sar のバージョンによる情報の欠落について
本検証で使用した Red Hat Enterprise Linux ES3 Update3 にデフォルトで含まれてい
る sysstat パッケージの sar を使用したところ、情報の欠落が発生した。1 秒置きにログを
バイナリ形式で取得する設定で実行したが、場合によっては 30 秒以上情報が欠落してしま
う状態であった。
Red Hat Enterprise Linux ES3 Update4 に含まれる sysstat-5.0.5-5.rhel3 パッケージで
は、この情報の欠落が回避されているとのことであった。これを導入したところ、ある程
度ログの欠落は回避された。しかし、サーバ CPU が高負荷時になると、やはり情報の欠落
が発生した。
情報の欠落は、sar の取得間隔が 1 秒間隔だと多く発生するため、取得間隔を 10 秒置き
に変更したところ、安定して情報が取得できるようになった。
本検証においては根本的な解決は望めなかったものの、とりあえず取得間隔を 10 秒(以
上)とすることで測定を実施した。
本書は、独立行政法人 情報処理推進機構から以下の8社への委託開発の成果として作成
されたものです。
委託先企業:(株)日立製作所(幹事会社)
(株)SRA、(株)NTT データ、新日鉄ソリューションズ(株)、
住商情報システム(株)、
(株)野村総合研究所、ミラクル・リナックス(株)、
ユニアデックス(株)
(五十音順)
− Appendix-39 −
Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004