Reputation: 21
I see frequent major gc when there is lot of space in old/young gen.
Only thing i see is survivor space is 100% full all the time. java vm args are as below
-Xms2200m -Xmx2200m -XX:NewSize=600m -XX:MaxNewSize=600 -XX:SurvivorRatio=3 -XX:PermSize=128m -XX:MaxPermSize=292m -XX:+UseParNewGC -XX:+UseTLAB -XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+PrintTenuringDistribution
Adding the link to gc logs below. please provide any guidance on what should i be looking at.
Thanks
Upvotes: 2
Views: 374
Reputation: 8379
Survivor space 100% is generally ok (ideally it should be just little below 100%).
These two articles could you basic ideas about mechanics of generational GC and CMS
Getting back to your question.
You have class unloading enabled (XX:+CMSClassUnloadingEnabled
) this means following.
If PERM gen usage is close to its limit (say 90%), which is perfectly ok for PERM, CMS collection will be started. And if there are no classes to unload, CMS cycle will not free any space in PERM and next CMS collection will be triggers right after.
To put simple, if PERM is filled close to its capacity - concurrent collections will run non stop.
Upvotes: 1