> -----Original Message-----
> From: BB Commish [mailto:[EMAIL PROTECTED] 
> Sent: Friday, November 18, 2005 12:50 PM
> To: users@tomcat.apache.org
> Subject: Managing concurrent high memory processes
> 
> We have a Struts application running on Tomcat where
> a few actions
> within 
> the app can invoke processing that consumes 300+ MB
> of RAM and can run
> for 
> several hours. The issue is how to make the
> application more scalable to
> 
> accommodate multiple concurrent 'high load'
> processes and also make
> better 
> use of servers with available RAM beyond the jvm
> limits (we have used
> both 
> Sun and JRockit jvms - typically on Win2k3 as per
> customer
> requirements).
> 
> Would Tomcat clustering/load balancing be suited to
> this problem? Or is
> it 
> more geared to managing high volumes of requests
> rather than just
> dealing 
> with certain high load requests that need special
> attention?
> 
> We have also considered spawning a separate jvm
> instance (or retrieving
> from 
> a pool more likely) to handle each high load request
> with the 'normal' 
> requests being handled within the jvm running
> Tomcat. Is this a feasible
> 
> option?
> 
> I will appreciate any comments. Thanks.
> 

Sure you can pawn off the processing to other
processes.  It's still going to use memory and the
processor regardless however.  This would at least
leave your main process memory for handling requests. 
You could also look at your long running memory
intensive operations and see if you can move this out
to some type of a stream operation or something and
move the data holding and manipulation to random
access files or a database.  Unless you are really
doing something that "really" requires heavy lifting
you should be able to refactor your code to handle the
load better (300+MB of RAM is a lot if this is per
thread/action....not so much if you are talking about
the server process using more than 300 MB of RAM).  If
not then your processing requires resources and it's
time to up to a real multi-processor system and throw
gigs of ram on to it or cluster and make sure you have
enough RAM on each machine to handle the memory usage.
 No matter what software you're using the hardware has
to support the work load.

Wade

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to