Hi Gerhardus,

On 30.12.2008 17:53, gerhardus.geldenh...@gta-travel.com wrote:
Hi
We have an apache server that load balances two types of applications
across different stacks of tomcats.

We have a tomcat stack for requests that processes very quickly, lets
call this stack A and a tomcat stack for slower running
request(different type of application) named stack B.

We limit connections on the apache to protect the underlying layers eg:
ServerLimit     5
ThreadLimit     10

StartServers     5
ThreadsPerChild       10
MinSpareThreads       10

MaxClients 50

MaxSpareThreads       50

However if stack A or B misbehave and eat up all of the available apache
connections it can cause a denial of service for the other stack that is
on the same apache.

My question really is where I should be doing the isolation. I am not
sure whether I can achieve this in modjk or whether I should rather be
running separate apache instances for tomcat stack A and B. I considered
using virtual hosts but I believe they would still share the overall
amount of threads as defined above.

Yes, they will. So if you want best separation, yes you would use two apache instances.

Of course you could try to find a middle way between absolute separation and consolidation, the latter allowing to use resources of stack A for stack B (or vice versa) up to a certain amount.

You can't map httpd threads to URLs, and since the mod_jk connection pools are process local, you can't really efficiently divide the connections (=threads) available for requests to A and available for requests to B.

What's possible though is using reply_timeouts. Most of the time "misbehave" is getting slow or stuck.

Since

  concurrency = throughput * response_time

you can at least partially prepare for eating up all available concurrency by limiting response times. Unfortunately your maximal concurrency of 50 is not very big, so one of the two stacks could quickly eat all available threads.

Until version 1.2.26 of mod_jk you had to use two separate workers for A and B in order to set reply timeouts to different values, starting with the recent 1.2.27 you can use reply timeouts per mount using mount extensions.

After writing this I think the question is probably more relevant on an
apache list but because we are using modjk and tomcat I thought I would
ask anyway.

Regards,

Rainer

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

Reply via email to