tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Schoett>
Subject Re: How to increase Tomcat webserver speed?
Date Wed, 17 Oct 2007 17:07:37 GMT
keglius wrote:
> I performed tests on members area and found that in most cases all pages are
> loaded within 4-10 seconds.
> The slowest pages (e.g. reports to view longer period time data) sometimes
> takes 20-180 seconds to load.
> How can I increase this speed?

The obvious approach is to find out where this time is actually spent.  
The safest approach is to proceed naively from the outside in, as follows.

First measure the loading performance of your Web page with Firebug 
(Firefox Plugin).  I will show you which web requests are responsible 
for the slowdown.

Assuming that server response times are responsible for the slowdown (as 
opposed to the data transfer to the browser), do a real-time profile of 
the server to find out where the time is spent, e. g. with the Eclipse 
TPTP or the Netbeans Profiler.  Using real-time profiling, you can 
detect whether the culprits are computations on the server or back-end 
calls (e. g., to the data base).

If server computations are the problem, the profiler will tell you the 
cause of the problem.

If the problem is in the back-end calls, there are two possibilities:

(a) The back-end calls consume a lot of time on the back-end server.  In 
this case you must look at the back-end server.  If it is a data base 
server, data base / query optimization must be performed.

(b) The data base calls do not consume a lot of time on the back-end 
server, but their sheer number causes the delays.  This requires a 
redesign of the back-end queries, such that the data is fetched with 
fewer calls.  For example, I have reviewed an application that performed 
15.000 DB calls to construct the response to a common user request.  No 
matter how efficient the calls on the data base, the latency of the 
15.000 calls will cause a response time in the tens of seconds, at least.

Thus, you can find out which of the four most common performance 
problems is responsible for your delays:

(1) Web performance, i. e., too many HTTP requests from the browser (not 
likely the case here),

(2) app server performance, i. e., too many computations,

(3) back end performance, i. e., too much work on the back end (e. g., 
the data base),

(4) back end call latency, i. e., too many separate back end calls.

It would be premature to start optimizing one of these before having 
identified the main cause of the problem.


Oliver Schoett

To start a new topic, e-mail:
To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message