Redmineを運用するためのイロハを身につけよう

第7回 Javaプラットフォームでの運用

この記事を読むのに必要な時間:およそ 4 分

Glassfishの導入とWARのデプロイ

今回はglassfishバージョン2.0の最終ビルド版であるV2 UR2 b04をインストールします。

インストール手順はGlassfish Downloadsサイトに紹介されていますので,そちらを参考に /usr/local 以下にインストールしてください。

インストールが終了したらglassfishを起動します。

$ /usr/local/glassfish/bin/asadmin start-domain

それでは早速,先ほど生成したWARファイルをデプロイします。デフォルトの設定では,glassfishの管理画面へのアクセスは4848番ポートになっていますので http://localhost:4848 へアクセスし,デフォルトのアカウント:admin,パスワード:adminadmin でログインします。

glassfish管理画面面

glassfish管理画面

「管理画面でWebアプリケーション配備」を選択し,以下の内容で配備します。

「Application Server からアクセス可能なローカルのパッケージファイルまたはディレクトリ」を選択し,生成したWARファイルを指定
アプリケーション名:redmine
コンテキストルート:redmine

デプロイ完了後に http://localhost:8080/redmine にアクセスしてください。

仮に初期アクセス時にエラーが発生した場合は,glassfishのログもしくはredmineのログのいずれかを参照しエラー原因を調査してください。

glassfish/usr/local/glassfish/domains/domain1/logs/server.log
redmine/usr/local/glassfish/domains/domain1/applications/j
2ee-modules/redmine/log/production.log

最後に運用サーバにデプロイする際は,マイグレートや初期データのロードも忘れないようにしてください。

これでglassfishでRedmineを運用することができるようになりました。

ベンチマーク

第6回同様,Apache Benchを利用して簡単なパフォーマンスの測定をしてみます。

環境・条件

測定を行った環境は以下の通りで,Ruby + WEBrickで動かしたRedmineとJRuby + glassfishで動かしたRedmineについて比較します。

  • CentOS 4.4
  • Dual-Core AMD Opteron(tm) Processor 1210, 4GB Memory

比較対象となるWEB/アプリケーションサーバは以下のとおりです。

  • WEBrick(1.3.1⁠
    • Ruby(1.8.6), Rails(2.0.2), Redmine(0.7.1), productionモード
  • glassfish (V2 UR2 b04)
    • JRuby(1.1.2), Rails(2.0.2), Redmine(0.7.1), productionモード

今回はDBアクセスが発生するように,Redmineのある公開プロジェクトのトップページへ10回アクセスします。

結果

"Requests per second"の平均値は以下となります。

Ruby + WEBrick1.75 ⁠reqs/sec)
JRuby + glassfish1.89 ⁠reqs/sec)

この結果より,運用参考値ではありますが,JRuby + glassfishで運用した方がRuby + WEBrickで運用するよりも良い性能が出ていることがわかります。

最後に

今回は,goldspikeでWARを生成してglassfishにデプロイしJavaプラットフォームで運用するための方法を紹介しましたが,他にもJettyやglassfish gem(glassfish v3)などで稼動させることも可能です※4⁠。

筆者の運用環境では,JRuby + glassfishを使って3ヶ月間ほどRedmineを稼動させていますが,Rubyで稼動させた場合とほぼ同等のパフォーマンス・高い安定性で稼動させることが出来ています。

これまで全7回の連載で,Redmineのバージョンアップ方法や新機能の紹介,Redmine運用管理者向けに管理機能の解説とlighttpdやglassfishでの運用方法などを紹介してきました。

Redmineは現在も開発されており,定期的にバージョンアップされていますので,これまでTracやMantisで課題管理されていた方はこれを機会にRedmineも試されてみてはいかがでしょうか。Redmineには他システムからのデータ移行ツールも提供されており,こちらに移行方法が記載されていますので,是非お試しください。

※4)
Jettyで運用するための方法については筆者のブログのエントリであるjettyにて紹介していますので参考にしてください。

著者プロフィール

安達輝雄(あだちてるお)

TIS株式会社勤務。入社してすぐにRuby on Railsと出会う。現在はJRubyやXenなどOSSを中心に調査・検証をおこなっている。

ブログ:http://d.hatena.ne.jp/interu/


並河祐貴(なみかわゆうき)

TIS株式会社 基盤技術センター所属。オブジェクト指向開発,開発環境・ツール整備に従事した後,近年はRuby on Railsを中心としたオープンソース系ミドルウェアの検証/導入や,Xenなどのサーバ仮想化技術をターゲットに取り組んでいる。

ブログ:http://d.hatena.ne.jp/rx7/