Andre,
Have a look at http://www.informit.com/guides/content.aspx?g=javaseqNum=253
for more details about JVM.
A bit more difficult to read but with tons of info about JVM behaviour and
default settings: http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
So for the SurvivorRatio the default setting is:
-XX:SurvivorRatio=8 Ratio of eden/survivor space size [Solaris amd64: 6;
Sparc in 1.3.1: 25; other Solaris platforms in 5.0 and earlier: 32]
Hubert
-Original Message-
From: André Warnier [mailto:[EMAIL PROTECTED]
Sent: 30 November 2008 15:54
To: Tomcat Users List
Subject: Memory pool Survivor space
Hi.
I am monitoring a Tomcat during startup, using jconsole.
This Tomcat's JVM is started with the switches -Xms200M -Xmx200M, and
it starts a rather heavy webapp that just about occupies Tomcat 100%
during 5 minutes whenever I start it. (*)
In the memory tab of jconsole, I observe that one of the display
sections (Survivor space, the middle bar in the Heap section),
has the following behaviour :
- before the application is started, it remains constant at about 1 Mb
- as soon as I start the application, it grows to about 2 MB, then drops
down to 0, then grows up again to 2Mb, then drops to about 1 Mb, then
back up again, etc..
The 2 Mb seems to be some kind of hard limit, because it nevers goes
over it.
The bottom is more variable, sometimes between 1 Mb and 0, but more
often 0.
- when the application has finished loading (and Tomcat becomes
responsive again), the amount of memory used by the Survivor space seems
to stabilise again at 1.3 Mb, which is 0.3 Mb more than it was before
the application started. Then it slowly over time drops down to 1 Mb.
If the attachment survives this post, then you can see this graphically
in it. If not, you can get a snapshot here :
http://dev.dev.wissensbank.com/public/jconsole_survivor.png
What I would like to know is :
- what does this mean ?
- where does the JVM get this apparent hard limit of 2 Mb for this pool
size ?
- does it matter ? I mean, assuming I could change it, would that have
an impact in how the JVM works while starting this application, and how ?
Below are three cut and paste of the summary display at the bottom
left of jconsole when displaying this pool.
1) at some point during app startup
Time:
2008-11-30 15:27:24
Used:
0 kbytes
Committed:
2.240 kbytes
Max:
2.240 kbytes
2) also during app startup
Time:
2008-11-30 15:28:33
Used:
2.240 kbytes
Committed:
2.240 kbytes
Max:
2.240 kbytes
3) after app is started
Time:
2008-11-30 15:34:32
Used:
1.306 kbytes
Committed:
2.240 kbytes
Max:
2.240 kbytes
(*) to be completely precise :
- if I use load-on-startup in the web.xml of this application (no
matter with which value), then it seems to get started when Tomcat is
started. Whenever that happens, Tomcat becomes unresponsive during
approximately 5 minutes, using 95% of the machine's cpu time and not
answering HTTP requests.
At the end of these 5 minutes, Tomcat writes server startup in ms
in its catalina.out file, and it becomes responsive again to HTTP requests.
- if I do not have a load-on-startup tag in web.xml, then Tomcat
prints server startup in ms in catalina.out, and becomes
responsive in about 15 seconds (instead of 5 minutes).
But then, it is when I first request the application in the browser that
Tomcat becomes irresponsive during 5 minutes and uses 95% of cpu time
during these 5 minutes.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]