[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 メーリングリストの案内