解説●無償のTomcatでは力不足なのか(下)

ノウハウの蓄積で適用範囲が広がる,
再起動でトラブルを未然防止

日経オープンシステム 2003年2月号,80ページより


デフォルト設定でもかなり速い

 Tomcatを使ったシステムでも,チューニング・ポイントは商用APサーバーと変わらない。(1)JavaVMのヒープ領域の最適化,(2)Apacheとのコネクション数などをパラメータで調整,(3)負荷テストで性能を検証――という手順で行う。

 (1)のJavaVMのヒープ領域は,JITコンパイラの種類などでデフォルト値が異なる。例えばJava2 SDK 1.3.1のSPARC用では,最大値は64Mバイトである*2。「同時アクセスが多いシステムでは,デフォルトでは少ないので,256Mバイト程度を設定している」(マリンロードの田中氏)。システムの特性に応じた最適値を見極めたい。

 Tomcatでは,(2)のパラメータ調整は「server.xml」および「web.xml」ファイルで行う。前者ではリクエストの受け付け数など,後者では稼働させるアプリケーションのデフォルト値などが設定できる。ただし,今回取材したユーザーの多くは導入時のデフォルト設定を利用している。その理由としては,「デフォルトでもかなりの性能が出る」という意見が大勢を占めた。まずはデフォルト設定で試したい。

負荷テストの重要性は変わらない

 Tomcatに限らず,(3)の負荷テストによる性能検証は欠かせない。

 大塚商会の勤怠管理システムは,構築当時で約4400人の利用者を見込んだため,「高い負荷をかけたときの性能が不安だった」(オーエスケイ カスタマーアプリケーションセンター SE 主任 栗林直昭氏)。そこで,最も重い処理(月初に明細ヘッダーを作成)で,利用者6000人,同時アクセス100に耐えることを目標に負荷テストを実施。当初は5台のサーバーをクラスタリングさせたが,テストの結果,想定を上回る性能が得られたため,サーバーを2~3台に減らして運用している*3

 トレイダーズ証券も2002年5月の稼働開始に先立ち,同時アクセス200人の負荷テストを実施したが,「特にレスポンスの低下は無かった」(イ・システムの土橋氏)。アクセス数が稼働開始から5倍に伸びてきたため,Tomcatを稼働させるサーバーを2002年11月に1台追加,2003年にはもう1台を追加して3台構成とする計画である。

バージョン選択を慎重に

 初めてTomcatを利用する場合は,バージョン選びに注意したい。Tomcatだけでなく,組み合わせるOSやJavaVM,Apacheなどとの整合性を検証する必要がある(表1[拡大表示])。

 「安定性,セキュリティを優先してバージョンを選んでいる」(徳田氏)というマリンロードでは,Tomcat 3.2.4とApache 1.3.26,Java2 SDK 1.4.0を標準に定める。Tomcatの最新版は4.xだが,「あるシステムで採用したところ,メモリー・リークが発生したため,3.2.4にダウングレードした」(同氏)。トレイダーズ証券も,「Tomcat 4.xをベースにした社内業務用のパッケージ製品を導入した際,メモリー・リークが原因と思われるトラブルが発生したため,サーバーをリブートして回避した」(奥山氏)という*4

 伊勢丹や大塚商会のように,Tomcat 3.xを利用し続けるユーザーは多い。「Tomcat 3.xと4.xでは同じコネクタでも実装が異なるため,移行時はアプリケーションの動作検証が欠かせない」(Ja-Jakarta Projectの運営メンバー 小川環氏)。バージョンアップを強いられないことはオープンソースの利点であるため,最初に使うバージョンはなおさら慎重に選びたい*5

 また,開発面においては「各開発者がクライアントにTomcatを導入しておけば,コーディングからテストまで完了できる」(宮崎情報処理センター ソフトウェア研究所 研究員 チーフ 山根淳一氏)という“手軽さ”も利点である。マリンロードでは,無償の開発ツール「Eclipse」にTomcatを連携させ,開発効率を高めている(図4[拡大表示])。

 利点の多いTomcatだが,課題もある。「連続稼働しているとプロセスが重くなってくるので,再起動している」(マリンロードの田中氏)というように,現状のTomcatでは連続稼働が難しいことだ。「JavaVMやOSに起因するトラブルを防ぐためにも,再起動することを運用計画に含めておく方が無難」(Ja-Jakarta Projectの小川氏)だろう。伊勢丹やトレイダーズ証券では,バックアップ処理などを行うメンテナンス時間帯にTomcatを再起動している*6

表1●デンサンが定める,製品バージョンの社内標準
 
図4●開発ツールにTomcatを連携させる
オープンソースのJava開発ツール「Eclipse」に,Plug-inを使ってTomcatを連携させたところ。クライアント上で,プログラムのコード開発から稼働確認までが完結できる

(森山 徹=tmoriyam@nikkeibp.co.jp)