PingDirectory

Determining the CMSInitiatingOccupancyFraction

Use the terminal to determine the CMSInitiatingOccupancyFraction value.

Steps

  1. Retrieve the prime-method property for the backend.

    Example:

    $ bin/dsconfig get-backend-prop --backend-name userRoot \
      --property prime-method

    If you set the Preload Database at startup option during the installation, then skip to step 3.

  2. If the prime-method property was not configured, run bin/dsconfig to set the property to PRELOAD, and then restart the PingDirectory server to preload the database cache.

    Example:

    $ bin/dsconfig set-backend-prop --backend-name userRoot \
      --set prime-method:preload
    
    $ bin/stop-server
    $ bin/start-server

    Result:

    At startup, you see an administrative message if the current CMSInitiatingOccupancyFraction property is below the recommended value.

    You can get the recommended value from this message and change it in the config/java.properties file in step 5.

  3. If you were unable to see the recommended CMSInitiatingOccupancyFraction property at startup presented in the previous step, pre-tune the value of the CMSInitiatingOccupancyFraction property to ensure that all of the data is imported into the server and preloading is enabled in the backend.

    1. Retrieve the recommended CMSInitiatingOccupancyFraction value by issuing the following search.

      Example:

      $ bin/ldapsearch --baseDN "cn=monitor" \
        "(objectclass=ds-memory-usage-monitor-entry)" \
        cms-initiating-occupancy-fraction \
        recommended-cms-initiating-occupancy-fraction-for-current-data-set

      If the recommended-cms-initiating-occupancy-fraction-for-current-data-set is not present, then make sure that the server has been restarted since enabling preload for the backends.

      Result:

      dn: cn=JVM Memory Usage,cn=monitor
      cms-initiating-occupancy-fraction:80
      recommended-cms-initiating-occupancy-fraction-for-current-data-set:55
  4. Open the config/java.properties file using a text editor and manually edit the CMSInitiatingOccupancyFraction property (or any other property) to its recommended value in the start-server.java-args property.

  5. Save the file.

    The following arguments are recommended for a Sun 5440 server. Contact your authorized support provider for specific assistance.

    Example:

    start-server.java-args=-d64 -server -Xmx20g -Xms20g -XX:MaxNewSize=1g
    -XX:NewSize=1g -XXParallelGCThreads=16 -XX:+UseConcMarkSweepGC
    -XX:+CMSConcurrentMTEnabled -XX:+CMSParallelRemarkEnabled
    -XX:+CMSParallelSurvivorRemarkEnabled -XX:ParallelCMSThreads=8
    -XX:CMSMaxAbortablePrecleanTime=3600000
    -XX:+CMSScavengeBeforeRemark -XX:RefDiscoveryPolicy=1
    -XX:CMSInitiatingOccupancyFraction=55 -XX:+UseParNewGC
    -XX:+UseBiasedLocking -XX:+UseLargePages
    -XX:+HeapDumpOnOutOfMemoryError

    The -XX:ParallelGCThreads should be limited to 16 (default) or to 8 for smaller systems. The -XX:ParallelCMSThreads should be limited to 8.

  6. To apply the changes, run the bin/dsjavaproperties command.

    Example:

    $ bin/dsjavaproperties
  7. Restart the PingDirectory server.