You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Scott Johnson <sc...@attask.com> on 2002/11/12 01:52:59 UTC

Tomcat memory management

Hello,

We've got an application that is replicated for clients, each 
replication runs in its own context. We're running jdk1.4.1, RH7.2, 
Tomcat 4.0.6

Even though the application itself can run fine on 10mb RAM, as each 
context initializes, EVERY thread allocates more memory until we get 
20-30 contexts up with each context taking 60-90mb RAM:

An example process output will have one entry like this for every 
context:
root      2900  0.0  6.6 257624 68556 pts/1  S    18:32   0:00 
/usr/java/jdk1.4.1_01/bin/java -Xmx10m 
-Djava.endorsed.dirs=/usr/java/tomcat/bin:/usr/java/tomcat/common/lib 
-classpath 
/usr/java/jdk1.4.1_01/lib/tools.jar:/usr/java/tomcat/bin/bootstrap.jar -

As you can see, the -Xmx... argument is of no effect as these processes 
are taking 68mb.

For us the optimal solution would be to have a single process handling 
all of the contexts, or have each context limited to 10mb.

I've searched for a configuration to allow the former, and the Xmx arg 
isn't working on the latter. Does anyone have any ideas?

Thanks!
__________________
Scott Johnson
AtTask, Inc.
http://www.attask.com
Work Smart, Work Happy™

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: Tomcat memory management

Posted by Michael Smith <ms...@xn.com.au>.
Scott Johnson wrote:
> 
> Hello,
> 
> We've got an application that is replicated for clients, each
> replication runs in its own context. We're running jdk1.4.1, RH7.2,
> Tomcat 4.0.6
> 
> Even though the application itself can run fine on 10mb RAM, as each
> context initializes, EVERY thread allocates more memory until we get
> 20-30 contexts up with each context taking 60-90mb RAM:
> 
> An example process output will have one entry like this for every
> context:
> root      2900  0.0  6.6 257624 68556 pts/1  S    18:32   0:00
> /usr/java/jdk1.4.1_01/bin/java -Xmx10m
> -Djava.endorsed.dirs=/usr/java/tomcat/bin:/usr/java/tomcat/common/lib
> -classpath
> /usr/java/jdk1.4.1_01/lib/tools.jar:/usr/java/tomcat/bin/bootstrap.jar -
> 
> As you can see, the -Xmx... argument is of no effect as these processes
> are taking 68mb.
> 
> For us the optimal solution would be to have a single process handling
> all of the contexts, or have each context limited to 10mb.
> 
> I've searched for a configuration to allow the former, and the Xmx arg
> isn't working on the latter. Does anyone have any ideas?

Under linux, the distinction between threads and processes is fairly
small - and ps doesn't (in that version) display threads differently.

What you _actually_ have here are threads - but only a single process.
The memory usage you see on each of these threads is actually shared
across all of the threads for that JVM (the JVM is a single process). So
this isn't really a problem - you have 70 megs (or whatever) used _in
total_ by the JVM, across 20-30 threads. 

Michael

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>