|
バージョン4以降の[[Apache Tomcat:http://jakarta.apache.org/tomcat/]]は、「[[Apache HTTP Server:http://httpd.apache.org/]]と同等のHTTPエンジン(Catalina?, Coyote?)を内蔵しているので速い」と言われてますけど、ホントにそうなのか、ちょっとだけ調べてみました。 + 調査対象 -- Apache HTTP Server 2.0.49 Windows版(.exe)~ サーバ設定はほぼデフォルト -- Apache Tomcat 5.0.19 Windows版~ サーバ設定はほぼデフォルト + 調査ツール -- [[Microsoft Web Application Stress Tool 1.1.293.1:http://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/itsolutions/intranet/downloads/webstres.asp]] + 調査PCスペック -- Server PC : Dell Optiplex GX240 (CPU:Pen4-B 1.8GHz、Memory:1GB) -- Client PC1: Dell PowerEdge 1600SC (CPU:Pen4-C 2.8GHz * 2、Memory:2GB) -- Client PC2: VAIO PCG-505T2/P (CPU:MobilePen4 2.2GHz、Memory:1GB) + 調査方法 -- TestCase +++ HTMLコンテンツのデータ量が少ないケース(Apache2デフォルトのindex.html) +++ 比較的コンテンツ量が多いケース(窓の杜トップページ、画像が66個) -- -- Stress Tool設定 +++ Stress Level (threads):1, 2, 4, 8, 16の5パターン~ 瞬間同時リクエスト数を想定したパラメータ +++ Stress multiplier (sockets per thread):2, 4の2パターン~ 同一クライアントからの同時接続数を想定したパラメータ~ IEでは、HTTP1.1の同時接続数デフォルトは2, HTTP1.0は4 +++ HTTP1.1リクエスト +++ 1分間のテストを2回行い、結果値が近似であれば平均。近似でなければやり直し。 + 調査結果 ++ コンテンツが少ないケース(Client PC1による高負荷) --- Apache2 : 520 requests/s, CPU使用率 ほぼ常に100% --- Tomcat5 : 730 requests/s, CPU使用率 ほぼ常に100% --- ServerのCPU使用率はほぼ常に100% --- thread数、socket数を変化させても、上記の結果に変動は無かった。 ++ コンテンツが多いケース(Client PC1による高負荷) --- Apache2 : 504 requests/s, CPU使用率 ほぼ常に100% --- Tomcat5 : 705 requests/s, CPU使用率 ほぼ常に100% --- ServerのCPU使用率はほぼ常に100% --- thread数が2以上のときに、上記の結果で安定 #ref(result01.png); #ref(result01.png,nolink); ++ コンテンツが少ないケース(Client PC2による低負荷) --- Apache2 : 416 requests/s, CPU使用率 70%程度 --- Tomcat5 : 402 requests/s, CPU使用率 55%程度 --- thread数が2以上のときに、上記の結果で安定 ++ コンテンツが多いケース(Client PC2による低負荷) --- Apache2 : 400 requests/s, CPU使用率 80%程度 --- Tomcat5 : 388 requests/s, CPU使用率 50%程度 --- thread数が2以上のときに、上記の結果で安定 #ref(result02.png); #ref(result02.png,nolink); + 考察 -- 高負荷時と低負荷時で、リクエスト処理数が逆転している。これは、Apache2の方がCPU使用率が高く、少ない処理数でマシンスペックの上限に達してしまうからと考えられる。今回利用したWindows版のApache2は、デフォルトで多数のmoduleをLoadしているが、その影響があるか? -- リクエスト返却速度だけに注目するなら、Apache2とTomcat5の差は3%程度で、ほぼ同程度の性能と言ってよいと考える。 -- Linux版で調査したい… ---- 関連 -[[Apache2+mod_jk2+Tomcat5連携とTomcat5 StandAloneとのPerformance比較]] -[[Apache2+mod_jk2+Tomcat5連携で並列化Performance比較]]