Re: Max Thread/Memory problems with tomcat

2009-10-05 Thread Peter Crowther
2009/10/5 prashant sharma :
> Tomcat: 5.0.

That's old, and no longer supported.  Why are you using this version?
(And exactly which version of 5.0 are you using, by the way?)

> OS: Windows Server HPC edition.

32- or 64-bit?  I ask because the maximum contiguous memory you'll get
in 32-bit is somewhere around 1400 Mbytes - the numbers vary depending
on exactly which Microsoft OS.

> JVM: 5.0

That's also old.  Why are you using this version?

> There is one basic doubt that I have. When we load/stress our Tomcat server, 
> we hit thresholds mentioned below once in a while. The root of the problem is 
> that when I increase the clients, I start getting a connection refused error 
> on the server side. This is because the server hits the maximum request 
> processing thread limit. The other problems are connected to it:
>
> -Max threads (tomcat):
>
> As mentioned above, this is the root of the problem. To solve this problem, I 
> increase the max threads in server.xml. Then I get the Out of stack space 
> exception.
>
> -Stack Memory:
>
> Now for this I tried a couple of things
> a) Reduce the stack size allotted per thread so that more threads can be 
> spawned in the allotted stack space.I believe that the default is around 
> 320K/ thread. I set it to 128K in the JVM options (Xss).
> b) Reduce the heap size. I did this because as per my understanding the 
> memory alloted to a process is divided among heap and stack. So probably 
> reducing the heap size makes more memory available for stack. Don't know if 
> this is correct?

It certainly makes more memory available for the OS stack.

> Now once in a while I get Out of memory exception for heap space.
>
> -Heap Memory:
>
> Can somebody advise as to what are the solutions for these sort of problems 
> other than reducing the memory/thread consumption, of our application logic. 
> I mean are there techniques that can be applied on tomcat/JVM/OS level to 
> make more threads/memory available to the tomcat process?

OS: Use a 64-bit OS.  Add RAM to the server.  Use anything other than
32-bit Windows in order to get a larger contiguous heap space.  If you
absolutely have to use Windows, and it absolutely has to be the 32-bit
version, use the /3GB switch *with extreme care* - read up on
*exactly* what it does and what will break before enabling it.

JVM: You've done the main thing, which is to reduce the stack depth per thread.

Tomcat: Memory and CPU usage is generally better in newer versions.
Other tunings are very much application-specific, I suspect.

However, I think we all know what the underlying problem is: your
application will not reliably fit in the available space with the load
you're putting on it during the test.  Add more space, load-balance
onto multiple machines of the size you have, tune the app, or reduce
the scale of your load test if it's deliberately a long way above your
target load.

- Peter

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



Max Thread/Memory problems with tomcat

2009-10-05 Thread prashant sharma
Hi,

We are using the following configuration:

Tomcat: 5.0. 
OS: Windows Server HPC edition.  
JVM: 5.0

There is one basic doubt that I have. When we load/stress our Tomcat server, we 
hit thresholds mentioned below once in a while. The root of the problem is that 
when I increase the clients, I start getting a connection refused error on the 
server side. This is because the server hits the maximum request processing 
thread limit. The other problems are connected to it:

-Max threads (tomcat): 

As mentioned above, this is the root of the problem. To solve this problem, I 
increase the max threads in server.xml. Then I get the Out of stack space 
exception. 

-Stack Memory:
 
Now for this I tried a couple of things
a) Reduce the stack size allotted per thread so that more threads can be 
spawned in the allotted stack space.I believe that the default is around 320K/ 
thread. I set it to 128K in the JVM options (Xss). 
b) Reduce the heap size. I did this because as per my understanding the memory 
alloted to a process is divided among heap and stack. So probably reducing the 
heap size makes more memory available for stack. Don't know if this is correct?

Now once in a while I get Out of memory exception for heap space.

-Heap Memory: 

Can somebody advise as to what are the solutions for these sort of problems 
other than reducing the memory/thread consumption, of our application logic. I 
mean are there techniques that can be applied on tomcat/JVM/OS level to make 
more threads/memory available to the tomcat process? 

Please advise.

Thanks!
Prashant