tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Costin Manolache <cmanola...@yahoo.com>
Subject Re: TC evolment
Date Tue, 06 Apr 2004 05:20:06 GMT
Henri Gomez wrote:

> Remy Maucherat wrote:
> 
>> Costin Manolache wrote:
>>
>>> If you're worried about risk, then probably glueing PHP with tomcat 
>>> will be a bad choice.
>>>
>>> Tomcat is limited by Java's bad support for integration with native 
>>> code. Apache will have no problem running Php, perl, python, .net or 
>>> integrating with any native library that exists today. For tomcat 
>>> running openSSL seems to be a big thing, and we know too well how 
>>> difficult it is to get it working with JNI.
>>>
>>> For tomcat - you can attempt to rewrite/replace every feature in Java 
>>> ( we are doing this for LDAP auth for example - not sure if JNDI is 
>>> better or faster than the native ldap auth in apache ). Or you can 
>>> try to use JNI or connectors - like mod_jk. Or you can just use what 
>>> already works and is stable, and do something better with your time :-)
>>
>>
>>
>> We'll see the result when it's done :) If Mladen wants to try it 
>> because he feels like he has a need for it, it's fine by me.
>>
>>>> And there is the maintainability, scalability, etc. which I think 
>>>> Java is
>>>> better at.
> 
> 
> Well I made some benchmarks on TC 3.3.2, TC 4.1.30, TC 5.0.19, Apache 2,
> mod_php 4.3.5 and mod_php 5.0RC1 this week-end and you could see that to
> serve the good old HelloWorld (or its html/php counter part), Java is
> allways faster.
> 
> This 'bench' has been conducted on a Pentium 4 with 512Mo RAM
> , Windows XP and Sun SDK 1.4.2-04.
> 
> I used each time the default server configurations.


Well, we know this from quite some time ( I think IBM JDK1.3.1 was the 
first to allow tomcat3.3 hello world to run faster than apache ). If you
do the right things - you can make java code faster or as fast as C code.

We also know that IIS or iPlanet may sometimes be faster than apache or 
tomcat.
So what ? As we used to say on tomcat-dev when we were slower than 
apache - performance is not the only thing that matters. I would bet 
resin is still a bit faster ( probably not much now :-), and you could
probably find other servlet engines that may still be faster than tomcat.

I don't think people use PHP because it's faster than perl or python, or
they used apache because it was faster.

Success can be dangerous sometimes - it's important to keep things in 
perspective :-)

Costin

> 
> Regards
> 
> 
> ------------------------------------------------------------------------
> 
> Tomcat 3.3.2 / Coyote HTTP 1.1
> 
> Server Software:        Apache-Coyote/1.1
> Server Hostname:        127.0.0.1
> Server Port:            8080
> 
> Document Path:          /examples/servlet/HelloWorldExample
> Document Length:        419 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   1.902736 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      546000 bytes
> HTML transferred:       419000 bytes
> Requests per second:    525.56 [#/sec] (mean)
> Time per request:       30.444 [ms] (mean)
> Time per request:       1.903 [ms] (mean, across all concurrent requests)
> Transfer rate:          280.12 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.8      0      10
> Processing:     0   28   5.1     30      50
> Waiting:        0   14   9.6     10      40
> Total:          0   29   4.7     30      50
> 
> Percentage of the requests served within a certain time (ms)
>   50%     30
>   66%     30
>   75%     30
>   80%     30
>   90%     30
>   95%     40
>   98%     40
>   99%     40
>  100%     50 (longest request)
>  
>  ---
>  
>  Tomcat 4.1.30 / Coyote HTTP 1.1
>  
>  Server Software:        Apache-Coyote/1.1
> Server Hostname:        127.0.0.1
> Server Port:            8080
> 
> Document Path:          /examples/servlet/HelloWorldExample
> Document Length:        411 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   2.143081 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      559000 bytes
> HTML transferred:       411000 bytes
> Requests per second:    466.62 [#/sec] (mean)
> Time per request:       34.289 [ms] (mean)
> Time per request:       2.143 [ms] (mean, across all concurrent requests)
> Transfer rate:          254.31 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    1   3.0      0      10
> Processing:    10   32   5.3     30      50
> Waiting:        0   16  10.7     20      50
> Total:         10   33   5.6     30      50
> 
> Percentage of the requests served within a certain time (ms)
>   50%     30
>   66%     40
>   75%     40
>   80%     40
>   90%     40
>   95%     40
>   98%     40
>   99%     50
>  100%     50 (longest request)
>  
>  ---
>  
>  Tomcat 5.0.19 / Coyote HTTP 1.1
>  
>  Server Software:        Apache-Coyote/1.1
> Server Hostname:        127.0.0.1
> Server Port:            8080
> 
> Document Path:          /servlets-examples/servlet/HelloWorldExample
> Document Length:        365 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   2.173125 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      513000 bytes
> HTML transferred:       365000 bytes
> Requests per second:    460.17 [#/sec] (mean)
> Time per request:       34.770 [ms] (mean)
> Time per request:       2.173 [ms] (mean, across all concurrent requests)
> Transfer rate:          230.08 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   3.1      0      20
> Processing:     0   33   6.1     30      60
> Waiting:        0   16  10.7     20      50
> Total:          0   34   6.5     30      60
> 
> Percentage of the requests served within a certain time (ms)
>   50%     30
>   66%     40
>   75%     40
>   80%     40
>   90%     40
>   95%     40
>   98%     50
>   99%     60
>  100%     60 (longest request)
>  
>  
>  ---
>  
>  Apache 2.0.49 (Windows)
>  
>  Server Software:        Apache/2.0.49
> Server Hostname:        127.0.0.1
> Server Port:            80
> 
> Document Path:          /helloworld.html
> Document Length:        365 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   2.633787 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      650000 bytes
> HTML transferred:       365000 bytes
> Requests per second:    379.68 [#/sec] (mean)
> Time per request:       42.141 [ms] (mean)
> Time per request:       2.634 [ms] (mean, across all concurrent requests)
> Transfer rate:          240.72 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.0      0      10
> Processing:    10   41   6.5     40      70
> Waiting:       10   40   6.6     40      70
> Total:         10   41   6.5     40      70
> 
> Percentage of the requests served within a certain time (ms)
>   50%     40
>   66%     40
>   75%     40
>   80%     40
>   90%     50
>   95%     50
>   98%     60
>   99%     70
>  100%     70 (longest request)
>  
>  ---
>  
>  Apache 2.0.49 / jk 1.2.5 / Tomcat 3.3.2 (Windows)
>  
> Server Software:        Apache/2.0.49
> Server Hostname:        127.0.0.1
> Server Port:            80
> 
> Document Path:          /examples/servlet/HelloWorldExample
> Document Length:        419 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   2.393442 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      583000 bytes
> HTML transferred:       419000 bytes
> Requests per second:    417.81 [#/sec] (mean)
> Time per request:       38.295 [ms] (mean)
> Time per request:       2.393 [ms] (mean, across all concurrent requests)
> Transfer rate:          237.73 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.6      0      10
> Processing:     0   36   5.4     40      50
> Waiting:        0   20  11.6     20      40
> Total:          0   37   5.1     40      50
> 
> Percentage of the requests served within a certain time (ms)
>   50%     40
>   66%     40
>   75%     40
>   80%     40
>   90%     40
>   95%     40
>   98%     40
>   99%     50
>  100%     50 (longest request)
>  
>  
>  ---
>  
>  Apache 2.0.49 / jk 1.2.5 / Tomcat 4.1.30 (Windows)
> 
> Server Software:        Apache/2.0.49
> Server Hostname:        127.0.0.1
> Server Port:            80
> 
> Document Path:          /examples/servlet/HelloWorldExample
> Document Length:        411 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   2.733932 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      596000 bytes
> HTML transferred:       411000 bytes
> Requests per second:    365.77 [#/sec] (mean)
> Time per request:       43.743 [ms] (mean)
> Time per request:       2.734 [ms] (mean, across all concurrent requests)
> Transfer rate:          212.88 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.8      0      10
> Processing:    10   42   5.1     40      60
> Waiting:        0   20  13.0     20      50
> Total:         10   43   5.4     40      60
> 
> Percentage of the requests served within a certain time (ms)
>   50%     40
>   66%     40
>   75%     50
>   80%     50
>   90%     50
>   95%     50
>   98%     50
>   99%     50
>  100%     60 (longest request)
>  
>  ---
>  
>  Apache 2.0.49 / jk 1.2.5 / Tomcat 5.0.19 (Windows)
> 
> Server Software:        Apache/2.0.49
> Server Hostname:        127.0.0.1
> Server Port:            80
> 
> Document Path:          /servlets-examples/servlet/HelloWorldExample
> Document Length:        365 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   2.663831 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      550000 bytes
> HTML transferred:       365000 bytes
> Requests per second:    375.40 [#/sec] (mean)
> Time per request:       42.621 [ms] (mean)
> Time per request:       2.664 [ms] (mean, across all concurrent requests)
> Transfer rate:          201.59 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.6      0      10
> Processing:     0   41   4.7     40      50
> Waiting:        0   19  12.8     20      50
> Total:          0   41   5.1     40      50
> 
> Percentage of the requests served within a certain time (ms)
>   50%     40
>   66%     40
>   75%     40
>   80%     50
>   90%     50
>   95%     50
>   98%     50
>   99%     50
>  100%     50 (longest request)
>  
>  ---
>  
>  Apache 2.0.49 / PHP 4.3.5 (Windows)
> 
> Server Software:        Apache/2.0.49
> Server Hostname:        127.0.0.1
> Server Port:            80
> 
> Document Path:          /helloworld.php
> Document Length:        357 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   4.706768 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      556000 bytes
> HTML transferred:       357000 bytes
> Requests per second:    212.46 [#/sec] (mean)
> Time per request:       75.308 [ms] (mean)
> Time per request:       4.707 [ms] (mean, across all concurrent requests)
> Transfer rate:          115.15 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.9      0      20
> Processing:    10   73   7.0     70      90
> Waiting:        0   35  21.9     40      80
> Total:         10   74   7.2     70     100
> 
> Percentage of the requests served within a certain time (ms)
>   50%     70
>   66%     80
>   75%     80
>   80%     80
>   90%     80
>   95%     80
>   98%     80
>   99%     90
>  100%    100 (longest request)
>  
>  ---
>  
>  Apache 2.0.49 / PHP 5.0RC1 (Windows)
> 
>  
> Server Software:        Apache/2.0.49
> Server Hostname:        127.0.0.1
> Server Port:            80
> 
> Document Path:          /helloworld.php
> Document Length:        357 bytes
> 
> Concurrency Level:      16
> Time taken for tests:   7.410656 seconds
> Complete requests:      1000
> Failed requests:        0
> Write errors:           0
> Total transferred:      562000 bytes
> HTML transferred:       357000 bytes
> Requests per second:    134.94 [#/sec] (mean)
> Time per request:       118.570 [ms] (mean)
> Time per request:       7.411 [ms] (mean, across all concurrent requests)
> Transfer rate:          73.95 [Kbytes/sec] received
> 
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   2.1      0      10
> Processing:    20  116  10.9    120     170
> Waiting:       20  116  10.8    120     170
> Total:         20  117  10.9    120     170
> 
> Percentage of the requests served within a certain time (ms)
>   50%    120
>   66%    120
>   75%    120
>   80%    120
>   90%    120
>   95%    130
>   98%    130
>   99%    160
>  100%    170 (longest request) 
> 
> 
> ------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Mime
View raw message