EJBコンポーネントに関するコンソーシアム」のパフォーマンス研究会は,その成果物としてテクニカル・レポートを会員企業に公開した。Webシステムのパフォーマンス・チューニングに必要な,基本的テクニックを紹介することで,チューニングにかかるコストを抑えることなどを狙っている。設計方法といった記述がWebSphere Application Serverなど一部のWebアプリケーション・サーバーに限られているため,それを補うのが今後の課題である。

(吉田 晃=akyoshid@nikkeibp.co.jp)

 「EJBコンポーネントに関するコンソーシアム」のパフォーマンス研究会は2002年8月,Webシステムのパフォーマンス向上に必要な知識や情報をまとめたテクニカル・レポート「パフォーマンスに関する Hints & Tips集 第1版」を会員企業向けに公開した。

 その狙いを,パフォーマンス研究会の主査を務める日立ソフトウェアエンジニアリング インターネットビジネス部 GL主任技師 紀平 篤志氏は,「システム設計やプログラミングの段階でパフォーマンス上問題になるような作り込みが減る。それによって,パフォーマンス・チューニングにかかるコストを抑えられる」と説明する。

 非会員企業がテクニカル・レポートを入手するには,コンソーシアムに入会(年会費30万円)するか,同内容を記した書籍(2003年1月に発行予定)を購入する。PDFなどで一般に公開するかどうかは未定である。

 コンソーシアム加盟企業のうち,NECソフト,グレープシティ,日本IBM,日本ソフトウェアエンジニアリング,富士通など11社が策定に参加した。

チューニング手順が浸透せず構築コストがかさむ

図1●パフォーマンス上のこれまでの問題とテクニカル・レポートの狙い
これまでWebシステムのパフォーマンスを確保する際に注意すべき点が浸透していなかった。今回公開したテクニカル・レポートでは,パフォーマンスを確保するための基本的情報を提供することで,チューニングにかかる余分なコストを抑えることなどを狙っている。

 テクニカル・レポートをまとめた背景は,「Webシステムのパフォーマンス・チューニングの手順が,まだまだ浸透しているとは言えない」(紀平氏)ことだ(図1[拡大表示])。

 Webシステムでは,同時アクセス数などの見積もりが難しいため,システム構築後にパフォーマンスが期待通り出ないということがよくある。しかし,最近では短期開発が進み,パフォーマンス・チューニングに時間を割くことも難しい。

 そのような状況で,ボトルネックの調査方法やチューニングするポイントを知らずにシステムを構築すると,チューニングのコストがより多くかかってしまう。そうなると,カットオーバーの時期が遅れたりする。最悪の場合には,Webシステムがダウンしてしまうなど,大きな問題につながる可能性がある。

 当然,テクニカル・レポートを参照してWebシステム構築をしても,パフォーマンス・チューニングが不要になるわけではない。しかし,基本事項を押さえることで,余計なチューニングの工数は減るだろう。

 また,ユーザー企業はWebシステムのパフォーマンス・チューニングではなく,ビジネス・ロジックなどのコアな部分にコストをかけたいと考えがちである。パフォーマンスを出すためのノウハウは,ベンダー/インテグレータが独自に持っていなくても,共有したほうがユーザー企業には好ましい。「パフォーマンスを出すテクニックで(ベンダー間の)差別化を図る必要はない」(同氏)。そのために,ベンダー/インテグレータがノウハウを出し合い,テクニカル・レポートを策定した点は評価できる。

システム設計に踏み込む

表1●日立計測器サービスが2001年4月に稼働させる新システムの概要
SAPジャパンのERPパッケージ「R /3」を使って構築する。保守担当者が,iモード携帯電話から,R/3の在庫管理モジュールにアクセスして,補修部品の発注処理をできるようにする

 テクニカル・レポートの主な内容は,(1)スループットや応答時間の概要,(2)コーディングやシステム設計上の注意点――などである(表1[拡大表示])。「これまではJavaプログラミングという観点でのテクニックを記述した資料はあったが,システム設計にまで言及した資料はほとんどなかった」(紀平氏)。

 (1)で特徴的なのは,アクセス数を見積もりづらいWebシステムで,ECサイトの目標スループットの算出法を示していることである。マシンのサイジングやチューニングを行ううえで,前提となるスループットの目標値が必ず必要になるため,こういった式を使えばある程度の参考値を得られる。

 (2)のJavaコーディングについては,ガベージ・コレクションを防ぐためオブジェクトを多数作らない,文字列操作にはStringBufferクラスを利用する,など一般的な内容になっている。

 また,システム設計上の注意点として,サーブレットのHttpSessionに大量のオブジェクトをバインドしない,サーブレットのHttpSessionとEJBのStateful Session Beanではどちらが適しているか,フレームワークStrutsを使ってもWebアプリケーション・サーバーにオーバーヘッドはほとんどかからない――といったポイントを取り上げている。

 このほかに,JDBC(Javaデータベース接続)とEJBでの検索性能の比較や,J2EEのスケーラビリティやパフォーマンスを測定するためのベンチマークであるECperfの説明,Javaプログラムのメソッドなどのボトルネックを探すためのプロファイラ,負荷テスト・ツールの紹介などがある。

個々のAPサーバーには言及せず

 一方で,テクニカル・レポートは,Webアプリケーション・サーバー(APサーバー)間のベンチマークが目的ではないため,APサーバーごとのチューニング・ポイントについては言及していない。このため,利用するAPサーバーのチューニング・ポイントについては,個別に調べる必要がある。

 テクニカル・レポートを策定した11社に日本BEAシステムズやサン・マイクロシステムが入っていない。このため,これらメーカーのAPサーバーに関する設定項目などについても,あまり記述されていない。「今後は,不足しているAPサーバーに関する(設定項目などの)情報を埋めるのが課題だ」(同氏)。