Apache2+mod_jk2+Tomcat5連携とTomcat5 StandAloneとのPerformance比較
のバックアップ(No.3)
Search in
this wiki
and
or
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
バックアップ一覧
差分
を表示
現在との差分
を表示
ソース
を表示
Apache2+mod_jk2+Tomcat5連携とTomcat5 StandAloneとのPerformance比較
へ行く。
1 (2004-04-23 (金) 16:29:35)
2 (2004-04-26 (月) 01:38:02)
3 (2004-04-26 (月) 01:43:54)
以下の3パターンの性能比較を行いました。
Tomcat StandAloneの場合
Apache HTTP ServerとApache Tomcatを同一のPC上に配置し、mod_jk2を使って連携させた場合
Apache HTTP ServerとApache Tomcatを異なる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)
Client PC1 : Dell PowerEdge 1600SC (CPU:Pen4-C 2.8GHz * 2、Memory:2GB)
調査方法
TestCase
Apache AXISを利用したSOAP
Webサービス
に対して、異なる引数パラメータをもった3種類のリクエストを順番にローテーションさせます。
※
静的コンテンツ
と比べて、全体的に遅いのは、この
Webサービス
がリクエスト毎に
3回ずつDB接続しているから
です。(「アクセスログを記録」「リクエスタ認証」「アプリデータ取得」)
Stress Tool設定
Stress Level (threads):1, 2, 4, 8 (4パターン+α)
瞬間同時リクエスト数を想定したパラメータ
Stress multiplier (sockets per thread):2 (1パターン)
同一クライアントからの同時接続数を想定したパラメータ
IEでは、HTTP1.1の同時接続数デフォルトは2, HTTP1.0は4
HTTP1.1リクエスト
1分間のテストを2回行い、結果値が近似であれば平均。近似でなければやり直し。
試験中に
Webサービス
簡易リクエスタから手動で数回リクエストし、正常に返ってくることを確認する。
調査結果
Tomcat5 StandAloneの場合
35 requests/s
CPU使用率 ほぼ常に100%
thread数を変化させても、上記の結果に変動は無かった。
Apache2とTomcat5を同一のPC上で連携させた場合
thread数 1~2のとき、36 requests/s
thread数 4~のとき、33 requests/s
CPU使用率 ほぼ常に100%
Apache2とTomcat5を異なるPC上で連携させた場合
thread数 1、 9 requests/s、CPU 0%(Apache2), 20%(Tomcat5)
thread数 2、18 requests/s、CPU 0%(Apache2), 45%(Tomcat5)
thread数 4、27 requests/s、CPU 0%(Apache2), 55~70%(Tomcat5)
thread数 8、36 requests/s、CPU 5~10%(Apache2), 90%(Tomcat5)
thread数 12、37 requests/s、CPU 10%(Apache2), 95%(Tomcat5)
thread数 16、37 requests/s、CPU 10%(Apache2), 95%(Tomcat5)
thread数 24 ->
Internal Server Error(500) が発生
考察
Tomcat5 StandAloneの場合と同一のPC上で連携させた場合とでは、ほぼ同様の結果となった。
Apache2とTomcat5を異なるPC上で連携させた場合では、同時接続数が少ないときに性能が発揮されない。
[余談] 今回は、公開されているWindows版のmod_jk2(バイナリ)を利用した。mod_jk2のLinux版バイナリは、Fedora-Core-1用とSuSE9.0用しか公開されていないので、他のディストリビューションで利用する際にはmod_jk2ソースをコンパイルする必要がある。
[余談] コンパイル時に気がつくことだが、mod_jk2.0.4はTomcat5に正式に対応しているわけではなさそうだ。
Linux版で調査しないとね。
関連
Apache2とTomcat5のPerformance比較
Apache2+mod_jk2+Tomcat5連携で並列化Performance比較