Determining heap and database cache size
Define proper memory allocation of the PingDirectory server components using the setup
command.
About this task
To define the proper memory allocation of the PingDirectory server’s components:
Steps
-
Run the
setup
command.This must be done on hardware that represents the target production platform, especially with regard to process and memory, and the largest heap size that the
setup
tool allows. -
To define schema and production database settings for the database import, use the
import-ldif
tool.After running
import-ldif
, the database is at its most optimized state on-disk with no inactive records. Over time, the on-disk representation of the database grows up to 25-50% as inactive records accumulate before being removed by the server’s cleaner thread. -
After the database is imported, start the server and make any needed configuration changes.
Example:
Set the
prime-method
topreload
on theuserRoot
backend configuration. -
Restart the PingDirectory server and watch for a successful preload message.
Choose from:
-
If preloading completes, proceed to step 6.
-
If preloading does not complete, proceed to step 5.
-
-
If preloading does not complete, troubleshoot with the following steps:
-
In the
config/java.properties
file, in thestart-server.java-args
entry, edit the entry to use larger values for-Xmx
and-Xms
arguments. -
Run the following command.
bin/dsjavaproperties
-
Restart the server and proceed to step 6.
-
-
After preload completes, run the
status
command to review the database cache utilization.A fully loaded database needs at least 10-20% cache headroom available for future growth, as in the following example.
Example:
--- JE Environment --- ID : Cache Full : Cache : On-Disk : Alert ---------:------------:--------:---------:------ userRoot : 30% : 1.1 gb : 868.6mb : None
-
Optional: To see the state of the database cache in more detail, run an
ldapsearch
on the backend monitor.In addition to the user configured backends, there might be backends for replication and changelog. The heap is shared among all backends. For information on how the heap amount allocated to each backend is calculated, see Automatic DB cache percentages.