PR

JBossの歴史と単体での性能比較

2014年12月8日(月)
小原 雄樹

サブシステム/プロファイル

JBossは機能をモジュール形式で追加できるような実装になっており、クラスタ機能やメッセージング機能などは拡張機能として本体に追加されています。これらの機能は「サブシステム」と呼ばれ、定義ファイルで利用のON/OFFを切り替えることができます。

JBossには、一般的な用途に応じてサブシステムの定義セットがあらかじめ4パターン用意されており、これらはプロファイルと呼ばれます(表1)。

表1:JBossの4つのプロファイル

default一般的に利用されるシステム向け
haクラスタサーバに必要な機能の定義セット
fulldefaultプロファイルにmessaging機能を追加した定義セット
full-hafull + haの定義セット

独自にプロファイルを定義することも可能ですが、特殊な要件がない場合は4つのうちから1つを選択して利用すれば問題ありません(表2)。

表2:プロファイルに含まれる機能

サブシステムプロファイル
defaulthafullfull-ha
logging
weld
configadmin
security
ee
datasources
ejb3
infinispan
jpa
mail
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サーバOSCPUメモリ
Apache Tomcat 7.0.53CentOS 6.5(x64)1vCPU1GB
JBoss EAP 6.2.0CentOS 6.5(x64)1vCPU1GB
JBoss AS 7.1.1CentOS 6.5(x64)1vCPU1GB

各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
TIS株式会社 コーポレート本部 戦略技術センター 主任

学生の頃にLinuxで構築された研究室のシステムに影響を受けOSS関連の業務に進む。システムインテグレーションやOSサポートを経験し、2012年からは戦略技術センターにてOSSを利用した新規技術の開発や検証などを行っている。

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています