Our application is on Weblogic 9.2.2 and runs on Solaris 10 (32 bit). Below is the weblogic startup configurations for Memory Arguments,
MEM_ARGS="-XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=8 -XX:PermSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -Xms2048M -Xmx2048M -XX:MaxPermSize=512m -XX:CMSWaitDuration=3000"
Max New Gen Size: 512M
Total Heap : 2G
Max Old Gen : 1.5G
Max Perm Gen: 512M
Even though the max old gen size is 1.5G, we never see it being used more than 1G and GC kicks off whenever Old Gen reaches 1G. Is there any specific reasons for it?
Also is there a way to make complete use of the old gen space about 80-85%?
Please let me know if more information is required.
Do you have verbose:gc enabled? Can you please provide the verbose GC detail before/during/after a Full GC (global collection) so we can clearly see the status of all JVM memory spaces before Full GC collection.
Typically a 2 GB Java Heap space @32-bit will have a 1.5 OldGen space and memory should reach ~ 95% before Full GC. Let's see this process via proper verbose:GC so we can clearly understand what is going on.