---
title: The memoryoptions utility
description: Where to find the memoryoptions utility in a PingFederate installation and how the utility's expected behavior differs in a Linux or Windows system.
component: pingfederate
version: 13.0
page_id: pingfederate:performance_tuning_guide:pf_memoryoptions_utility
canonical_url: https://docs.pingidentity.com/pingfederate/13.0/performance_tuning_guide/pf_memoryoptions_utility.html
revdate: June 13, 2023
section_ids:
  installation-and-upgrade: Installation and upgrade
  related-links: Related links
---

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

## Related links

* [memoryoptions and installation](pf_memoryoptions_install.html)

* [memoryoptions and upgrade](pf_memoryoptions_upgrade.html)
