TOP比較データ> SPECjAppServer2004への適用結果
OSS評価手法
オープンソースソフトウェアの性能・信頼性評価手法

第4回:アプリケーション・プログラムの動作解析機能の開発とそれを用いた解析
著者:日立製作所  関 洋子   2005/6/6
前のページ  1  2   3  4  次のページ
SPECjAppServer2004への適用結果

   1つの事例として、SPECjAppServer2004を用いて、負荷が変動した時に生ずるアプリケーションの内部動作の変化を、EJB Profilerを用いて測定した結果を説明する。

   アプリケーションサーバは1台構成とし、負荷が低い場合と高い場合においてSPECjAppServer2004を実行させ、開始から終了までに実行されたすべてのメソッドについて、実行回数、ならびに平均実行時間を取得した。

   メソッドの実行回数と平均実行時間のそれぞれについて、大きい順に並び替えてグラフ化したものが図1および図2である。図中の「#」で始まる数字はメソッドを識別するために便宜上割り当てた数字であり、SPECjAppServer2004自体が持つ情報ではない。

実行回数の割合
図1:実行回数の割合

平均実行時間の割合
図2:平均実行時間の割合

   EJB ProfilerをSPECjAppServer2004に適用した場合、アプリケーションサーバ上においておよそ150のEJBメソッドが実行されていることがわかった。

   結果のうち、メソッド実行回数に着目してみる。図1から、実行回数の多いメソッドの上位15メソッドだけで、全体の約6割を占めていることがわかる。中でも#82のメソッドが全体の約2〜3割を占めている。

   #82のメソッドを調査した結果、閲覧するユーザに価格や割引等の情報を一覧として返すものであり、情報を格納するデータベースに直接アクセスするメソッドであることがわかった。ユーザ・アクセスの入り口となるアプリケーションから直接アクセスされる部分で実装されており、呼び出される頻度は極めて高い。ただし、平均実行時間は非常に小さく、処理性能のボトルネックにはなり難いと思われる。

   次に、メソッド平均実行時間に着目してみる。図2から、平均実行時間の大きいメソッドの上位15メソッドだけで、全体の約7割を占めていることがわかる。

   実行回数も加味して、これらのメソッドを再ソートしたところ、#69および#63のメソッドが平均実行時間も実行回数も大きいことがわかった。これらのメソッドを仔細に調査した結果、データベースのテーブルに存在するデータにアクセスする部分により、実行時間の大半が占められていることがわかった。各データへのアクセス時間は小さいが、膨大な数のデータに繰り返しアクセスするロジックとなっているため、メソッド全体の実行時間が大きくなっているものと思われる。

   このように、EJB Profilerを用いると、実行回数や平均実行時間の側面から、性能上の阻害要因となりそうなメソッドを抽出できる。そして、抽出した個々のメソッドに対して動作要因等を照合することにより、効果的なチューニングが可能になると期待できる。

前のページ  1  2   3  4  次のページ


株式会社日立製作所 関 洋子
著者プロフィール
株式会社日立製作所  関 洋子
1997年にシステム開発研究所に入所以降、ワークフローを中心としたBPM関連業務に従事。社内製品への新規機能提案や、Webサービス標準化推進に取り組んできたが、本プロジェクトよりOSS評価関連業務に携わることとなった。


INDEX
第4回:アプリケーション・プログラムの動作解析機能の開発とそれを用いた解析
  動作解析機能の提案
SPECjAppServer2004への適用結果
  実ユーザ環境下への近似
  検証内容および結果