3 Replies Latest reply on Apr 22, 2013 7:40 AM by René van Wijk

    Unable to start application with "-XX:-CMSParallelRemarkEnabled" JVM option

      We are using CMS GC collector in application which is build on JDK1.6_26 version with the following set of JVM parameters:

      -J-server -J-d64 -Xms5g -Xmx5g -J-noclassgc -J-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:NewSize=1536m -XX:MaxGCPauseMillis=2000 -XX:+CMSClassUnloadingEnabled -XX:+PrintTenuringDistribution -XX:CMSInitiatingOccupancyFraction=40 -Xloggc:log/details.pipe -XX:+PrintHeapAtGC -XX:NewRatio=3 -XX:CMSMaxAbortablePrecleanTime=15 -XX:+CMSScavengeBeforeRemark -XX:TargetSurvivorRatio=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:MaxTenuringThreshold=8 -XX:ConcGCThreads=1 -XX:-CMSParallelRemarkEnabled

      However when we start application, following error message is thrown:

      unknown argument '-CMSParallelRemarkEnabled'

      The same flag is mentioned as a workaround in the following java bug:

      and the same flag is mentioned multiple times in the following articles
      http://docs.oracle.com/cd/E19462-01/819-4673/gbpxz/index.html (section: JVM Tuning Parameters)

      Please suggest on how to add this flag with out any error message?

      Thanks a lot,
      Kishore Kadiri

      Edited by: 1001282 on Apr 19, 2013 9:52 PM
        • 1. Re: Unable to start application with "-XX:-CMSParallelRemarkEnabled" JVM option
          Did anyone experience similar issue? any inputs and suggestions for resolving this issue is much appreciated.
          • 2. Re: Unable to start application with "-XX:-CMSParallelRemarkEnabled" JVM option
            Same behavior is observed for “-XX:-CMSPermGenPrecleaningEnabled" JVM CMS gc option, any help on this is much appreciated.
            • 3. Re: Unable to start application with "-XX:-CMSParallelRemarkEnabled" JVM option
              René van Wijk
              No problems here:
              [user@machine1 ~]$ java -server -d64 -Xms1024m -Xmx1024m -XX:NewRatio=3 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -version
              java version "1.7.0_09-icedtea"
              OpenJDK Runtime Environment (rhel-
              OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
              When we put in an option, for example, -XX:SomethingNotRight, it outputs the following:
              [user@machine1 ~]$ java -server -d64 -Xms1024m -Xmx1024m -XX:NewRatio=3 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SomethingNotRight -version
              Unrecognized VM option 'SomethingNotRight'
              Error: Could not create the Java Virtual Machine.
              Error: A fatal exception has occurred. Program will exit.
              Also why are you setting these (-XX:ConcGCThreads=1 -XX:-CMSParallelRemarkEnabled) parameters? Are you running on a machine with a small numbe of CPU's (cores)? If yes it is better to run the CMS collector in incremental mode, for example,
              -server -Xms1024m -Xmx1024m -XX:NewRatio=2 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing
              Note that when running with CMS it is advisory set CMSParallelRemarkEnabled on (-XX:+CMSParallelRemarkEnabled - think this is the default anyway). This enables multiple parallel threads to participate in the remark phase of the CMS algorithm. As this is a stop the world phase it is good practice to use as many cores as possible and thus reducing the time it is stopping.