PingDirectory

Automatic memory allocation for the command-line tools

At setup, the PingDirectory server automatically allocates memory to each command-line utility based on the maximum Java Virtual Machine (JVM) heap size.

The server sets each command-line utility in the config/java.properties file with -Xmx/Xms values, depending on the expected memory needs of the tools.

Because some tools can be invoked as a server task while the server is online, there are two definitions of the tool in the config/java.properties file:

.Online

Typically requires minimal memory because the task is performed within the PingDirectory server’s JVM.

.Offline

Can require the same amount of memory needed by the server. Examples include import-ldif.offline and rebuild-index.offline.

With large databases, some tools, such as ldap-diff and verify-index, might need more than the minimal memory. The following table lists the tools that are expected to have more than the minimal memory needs along with the rules for defining the default heap size.

Default Memory Allocation to the Command-Line Tools
Command-Line Tools Allocated JVM Memory

start-server, import-ldif (offline), rebuild-index (offline)

MaxHeapSize

backup (offline), dbtest export-ldif (offline), ldap-diff, restore (offline), scramble-ldif, summarize-access-log, verify-index

If Max System Memory is:

  • Greater than or equal to 16 GB: set heap to 3 GB

  • Greater than or equal to 8 GB: set heap to 1 GB

  • Greater than or equal to 4 GB: set heap to 512 MB

  • Under 4 GB: set heap to 256 MB