On 04/05/2013 16:01, Yogesh wrote:
> Well my question is Is it a common design practice from your experiences to 
> configure one node (maxthreads) for the scenario where all other nodes 
> amongst which the load was distribued fail ? 

You design for whatever level of resilience you need to meet the
availability requirements.

Mark

> 
> On the cluster part, wrt tomcats talking to each other do you mean the 
> session replication feature or something else ?
> 
> Sent from my iPhone
> 
> On May 4, 2013, at 9:26 AM, André Warnier <a...@ice-sa.com> wrote:
> 
>> yogesh hingmire wrote:
>>
>>
>>> On Sat, May 4, 2013 at 7:07 AM, André Warnier <a...@ice-sa.com> wrote:
>>>> yogesh hingmire wrote:
>>>>
>>>>> While planning / designing to build a web app that must scale to 2000
>>>>> concurrent users, distributed across 5 Tomcat nodes in a cluster, Apache
>>>>> at
>>>>> the front of course and the ability to serve 20 concurrent requests per
>>>>> seconds during business hours, with a page response time of 5 seconds, how
>>>>> would we go about the ask ? What Apache / Tomcat / System (CPU/JVM)
>>>>> parameters should be considered for this design ?
>>>> I will provide the ABC, and leave the details for someone else.
>>>> You have 20 requests arriving per second, and it takes 5 seconds to
>>>> process one request and return the response.
>>>> So, over time, it will look like this
>>>>
>>>> Time   new requests   requests in-process  requests terminated
>>>>
>>>> 0        20              20                      0
>>>> +1s      20              40                      0
>>>> +2s      20              60                      0
>>>> +3s      20              80                      0
>>>> +4s      20             100                      0
>>>> +5s      20             100                     20
>>>> +6s      20             100                     40
>>>> +7s      20             100                     60
>>>> etc...
>>>>
>>>> So, in principle, and assuming nothing else is going on, you need 100
>>>> concurrent threads in Tomcat to process these requests.
>>>> (I would take a healthy margin of security and double that).
>>>> Whether for that you need a cluster of Tomcats is another discussion.
>>>> And how much memory you need to allocate to your Tomcat(s) JVM(s) is a
>>>> function of what your webapp needs, to process one request.
>>>>
>>>> The numer of concurrent users should be relatively irrelevant, if all you
>>>> mean by that is that some of these requests come from the same user, but
>>>> they are otherwise independent of one another.
>>>>
>>>> Note that I have a suspicion that what you describe as "requests" above
>>>> probably only count the requests to your webapp code, and do not count the
>>>> additional requests for stylesheets, images, etc.. which may be embedded in
>>>> any page that the user's browser eventually displays.
>>>> So unless you plan on serving those directly from the Apache httpd
>>>> front-end, you should take them into account too.
>>> Thanks Andre and sorry for not mentioning about the other content that are
>>> actually requested by http get's from the jsp served.,
>>> There is quite a lot of ajax calls and static content and that can be
>>> served out of httpd, but as of now it is not. I know not the best way,
>>
>> but you can read the on-line documentation, I presume ?
>>
>> so i
>>> assume i have to increment my thread count correspondingly..
>>
>> Well yes, because then you do not have 20 requests per second, you have more.
>> Only you would know how many more, and how long they take to serve, but the 
>> calculation is similar.
>>
>>>
>>> While planning to threads on a single node, do i have to take into account
>>> the failure scenario where say all other 4 nodes fail and just this one
>>> node has to serve out the entire web app load. For that, do i have to
>>> provision the thread count as many as 4 times what i arrive for a single
>>> node ?
>>>
>>> Your thoughts?
>>
>> I think that you can figure that one out by yourself, no ?
>>
>> One more thing, to avoid you looking in the wrong direction : having one 
>> Apache httpd front-end distributing calls to several back-end Tomcats, does 
>> not make it so that the Tomcat servers constitute a "cluster".  A "cluster" 
>> is a name more usually used when the Tomcats are talking to eachother.  In 
>> this case, they would not be.  It would just be the connector, on the Apache 
>> httpd side, which distributes the load between the back-end Tomcats, and 
>> detects when one or more is not working anymore.
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to