I made some benchs on my Linux Fedora Core 2
on a P4 2.8ghz / 1Gb RAM :

Apache 2.0.50 in

 - Apache 2.0.50 alone (simple html file)

 - TC 3.3.2/Coyote 1.1

 - Apache 2.0.50 + jk 1.2.6 + TC 3.3.2/jk2

JkMount /examples/* local

worker.local.port=8009
worker.local.host=localhost
worker.local.type=ajp13
worker.local.cachesize=16
worker.local.cache_timeout=600
worker.local.socket_keepalive=1
worker.local.socket_timeout=300


- Apache 2.0.50 + mod_proxy + TC 3.3.2 (Coyote 1.1).

ProxyPass /tc3/ http://localhost:11011/
ProxyPassReverse /tc3/ http://localhost:11011/


Apache Bench is running on another machine, Windows 2000 P3 1Ghz, and both systems are on a switched 100Mbps network :


Apache 2 alone 1202 req/s TC/Coyote 883 req/s Apache 2 + jk + TC 906 req/s Apache 2 + proxy + TC 497.req/s (but with 8000 errors ;(


Constatation :

- Remy make a tremendous works since Coyote HTTP 1.1 is only 15% slower
  than the Apache 2 native HTTP.

- mod_proxy is 50% slower than mod_jk and that's a really bad news.
  Also many errors appears, about 4% errors.

- Tomcat via jk or mod_proxy, when on the same machine make a cpu load
  of 60% system and 30% user. Tomcat alone is 33% system and 10% user.


How could we optimize mod_proxy settings since I'm using the standard httpd.conf ?

------

Complete bench results :

Apache 2.0.50 alone (simple html file)

C:\Program Files\Apache Group\Apache2\bin>ab -k -n 200000 -c 16 http://machone/HelloWorldExample.html
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.8 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/


Benchmarking machone (be patient)
Completed 20000 requests
Completed 40000 requests
Completed 60000 requests
Completed 80000 requests
Completed 100000 requests
Completed 120000 requests
Completed 140000 requests
Completed 160000 requests
Completed 180000 requests
Finished 200000 requests


Server Software: Apache/2.0.50 Server Hostname: machone Server Port: 80

Document Path:          /HelloWorldExample.html
Document Length:        459 bytes

Concurrency Level:      16
Time taken for tests:   166.299127 seconds
Complete requests:      200000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    0
Total transferred:      145800000 bytes
HTML transferred:       91800000 bytes
Requests per second:    1202.65 [#/sec] (mean)
Time per request:       13.304 [ms] (mean)
Time per request:       0.831 [ms] (mean, across all concurrent requests)
Transfer rate:          856.18 [Kbytes/sec] received


Tomcat 3.3.2 using the Coyote 1.1 HTTP connector

C:\Program Files\Apache Group\Apache2\bin>ab -k -n 200000 -c 16 http://machone:11011/examples/servlet/HelloWorldExample
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.8 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/


Benchmarking machone (be patient)
Completed 20000 requests
Completed 40000 requests
Completed 60000 requests
Completed 80000 requests
Completed 100000 requests
Completed 120000 requests
Completed 140000 requests
Completed 160000 requests
Completed 180000 requests
Finished 200000 requests


Server Software: Apache-Coyote/1.1 Server Hostname: machone Server Port: 11011

Document Path:          /examples/servlet/HelloWorldExample
Document Length:        400 bytes

Concurrency Level:      16
Time taken for tests:   226.485671 seconds
Complete requests:      200000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    0
Total transferred:      105400000 bytes
HTML transferred:       80000000 bytes
Requests per second:    883.06 [#/sec] (mean)
Time per request:       18.119 [ms] (mean)
Time per request:       1.132 [ms] (mean, across all concurrent requests)
Transfer rate:          454.46 [Kbytes/sec] received


Apache 2.0.50 + jk 1.2.6 + Tomcat 3.3.2 (via Coyote JK2 connector)

C:\Program Files\Apache Group\Apache2\bin>ab -k -n 200000 -c 16 http://machone/examples/servlet/HelloWorldExample
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.8 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/


Benchmarking machone (be patient)
Completed 20000 requests
Completed 40000 requests
Completed 60000 requests
Completed 80000 requests
Completed 100000 requests
Completed 120000 requests
Completed 140000 requests
Completed 160000 requests
Completed 180000 requests
Finished 200000 requests


Server Software: Apache/2.0.50 Server Hostname: machone Server Port: 80

Document Path:          /examples/servlet/HelloWorldExample
Document Length:        400 bytes

Concurrency Level:      16
Time taken for tests:   220.637261 seconds
Complete requests:      200000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    0
Total transferred:      110400000 bytes
HTML transferred:       80000000 bytes
Requests per second:    906.47 [#/sec] (mean)
Time per request:       17.651 [ms] (mean)
Time per request:       1.103 [ms] (mean, across all concurrent requests)
Transfer rate:          488.64 [Kbytes/sec] received


Apache 2.0.50 + mod_proxy + Tomcat 3.3.2 (via Coyote HTTP connector)

C:\Program Files\Apache Group\Apache2\bin>ab -k -n 200000 -c 16 http://machone/tc3/examples/servlet/HelloWorldExample
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.8 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/


Benchmarking machone (be patient)
Completed 20000 requests
Completed 40000 requests
Completed 60000 requests
Completed 80000 requests
Completed 100000 requests
Completed 120000 requests
Completed 140000 requests
Completed 160000 requests
Completed 180000 requests
Finished 200000 requests


Server Software: Apache-Coyote/1.1 Server Hostname: machone Server Port: 80

Document Path:          /tc3/examples/servlet/HelloWorldExample
Document Length:        400 bytes

Concurrency Level:      16
Time taken for tests:   401.717641 seconds
Complete requests:      200000
Failed requests:        8046
   (Connect: 0, Length: 8046, Exceptions: 0)
Write errors:           0
Non-2xx responses:      8046
Keep-Alive requests:    0
Total transferred:      108724136 bytes
HTML transferred:       79299998 bytes
Requests per second:    497.86 [#/sec] (mean)
Time per request:       32.137 [ms] (mean)
Time per request:       2.009 [ms] (mean, across all concurrent requests)
Transfer rate:          264.30 [Kbytes/sec] received

Reply via email to