> -----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]