---
title: memoryoptions and installation
description: When the PingFederate installer for Windows runs the memoryoptions utility tool or when changes are made from a manual edit, expect the following behaviors to the installation medium.
component: pingfederate
version: 13.0
page_id: pingfederate:performance_tuning_guide:pf_memoryoptions_install
canonical_url: https://docs.pingidentity.com/pingfederate/13.0/performance_tuning_guide/pf_memoryoptions_install.html
revdate: June 13, 2023
---

# memoryoptions and installation

When the PingFederate installer for Windows runs the `memoryoptions` utility tool or when changes are made from a manual edit, expect the following behaviors to the installation medium.

The PingFederate installer for Windows runs the `memoryoptions` utility in an attempt to optimize the Java virtual machine (JVM) heap. Regardless of available memory, PingFederate uses the Garbage-First (G1) garbage collector (GC). The script assumes that PingFederate will be the only service on the server and consume a majority of the memory.

The G1GC is designed to achieve high throughput while meeting its pause times goal for garbage collection, and the collector self-tunes by adjusting the size and nature of the various heap regions to meet the pause time goal. As needed, administrators can rerun the utility or manually edit these options at a later time.

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.

|   |                                                                                                                                                                                                                                                                                                 |
| - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | 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. |

See the following table for information regarding expected behaviors.

**PingFederate installation mediums and their expected behaviors from the execution of the memoryoptions utility tool**

| Installation medium                        | Expected behavior                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| PingFederate installer for Windows         | * The installer creates a new PingFederate installation.

* The installer runs the `memoryoptions` utility. Regardless of available memory, PingFederate uses the G1GC as a default. The script assumes that PingFederate will be the only service on the server and consume a majority of the memory.

* The installer configures PingFederate to run as a service.

* The `memoryoptions` options are activated as the PingFederate service starts.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| PingFederate product distribution ZIP file | The default `jvm-memory.options` file becomes part of the new installation as program and default configuration files are extracted from the PingFederate product distribution `.zip` file.* PingFederate as a console application on Windows *or* as a console application or a service on Linux

  * The JVM options set in the default jvm-memory.options file are activated as PingFederate starts.

  * The default JVM options are conservative. For most deployment scenarios using various physical or virtual resources, run the `memoryoptions` utility. Regardless of available memory, PingFederate uses the G1GC. The script assumes that PingFederate will be the only service on the server and consume a majority of the memory.

  * As a result of the execution of the memoryoptions utility or a manual edit of the jvm-memory.options file, the JVM options are activated as PingFederate restarts.

* PingFederate as a service on Windows

  * When administrators run the PingFederate service-installation program `install-service.bat`, located in the `<pf_install>/pingfederate/sbin/win-x86-64` directory, to install the PingFederate Windows service manually, the program runs the `memoryoptions` utility. Regardless of available memory, PingFederate uses the G1GC. The script assumes that PingFederate will be the only service on the server and consume a majority of the memory. The service-installation program then runs a helper utility `generate-wrapper-jvm-options.bat`, located in the `<pf_install>/pingfederate/sbin/wrapper` directory, to read the JVM options from the `jvm-memory.options` file and create a resource file that the PingFederate Windows service requires to configure its JVM options

  * The default JVM options are activated as the PingFederate service starts. |
