On 31.08.2010 13:14, takanobu watanabe wrote:
Thank you very much Rainer.

Tomcat itself doesn't need much memory and you should be able to run it with 
less than 64MB Heap (plus Perm)
I recognized 64MB>=  Am +  Bm from your advice.
Is my recognized correct ?
---example catalina.sh---
-XX:NewSize=Am -XX:MaxNewSize=Am
  -XX:PermSize=Bm -XX:MaxPermSize=Bm"

I don't actually understand the question, but here's the terminology (I hope the picture isn't disturbed by line breaks):

<---------------------- Heap -------------------><- Perm ->
<----------------- New ----------------><- Old ->
<- Eden -><- Survivor1 -><- Survivor2 ->

Sometimes New is also defined as Eden plus one of the two survivors, especially in the verbose GC output.

The two survivors are also called "From Space" and "To Space", the roles change during each GC run in New.

Xms, Xmx: minimum and maximum heap size
XX:NewSize, XX:MaxNewSize: minimum and maximum size of New
XX:PermSize and XX:MaxPermSize: minimum and maximum size of Perm

Sizes of Survivor spaces (each one) are determined by

Size of Survivor = Size of New / (SurvivorRatio + 2)

So if SurvivorRatio is some number N, then the Ratios are

Eden:Survivor1:Survivor2 = N:1:1

and New = (N+2) * One Survivor

Regards,

Rainer

On 31 August 2010 19:00, Rainer Jung<rainer.j...@kippdata.de>  wrote:
On 31.08.2010 10:34, takanobu watanabe wrote:

Hello,

What is default value of CATALINA_OPTS at apache-tomcat-6.0.29 ?
It means No configure catalina.sh as same as value of CATALINA_OPTS
just expand tomcat.

Because I try to run tomcat lean physical memory condition(128Mb only
with armv5).
When nothing configure to catalina.sh(default),Tomcat works well.
But when I configure below,looks like always FullGC running and could
not access WEB service.
---
CATALINA_OPTS=" -verbose:gc -XX:+PrintGCTimeStamps -Xms64m -Xmx64m
-XX:NewSize=32m -XX:MaxNewSize=32m
-XX:SurvivorRatio=2 -XX:PermSize=16m -XX:MaxPermSize=16m"
---
If anyone has idea or suggest of run tomcat on lean physical memory
condition, I would like to know.

If you don't add explicit memory options, the default memory sizes of your
JVM are used. Those might depend on the exact jvm version and also on the
type of system you run it on (total memory, CPUs).

The easiest way to find out the sizes for your jvm are running it without
explicit settings and then measuring it. Measuring can be done with tools
like jstat, jconsole or jvisualvm, or you can add a few verbose gc flags to
print out the sizes of the different memory regions during each run of the
GC, e.g.

-verbose:gc -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps

Note that the default settings will allow some of the regions to grow and
shrink, so you need to make observations for a longer time to find out the
values which are effective most of the time.

I expect your above settings might not leave enough room in the Old
Generation (aka Tenured), because your New Generation is somwhat large
relative to the Old Gen. Tomcat itself doesn't need much memory and you
should be able to run it with less than 64MB Heap (plus Perm), but what you
need in the end depends on the application inside (and the concurrency
induced by the load). I never experimented to find a minimum value though.

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