[Seasar-user:6342] 【S2JSF 1.0.22】tableタグを多用した場合のパフォーマンス

SCC 村上 剛志 [E-MAIL ADDRESS DELETED]
2007年 2月 26日 (月) 13:42:14 JST


いつもお世話になっております。
SCC 村上です。

現在抱えている案件の関係で、
S2JSF1.0.22環境で簡単な負荷試験を実施したところ
パフォーマンスが極端に劣化する現象が発生しましたので
長文ですがご一読頂き、対応策などあれば
ご教示願いたいと思います。

環境は以下のとおりです。

--------------
○対象サーバ:
Pentium4 1.6GB/メモリ1GB
Linux (Debian GNU/Linux)
Java 1.5.0 update10
Tomcat 5.5.20

なお、サーバオプションは以下のとおりです。
 -server -Xms256m -Xmx256m
 -XX:NewSize=128m -XX:MaxNewSize=128m
 -XX:PermSize=64m -XX:MaxPermSize=64m
 -XX:+DisableExplicitGC
試験中FullGCが発生していないことは確認済みです。

--------------
○対象モジュール:
S2JSF 1.0.22 Exampleを使用。
ただしlog4jのpriorityを全てFATALに変更。
また、Session Timeoutを1分に設定。

--------------
○対象ページ
・tableタグの全くないHTML
・10個の<tr><td>を持つtableを1つ含むHTML
・50個の<tr><td>を持つtableを1つ含むHTML
・100個の<tr><td>を持つtableを1つを含むHTML

--------------
○試験方法
サーバとは別に用意したクライアントから
Jakarta JMeter 2.2を用いて、各ページに対し
20スレッドで各々500リクエスト(計10000)を送信し
リクエスト処理終了時のスループットを確認。

--------------
○結果

結果は以下のとおりでした。
・tableタグの全くないHTML
   255リクエスト/sec
・10個の<tr><td>を持つtableを1つ含むHTML
   180リクエスト/sec
・50個の<tr><td>を持つtableを1つ含むHTML
   39リクエスト/sec
・100個の<tr><td>を持つtableを1つ含むHTML
   13リクエスト/sec

--------------
○原因と考えられるもの

S2JSF1.0.22にいくつかデバッグログを埋め込んで、
別途動作させてみたところ、tableの各要素毎に
ElementProcessor(および関連するElementTag等)が
生成されているため、tableの要素が増えるほど
これらの処理時間が長くなっているのではないかと
思います。

--------------

現在抱えている案件では、デザイナ側がtableを
多用しており、またレスポンスタイムがシビアな
案件ですので、このパフォーマンス劣化は正直厳しいです。

HTML修正以外で何か改善策などあれば、
お手数ですがご教示願いたいと思います。

必要な情報などあれば、ご指示ください。

お忙しい中恐れ入りますが、宜しくお願いいたします。



--- 
村上剛志(Tsuyoshi Murakami)
株式会社エスシーシー  システム事業本部
第1システム事業部 インターネットサービス部
TEL: 03-3228-4446 FAX: 03-3319-6994
E-mail: [E-MAIL ADDRESS DELETED]



Seasar-user メーリングリストの案内