tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leon Rosenberg" <>
Subject Re: Tomcat Performance
Date Tue, 29 Jan 2008 15:28:30 GMT
Without wanting to oppose the whole document, the parts you quoted are
pretty incomplete.

first, calculating AART from clients perespective (as implicitely done
in the article) is not a good idea, since you are
mixing up tomcat response time, network transport, internet latency,
all in one bunch. Why should tomcat care about the data once it left
its buffers?

Second, and most serious flaw of the article, is the inability to
differ between net and gross request duration. There are more
resources needed on the server besides the cpu. Disk io costs time
With a AART of 1 second and one cpu you can still handle 10 requests
per second if the net request duration is 0.1 seconds, even the gross
duration is 1 second or more.


On Jan 29, 2008 3:11 PM, Andrew Hole <> wrote:
> Hello
> I read an interesting document from Mladen Turk (with whom I want to speak
> directly, but I don't know direct contact) that there is a formula to
> calculate the number of concurrent request:
> Calculating Load
> When determining the number of Tomcat servers that you will need to satisfy
> the client load, the first and major task is determining the Average
> Application Response Time (hereafter AART). As said before, to satisfy the
> user experience the application has to respond within half of second. The
> content received by the client browser usually triggers couple of physical
> requests to the Web server (e.g. images). The web page usually consists of
> html and image data, so client issues a series of requests, and the time
> that all this gets processed and delivered is called AART. To get most out
> of Tomcat you should limit the number of concurrent requests to 200 per CPU.
> So we can come with the simple formula to calculate the maximum number of
> concurrent connections a physical box can handle:
>                               500
>     Concurrent requests = ( ---------- max 200 ) * Number of CPU's
>                             AART (ms)
> The other thing that you must care is the Network throughput between the Web
> server and Tomcat instances. This introduces a new variable called Average
> Application Response Size (hereafter AARS), that is the number of bytes of
> all context on a web page presented to the user. On a standard 100Mbps
> network card with 8 Bits per Byte, the maximum theoretical throughput is
> 12.5 MBytes.
>                                12500
>     Concurrent requests = ---------------
>                             AARS (KBytes)
> For a 20KB AARS this will give a theoretical maximum of 625 concurrent
> requests. You can add more cards or use faster 1Gbps hardware if need to
> handle more load.
> The formulas above will give you rudimentary estimation of the number of
> Tomcat boxes and CPU's that you will need to handle the desired number of
> concurrent client requests. If you have to deploy the configuration without
> having actual hardware, the closest you can get is to measure the AART on a
> test platform and then compare the hardware vendor Specmarks.
> I would like to launch a discussion on the validity of this formula and, in
> case of inappropriate, to try to get a more accurate formula.
> Thanks a lot

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

View raw message