Skip to Main Content

Java HotSpot Virtual Machine

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JVM1.4.2 What can cause many full gc to occur in a row ?

843829Nov 6 2005 — edited Nov 14 2005
Hi, I'm seeing many fullgc occuring in a row on a web application runing under tomcat 5.0.28/mod_jk

System is Solaris 9, 4 proc
Java version is : 1.4.2_10

JVM Parameters are :
-server -d64
-Xmn640m -Xms2048m -Xmx2048m -XX:ParallelGC
Threads=2 -XX:+UseParallelGC -XX:+UseMPSS -noclassgc -XX:+DisableExplicitGC
-XX:MaxPermSize=128m -XX:PermSize=128m -XX:NewSize=640m
-XX:MaxNewSize=640m

(PermSize is probably too big here)

Looking at the gclog I see :
152.026: [Full GC 1334566K->986365K(1418816K), 15.1747537 secs]
169.182: [GC 1251709K->1078683K(1421056K), 1.0553477 secs]
171.721: [GC 1343868K->1125288K(1421056K), 1.2902410 secs]
173.012: [Full GC 1125288K->238719K(1418880K), 4.1125318 secs]


When adding the -XX:+PrintHeapAtGC
I see the following (cleaned-up a bit):
{Heap before GC invocations=39:
Heap
PSYoungGen total 497728K, used 438834K
PSOldGen total 1441792K, used 1359384K
PSPermGen total 131072K, used 18975K
92.358: [GC 1798219K->1531712K(1940224K), 1.4728122 secs]
Heap after GC invocations=39:
Heap
PSYoungGen total 498432K, used 127090K
PSOldGen total 1441792K, used 1404621K
PSPermGen total 131072K, used 18975K
} {Heap before GC invocations=40:
Heap
PSYoungGen total 498432K, used 467186K
PSOldGen total 1441792K, used 1404621K
PSPermGen total 131072K, used 18976K
95.407: [Full GC 1871808K->1448415K(1940224K), 17.1598987 secs]
Heap after GC invocations=40:
Heap
PSYoungGen total 498432K, used 6623K
PSOldGen total 1441792K, used 1441791K
PSPermGen total 131072K, used 18976K
}
{Heap before GC invocations=41:
Heap
PSYoungGen total 498432K, used 340096K
PSOldGen total 1441792K, used 1441791K
PSPermGen total 131072K, used 18976K
113.955: [Full GC 1781887K->253003K(1940224K), 3.6430027 secs]
Heap after GC invocations=41:
Heap
PSYoungGen total 498432K, used 0K
PSOldGen total 1441792K, used 253003K
PSPermGen total 131072K, used 18976K
}


Now what I'm wondering is why there are 2 Full GC in a row... probably something I don't understand well in the memory collection process....
Note that this behavior happens under a load of roughly 50 concurrent users on the server

All help appreciated !

Thanks
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 12 2005
Added on Nov 6 2005
6 comments
241 views