---
title: Determining the CMSInitiatingOccupancyFraction
description: Use the terminal to determine the CMSInitiatingOccupancyFraction value.
component: pingdirectory
version: 10.1
page_id: pingdirectory:pingdirectory_server_administration_guide:pd_ds_determine_cmsinitiatingoccupancyfraction
canonical_url: https://docs.pingidentity.com/pingdirectory/10.1/pingdirectory_server_administration_guide/pd_ds_determine_cmsinitiatingoccupancyfraction.html
revdate: September 13, 2023
section_ids:
  steps: Steps
  example: Example:
  example-2: Example:
  result: Result:
  example-3: Example:
  result-2: Result:
  example-4: Example:
  example-5: Example:
---

# Determining the CMSInitiatingOccupancyFraction

Use the terminal to determine the `CMSInitiatingOccupancyFraction` value.

## Steps

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

   ### Example:

   ```shell
   $ 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:

   ```shell
   $ 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:

      ```shell
      $ 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:

   ```shell
   $ bin/dsjavaproperties
   ```

7. Restart the PingDirectory server.
