サブシステム/プロファイル
サブシステム/プロファイル
JBossは機能をモジュール形式で追加できるような実装になっており、クラスタ機能やメッセージング機能などは拡張機能として本体に追加されています。これらの機能は「サブシステム」と呼ばれ、定義ファイルで利用のON/OFFを切り替えることができます。
JBossには、一般的な用途に応じてサブシステムの定義セットがあらかじめ4パターン用意されており、これらはプロファイルと呼ばれます(表1)。
表1:JBossの4つのプロファイル
| default | 一般的に利用されるシステム向け |
|---|---|
| ha | クラスタサーバに必要な機能の定義セット |
| full | defaultプロファイルにmessaging機能を追加した定義セット |
| full-ha | full + haの定義セット |
独自にプロファイルを定義することも可能ですが、特殊な要件がない場合は4つのうちから1つを選択して利用すれば問題ありません(表2)。
表2:プロファイルに含まれる機能
| サブシステム | プロファイル | |||
|---|---|---|---|---|
| default | ha | full | full-ha | |
| logging | ○ | ○ | ○ | ○ |
| weld | ○ | ○ | ○ | ○ |
| configadmin | ○ | ○ | ○ | ○ |
| security | ○ | ○ | ○ | ○ |
| ee | ○ | ○ | ○ | ○ |
| datasources | ○ | ○ | ○ | ○ |
| ejb3 | ○ | ○ | ○ | ○ |
| infinispan | ○ | ○ | ○ | ○ |
| jpa | ○ | ○ | ○ | ○ |
| ○ | ○ | ○ | ○ | |
| jgroups | ○ | ○ | ||
| modcluster | ○ | ○ | ||
| cmp | ○ | ○ | ||
| jacorb | ○ | ○ | ||
| jaxr | ○ | ○ | ||
| messaging | ○ | ○ | ||
利用方法
JBoss ASのパッケージは、公式サイトからダウンロードすることができます。パッケージを展開するとbinディレクトリに操作用スクリプトがありますので、まず管理ユーザの追加を行います。
# cd jboss-as-7.1.1.Final/bin/
# ./add-user.sh
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a
Enter the details of the new user to add.
Realm (ManagementRealm) : (空欄で構いません)
Username : admin
Password : password
Re-enter Password : password
The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes
About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'admin' to file '/opt/jboss-as-7.1.1.Final/standalone/configuration/mgmt-users.properties'
Added user 'admin' to file '/opt/jboss-as-7.1.1.Final/domain/configuration/mgmt-users.properties'
スタンドアロンモードを利用する場合は standalone/configuration/ ディレクトリにある設定ファイルを編集して bin/standalone.sh スクリプトから起動、ドメインモードを利用する場合は domain/configuration/ ディレクトリにある設定ファイルを編集して bin/domain.sh スクリプトから起動するようになります。
過去にJBossを利用されたことのある方であればご存知かと思いますが、以前は散在していた設定ファイルがJBoss AS 7.x/EAP 6.x からは管理モードごとに集約されており、管理が非常に楽になりました。この点もAPサーバとして人気がある一つのポイントではないかと思います。
JBossとTomcatの単体性能比較
アプリケーションサーバ単体でどれくらい性能が異なるのかを確認するために、JBoss EAPとJBoss AS、そしてオープンソースとしてメジャーなAPサーバであるApache Tomcatの3つで、性能を比較してみます。検証内容は、オーソドックスなスループットとレスポンスタイムの比較としました。
検証環境
JBoss EAPとJBoss ASの違いも見てみるために、JBoss EAPは検証実施時点の最新版である6.2、JBoss ASは6.x系のベースとなっている7.1の最新版を利用します。Tomcatについては、現在広く利用されているバージョン7系を利用します。
表3:APサーバのスペック
| APサーバ | OS | CPU | メモリ |
|---|---|---|---|
| Apache Tomcat 7.0.53 | CentOS 6.5(x64) | 1vCPU | 1GB |
| JBoss EAP 6.2.0 | CentOS 6.5(x64) | 1vCPU | 1GB |
| JBoss AS 7.1.1 | CentOS 6.5(x64) | 1vCPU | 1GB |
各APサーバへは同じサンプルアプリケーションをデプロイし、クライアント端末上で実行するApache JMeterからサンプルアプリケーションに対してアクセスすることで、負荷をかけます。APサーバ上で稼働するアプリケーションは、SpringフレームワークのデモアプリケーションJPetStore(ショッピングカートアプリ)をベースにしたベンチマークスイートであるJBentoStoreにカスタマイズを施したものを利用しています。
図4:検証環境
JBoss EAP、JBoss AS、Tomcatに共通の設定として、同時接続数の最大値を512に設定しました。またJVMパラメータとして以下のパラメータを追加しました。
-Xms512m
-Xmx512m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:NewRatio=2
-Xss1m
-XX:TargetSurvivorRatio=95
-XX:MaxTenuringThreshold=15
-XX:SurvivorRatio=8
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:+UseParNewGC
-XX:+UseAdaptiveGCBoundary
-XX:+UseBiasedLocking
-XX:+OptimizeStringConcat
- この記事のキーワード