PingFederate Server

The memoryoptions utility

Where to find the memoryoptions utility in a PingFederate installation and how the utility’s expected behavior differs in a Linux or Windows system.

PingFederate installation and upgrade tools use the memoryoptions utility to record the default options for the Java heap and the garbage collector (GC) in a configuration file. Regardless of available memory, PingFederate uses the Garbage-First (G1) GC. The script assumes that PingFederate will be the only service on the server and consume a majority of the memory. As needed, administrators can re-run the utility or manually edit the configuration file.

The memoryoptions utility, located in the <pf_install>/pingfederate/bin directory, comes in two variants:

  • memoryoptions.bat for Windows

  • memoryoptions.sh for Linux

The configuration file, jvm-memory.options, is located in the same bin directory.

You should not use the memoryoptions script when you deploy PingFederate inside of a container. Instead, you should edit the jvm-memory.options file directly. In containers, you should use the InitialRAMPercentage and MaxRAMPercentage JVM options to control the size of the heap.

Installation and upgrade

When the PingFederate installer is executed for Windows or a subsequent rerun of the memoryoptions utility, it creates a backup copy of the current jvm-memory.options and records the G1GC options in the jvm-memory.options file. Changes made as a result of the execution of the utility or a manual edit are activated after a restart of PingFederate.

Depending upon the selected tool and whether the jvm-memory.options file exists in the source installation, the expected behavior of the memoryoptions utility differs. In general, the jvm-memory.options file from the source installation is preserved without new recommended values.