Apache2+mod_jk2+Tomcat5連携で並列化Performance比較
のバックアップ(No.3)
Search in
this wiki
and
or
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
バックアップ一覧
差分
を表示
現在との差分
を表示
ソース
を表示
Apache2+mod_jk2+Tomcat5連携で並列化Performance比較
へ行く。
1 (2004-04-23 (金) 17:53:32)
2 (2004-04-26 (月) 01:50:52)
3 (2004-04-26 (月) 18:16:28)
以下の3パターンの性能比較を行いました。
Apache HTTP ServerとApache Tomcat
1台
を異なるPC上に配置し、mod_jk2を使って連携させた場合
Apache HTTP ServerとApache Tomcat
2台
を異なるPC上に配置し、mod_jk2を使って連携させた場合
Apache HTTP ServerとApache Tomcat
3台
を異なるPC上に配置し、mod_jk2を使って連携させた場合
調査対象
Apache HTTP Server 2.0.49 Windows版(.exe)
性能に関するサーバ設定はほぼデフォルト
Apache Tomcat 5.0.19 Windows版
性能に関するサーバ設定はほぼデフォルト
Tomcat mod_jk2 web server connector 2.0.4 Windows版
調査ツール
Microsoft Web Application Stress Tool 1.1.293.1
調査PCスペック
Server PC1 : Dell Optiplex GX240 (CPU:Pen4-B 1.8GHz、Memory:1GB)
Server PC2 : Dell Optiplex GX240 (CPU:Pen4-B 1.8GHz、Memory:1GB)
Server PC3 : Dell Optiplex GX240 (CPU:Pen4-B 1.8GHz、Memory:1GB)
Client PC1 : VAIO PCG-V505T2/P (CPU:MobilePen4 2.2GHz、Memory:1GB)
調査方法
TestCase
Apache AXISを利用したSOAP
Webサービス
に対して、異なる引数パラメータをもった3種類のリクエストを順番にローテーションさせます。
※
静的コンテンツ
と比べて、全体的に遅いのは、この
Webサービス
が
リクエスト毎に3回ずつDB接続している
からです。(「アクセスログを記録」「リクエスタ認証」「アプリデータ取得」)
DBCP(Database Connection Pool)は、Webアプリ-DB毎に8本(固定)
Stress Tool設定
Stress Level (threads):4, 8, 16, 24 (4パターン+α)
瞬間同時リクエスト数を想定したパラメータ
Stress multiplier (sockets per thread):2 (1パターン)
同一クライアントからの同時接続数を想定したパラメータ
IEでは、HTTP1.1の同時接続数デフォルトは2, HTTP1.0は4
HTTP1.1リクエスト
1分間のテストを2回行い、結果値が近似であれば平均。近似でなければやり直し。
試験中に
Webサービス
簡易リクエスタから手動で数回リクエストし、正常に返ってくることを確認する。
調査結果
Tomcat 1台の場合
thread数 4、25 requests/s、CPU 60%(Tomcat5)
thread数 8、38 requests/s、CPU 97%(Tomcat5)
thread数 12、40 requests/s、CPU 100%(Tomcat5)
thread数 16、エラー25件 正常2340件 {39 requests/s、CPU 100%(Tomcat5)}
Tomcat 2台(RoundRobin 1:1)の場合
thread数 4、36 requests/s、CPU 33%(Tomcat5)
thread数 8、51 requests/s、CPU 55%(Tomcat5)
thread数 12、67 requests/s、CPU 90%(Tomcat5)
thread数 16、78 requests/s、CPU 100%(Tomcat5)
thread数 20、80 requests/s、CPU 100%(Tomcat5)
thread数 24、エラー8件 正常4649件 {77 requests/s、CPU 100%(Tomcat5)}
Tomcat 3台(RoundRobin 1:1;1)の場合
thread数 4、37 requests/s、CPU 20%(Tomcat5)
thread数 8、69 requests/s、CPU 40%(Tomcat5)
thread数 12、84 requests/s、CPU 60%(Tomcat5)
thread数 16、100 requests/s、CPU 80%(Tomcat5)
thread数 20、103 requests/s、CPU 80%(Tomcat5)
thread数 24、97 requests/s、CPU 80%(Tomcat5)
thread数 28、104 requests/s、CPU 80%(Tomcat5)
考察
Tomcatを並列に増やすと、性能も向上することがわかった。
仮に、100requests/sが丸1日続いたとすると、
864万requests/day
という計算になります。性能検証における現実的なアクセス予想の考え方は様々ですから、ここでは割愛します。
Tomcat 3台時の後半は、TomcatのCPU負荷以外のボトルネックが存在しているので、パフォーマンスに変化が見られないのだと思われる。
あとは、信頼性・可用性の検証が必要。
実験中に、「指定した割合でバランシングしない」現象が2度発生した。
想定システム図
関連
Apache2とTomcat5のPerformance比較
Apache2+mod_jk2+Tomcat5連携とTomcat5 StandAloneとのPerformance比較