I have recently been the lucky recipient of a non tuned weblogic server. I have since tuned it up and I have the following java options in the jvm -verbosegc -XX:NewSize=192m -XX:MaxNewSize=192m -XX:SurvivorRatio=8 -Xms768m -Xmx768m -XX:MaxPermSize=128m . I noticed, through the Unix console output, that the GC is not ever triggering a "Full GC". I have a few questions about that.
1) Why isn't the Full GC every being triggered?
2) Do I need a Full GC triggered? Should it be based on time?
3) Do some of my other settings need to change so that a Full GC is triggered?
4) Is the incremental GC going into both young and old generation memory which leads my whole concern not valid?
Thanks in advance -Travis
-
JVM settings and the old generation gc'ing (3 messages)
- Posted by: travis wissink
- Posted on: September 17 2003 13:04 EDT
Threaded Messages (3)
- JVM settings and the old generation gc'ing by Quartz Quartz on September 18 2003 08:23 EDT
- jvmstats/visualgc by Quartz Quartz on September 18 2003 13:43 EDT
- JVM settings and the old generation gc'ing by travis wissink on September 22 2003 09:56 EDT
- jvmstats/visualgc by Quartz Quartz on September 18 2003 13:43 EDT
-
JVM settings and the old generation gc'ing[ Go to top ]
- Posted by: Quartz Quartz
- Posted on: September 18 2003 08:23 EDT
- in response to travis wissink
1-your old generation is never filling up! your young generation is soo large that it contains all short lived objects, and after a small gc, survivors also have a 1/8 of 192 meg. That is a lot. So another small gc may cause to clear all non-permanent objects. Basically, I think your old-gen heap contains only the servlet/ejb (etc) code, none of the transaction (http/ejb/etc...)
2-you should be happy that you don't need a full gc.
if the OS swapped some memory to pagefile on disk, it will have to swap it in.
I have seen a full gc of almost 2 minute! (117 seconds). (I keep tellilng sun to implements a non-paged memory option for the JVM but they stupidly say I just need more ram. Ok then, why did they added that option (ISM: intimate shared memory) to the solaris 1.3.1 jvm?!!!)
3-you could want the heap to defrag on full GC and reduce the young generation and survivor size. But again why would you do so...
On jdk 1.4.2 I use (for my eclipse IDE)
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
4- for complete details, you must read pretty much ALL the following:
http://java.sun.com/docs/hotspot/ (portal)
http://java.sun.com/docs/hotspot/gc1.4.2/index.html
http://java.sun.com/j2se/1.4.2/1.4.2_whitepaper.html -
jvmstats/visualgc[ Go to top ]
- Posted by: Quartz Quartz
- Posted on: September 18 2003 13:43 EDT
- in response to Quartz Quartz
And you certainly want to look up 1.4.1 tools like jvmstats/visualgc
http://developers.sun.com/dev/coolstuff/jvmstat/ -
JVM settings and the old generation gc'ing[ Go to top ]
- Posted by: travis wissink
- Posted on: September 22 2003 09:56 EDT
- in response to Quartz Quartz
Thanks for these great answers!