You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Petr Sumbera <Pe...@Sun.COM> on 2007/08/01 15:40:49 UTC

Re: Tomcat with/without Tomcat native library

Hi Bill and all,

not sure what is the right way for comparison between using and not 
using APR. I tried Apache ab tool like this:

ab -c 4 -n 10000 http://localhost:8080/favicon.ico

And I don't see any difference. Actually it might be little bit slower 
with APR. The file size is 21630, so it should use sendfile then (well 
actually our APR doesn't use sendfile at the moment as far as I know).

And the other issue is stability with APR. When I configure Tomcat to 
use SSL via APR it works for simple requests. But using huge amount of 
requests with ab it will fail (and tomcat is no longer responding to any 
request):

bash-3.00# /usr/apache2/bin/ab -c 4 -n 10000 
https://localhost:443/favicon.ico
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
SSL handshake failed (5).

Test aborted after 10 failures

apr_socket_connect(): Connection refused (146)
Total of 1 requests completed

--

Any comment to this?

Petr

Bill Barker wrote:
> "Petr Sumbera" <Pe...@Sun.COM> wrote in message 
> news:46AA0D4B.3040703@sun.com...
>> Hi Guys,
>>
>> Does anybody have experience or even better some numbers comparing
>> performance of Tomcat running with and without Tomcat native library
>> (libtcnative-1)?
>>
>> I don't see any comparable difference so far (using TC 5.5.23, Native 
>> Library 1.1.10, Solaris/i386).
>>
> 
> On Solaris there wasn't a big difference last time I profiled it.  On 
> Solaris, it doesn't cost much to have a large number of threads blocking on 
> input, so you don't get a lot from the APR Poller.  Also, the Solaris JVM is 
> pretty optimized for the OS.  From testing with the AJP Connectors, you 
> might have noticible improvements with TC 6 and the NIO Connector on 
> Solaris, but I haven't profiled it myself.
> 
> It's with Linux boxes (I haven't seen reports for other *nixs) with older 
> kernels that you see the most improvement when using the APR Connector.
> 
>> Cheers,
>>
>> Petr
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
> 
> 
> 


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat with/without Tomcat native library

Posted by Bill Barker <wb...@wilshire.com>.
"Mladen Turk" <ml...@gmail.com> wrote in message 
news:46B09369.9060504@gmail.com...
> Petr Sumbera wrote:
>> Hi Bill and all,
>>
>> not sure what is the right way for comparison between using and not using 
>> APR. I tried Apache ab tool like this:
>>
>> ab -c 4 -n 10000 http://localhost:8080/favicon.ico
>>
>> And I don't see any difference. Actually it might be little bit slower 
>> with APR. The file size is 21630, so it should use sendfile then (well 
>> actually our APR doesn't use sendfile at the moment as far as I know).
>>
>
> The purpose of APR is to change the model from thread-per-connection
> to thread-per-request. This means it will behave much faster when
> you have 1000 concurrent clients using Keep-Alive (HTTP 1.1).
>

I agree with Mladen here.  Your test is artificial, so under most systems 
the non-APR connector will win (since you only have 4 clients connecting to 
TC).  And since you haven't specified '-k' to ab, you are really testing 
connection speed, which isn't realistic.

On Solaris, having a 1000 threads blocking on input isn't that big of a 
deal, so I'm not sure about the "much faster" claim, but I haven't profiled 
Tomcat lately :).

> In that case you'll be able to serve them all with lower number
> of maxThreads.
>
> So, try to use the 'normal' test tool instead a brute force one like 'ab'
> that will reflect the real load to your boxes.
> I mean, the ab (Apache Bench) is a DoS tool, right ;)
>

When I was profiling, I used JMeter and 500 clients with about a one minute 
ramp-up time (I don't care about how it handles an accept flood), and about 
a 5-10 second delay between requests (I don't have the script I used 
anymore, so I don't remember the exact value).  Also, if you use JMeter, use 
the HttpClient Sampler or configure the java.net Sampler to use a bigger 
than default pool, since by default the java.net Sampler doesn't scale up to 
this level (skewing the results).  Also interesting would be to use a longer 
connectionTimeout on the <Connector /> and longer delays between requests. 
But for a good comparision, make sure that the maxThreads attribute on the 
<Connector /> is large enough to handle the lode.

> Regards,
> Mladen.
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
> 




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat with/without Tomcat native library

Posted by Mladen Turk <ml...@gmail.com>.
Petr Sumbera wrote:
> Hi Bill and all,
> 
> not sure what is the right way for comparison between using and not 
> using APR. I tried Apache ab tool like this:
> 
> ab -c 4 -n 10000 http://localhost:8080/favicon.ico
> 
> And I don't see any difference. Actually it might be little bit slower 
> with APR. The file size is 21630, so it should use sendfile then (well 
> actually our APR doesn't use sendfile at the moment as far as I know).
>

The purpose of APR is to change the model from thread-per-connection
to thread-per-request. This means it will behave much faster when
you have 1000 concurrent clients using Keep-Alive (HTTP 1.1).

In that case you'll be able to serve them all with lower number
of maxThreads.

So, try to use the 'normal' test tool instead a brute force one like 'ab'
that will reflect the real load to your boxes.
I mean, the ab (Apache Bench) is a DoS tool, right ;)

Regards,
Mladen.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org