バージョン4以降の[[Apache Tomcat:http://jakarta.apache.org/tomcat/]]は、「[[Apache HTTP Server:http://httpd.apache.org/]]と同等のHTTPエンジン(Catalina?, Coyote?)を内蔵しているので速い」と言われてますけど、ホントにそうなのか、ちょっとだけ調べてみました。

+ 調査対象
-- Apache HTTP Server 2.0.49
-- Apache Tomcat 5.0.19
-- 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]]です。
-- [[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 PC : VAIO PCG-505T2/P (CPU:MobilePen4 2.2GHz、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):''可変''~
+++ Stress Level (threads):1, 2, 4, 8, 16の5パターン~
 瞬間同時リクエスト数を想定したパラメータ
+++ Stress multiplier (sockets per thread):''2''~
+++ Stress multiplier (sockets per thread):2, 4の2パターン~
 同一クライアントからの同時接続数を想定したパラメータ~
 IEではHTTP1.1の同時接続数デフォルトは2, HTTP1.0では4
 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%
--- thread数、socket数を変化させても、上記の結果に変動は無かった。
++ コンテンツが少ないケース(Client PC2による低負荷)
--- Apache2 : 416 requests/s, CPU使用率 70%程度
--- Tomcat5 : 402 requests/s, CPU使用率 55%程度
--- ServerのCPU使用率はほぼ常に100%
--- thread数が2以上のときに、上記の結果で安定
++ コンテンツが多いケース(Client PC1による高負荷)
--- Apache2 : 504 requests/s, CPU使用率 ほぼ常に100%
--- Tomcat5 : 705 requests/s, CPU使用率 ほぼ常に100%
--- thread数が2以上のときに、上記の結果で安定
++ コンテンツが多いケース(Client PC2による低負荷)
--- Apache2 : 400 requests/s, CPU使用率 80%程度
--- Tomcat5 : 388 requests/s, CPU使用率 50%程度
--- ServerのCPU使用率はほぼ常に100%
--- thread数が2以上のときに、上記の結果で安定
+ 考察
-- 高負荷時と低負荷時で、リクエスト処理数が逆転している。これは、Apache2の方がCPU使用率が高く、少ない処理数でスペックの上限に達してしまうからと考えられる。今回利用したWindows版のApache2は、デフォルトで多数のmoduleをLoadしているが、その影響があるか?
-- リクエスト返却速度だけに注目するなら、Apache2とTomcat5の差は3%程度で、ほぼ同程度の性能と言ってよいと考える。
-- Linux版で調査したい…

----
 関連
-[[Apache2+mod_jk2+Tomcat5連携とTomcat5 StandAloneとのPerformance比較]]
-[[Apache2+mod_jk2+Tomcat5連携で並列化Performance比較]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS