3 Replies Latest reply on May 22, 2012 10:51 AM by peterj

    GC optimization issue - Pls assist.

      Hi Friends,

          We have an EJB 3.0 application which uses Oracle 10g datasource and is deployed in 2 cluster nodes of EAP 4.3.0 servers. The physical servers are sparc SUNW,SPARC-Enterprise-T5120 (SunOS 5.10). As a GC config we have,

       

      -Xmx1503m -Xms1503m -Xss256k -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -XX:PermSize=128m

      -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0

      -XX:CMSIncrementalDutyCycle=10 -XX:+AggressiveOpts -Dsun.lang.ClassLoader.allowArraySyntax=true

       

      And after running 2 days, the Eden Space does able to collect and the application hangs.

       

      I have attached the GC logs, for your reference.

       

      Pls assist how we can resolve this issue?

       

      Thanks,

      Rakkesh

        • 1. Re: GC optimization issue - Pls assist.

          Sorry I made a typo mistake,

           

          After running for 2 days, from the Visual GC tool we were able to see that the Eden Space does NOT able to recollect.

           

          Thanks,

          Rakkesh

          • 2. Re: GC optimization issue - Pls assist.

            Hi Friends,

                I have attached the Visual GC screenshot during the issue time.

            Thanks,

            RakkeshVisualGC.PNG

            • 3. Re: GC optimization issue - Pls assist.
              peterj

              First, the graphic does not help at all. Second, the GC log you posted isn't that helpful either (the first part of the file is filled with nulls...). Which logging options did you use? Only the -XX:+PrintGCDetails option gives information about the CMS collector. Though if the issue is that you aren't seeing much tenuring of object, then options such as -XX:+PrintHeapAtGC and -XX:+PrintTenuringDistribution might be helpful.

               

              Third, I would avoid the -XX:+AggressiveOpts option, it resets numerous options (possibly overriding things you alreayd set) an is geared more towards performance benchmarks (such a SpecJBB) than towards typical workloads.

               

              Fourth, when you set the CMG collector (-XX:+UseConcMarkSweepGC) it resets numerous options, so you setting for (-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31) are probably all being reset.

               

              Fifth, I would remove these options: (-XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0

              -XX:CMSIncrementalDutyCycle=10). I'm not sure what they do (they are not listed on the JVM options web page and I don't have the time to look them up in the source), but the fact that you don't seem to be getting much tenuring of objects is somewhat suspect.

               

              To understand a little more about the CMS collector, see my "201" white paper at:

              http://www.cmg.org/cgi-bin/search.cgi?q=Peter+Johnson&x=0&y=0