tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chirag Dewan <>
Subject Re: Performance Issue while upgrading from Embedded Tomcat 6 to Tomcat 7
Date Wed, 22 May 2013 03:03:43 GMT
Hi Chris,

I was monitoring the CPU utilization specifically. I can compromise on 10000 less transactions/sec,but
80-90% utilization is not good.

I tested the Async Servlet and the Hello World Servlet with the same environment and the client.
Hello world servlet gave 20k req/sec and on the other hand Async Servlet was only 100 req/sec
even less during the course. Both the results with 100 threads.

I have configured 1000 max threads in the connector,and I am testing with 100 concurrent threads.

Well I tested a sample html page with Tomcat 6.0.18 and 7.0.30 on Solaris x86 server. The
req/sec were almost the same for both,but CPU utilization for Tomcat 6 was 23-27% and for
Tomcat 7 it was 80-90% consistently.

On the other hand on a Linux system,the req/sec were a little higher in Tomcat 7 say 65k to
55k on tomcat 6 and the CPU utilization was the same for both 6 and 7.

My Jprofiler stack trace on Solaris is a lot different. As far as I have observed,for Tomcat
7 the stack Trace leads me to ResponseFacade.setContentType,which was not the behaviour in
Tomcat 6. Can that be a bottleneck? Or is there something platform dependent that I should
take care of?


 From: Christopher Schultz <>
To: Tomcat Users List <> 
Sent: Tuesday, 21 May 2013 9:08 PM
Subject: Re: Performance Issue while upgrading from Embedded Tomcat 6 to Tomcat 7

Hash: SHA256


On 5/20/13 10:38 AM, Chirag Dewan wrote:
> I ran my test client onĀ  Hello World example servlet on Tomcat 
> 7.0.30. It was 12K req/sec with 80% CPU utilization.
> The same test case on tomcat 6.0.18 gave me similar req/sec but
> CPU utilization of 70% . The results on my linux server,with client
> and server running on the same machine. But all I am doing is
> comparing the 2 instances in the same environement.

Running both client and server on the same machine is not a great test
if you want to determine the server load by looking at CPU
utilization. Were you looking at overall CPU utilization, or just
utilization of the Tomcat JVM process?

> I am pretty sure the utilization is due to the server.
> The Jprofiler shows a lot of logging threads in tomcat consuming a 
> lot of memory. Something I should be careful about?

Can you be more specific? AFAIK, there are no "logging threads" in
Tomcat at all.

> Also I ran an asynchronous servlet with the same client. The 
> trans/sec reduced drastically,but the CPU utilization was only 4%

I would expect a small reduction in trans/sec when using async, but
nothing I would describe as "drastic". Can you give us some numbers?

> Are there too may threads waiting for connection? Would thread 
> pooling help, if we can?

I think you mean "too many connections waiting for a thread" instead
of the other way around. Threads are already pooled. What are your
<Connector> configuration details, and what are the parameters for
your load test? If you only have 10 connections configured, launching
10,000 clients isn't exactly a fair test.

- -chris
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools -
Comment: Using GnuPG with Thunderbird -


To unsubscribe, e-mail:
For additional commands, e-mail:
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message