Skip to main content
ComponentsEngine
Availability2022.1 or later
Engine Memory Configuration Each GermainUX Engine runs in a dedicated Java Virtual Machine. You can adjust its heap allocation from the GermainUX Workspace when the Engine requires more or less memory. Increase the heap only after confirming that the Engine is memory-constrained and that its host has sufficient available RAM.

When to change Engine memory

Signs heap needs increasing

Minimum and maximum heap

Set Xms and Xmx

Validate the change

Confirm restart and heap

Troubleshooting

Heap and host memory issues

When to change Engine memory

Consider increasing the Engine heap when:
  • The log contains OutOfMemoryError.
  • The Engine restarts because it exhausts its heap.
  • Garbage collection causes sustained performance degradation.
  • Additional monitoring components substantially increase the workload.
  • GermainUX Support recommends an adjustment.
Do not increase the heap when the host itself is low on memory. In that situation, move components or Engines to another host or add Engine capacity.

Update the memory setting

In the GermainUX Workspace:
  1. Open Germain > State.
  2. Select the Engines view.
  3. Search for the Engine you want to modify.
  4. Select the Engine.
  5. Locate its JVM options or memory setting.
  6. Update the maximum heap value: -Xmx<size>
  7. Save the configuration.
  8. Select Restart this Engine.
  9. Wait for the Engine to return to a running state.
Examples:
The Engine must restart before the new JVM memory setting takes effect.

Minimum and maximum heap

The two primary memory settings are: Example:
-Xms does not need to equal -Xmx. Increase the initial heap only when the Engine workload and JVM behavior justify it. Do not configure -Xmx higher than the physical memory available to the Engine after accounting for:
  • Operating-system memory
  • Engine Manager memory
  • Other Engine instances
  • Native JVM memory
  • Monitoring tools
  • Database drivers and native libraries
  • Other applications running on the host

Default JVM parameters

A standard Engine configuration may include:
The exact defaults may differ by Engine and Java version. Preserve package-supplied options unless you have a documented reason to change them.

Validate the change

After the Engine restarts, confirm that:
  • The Engine returns to a running state.
  • Its heartbeat appears in Germain > State.
  • The process command line contains the new -Xmx value.
  • Monitoring components resume execution.
  • New telemetry reaches GermainUX.
  • No invalid JVM-option error appears.
  • No new memory pressure appears at the host level.
Review the Engine log and effective process command line to verify the applied value.

Monitor the result

After increasing memory, monitor:
  • JVM heap utilization
  • Garbage-collection activity
  • Host physical-memory usage
  • Swap or paging activity
  • Engine CPU utilization
  • Engine restarts
  • Component execution time
  • Local state-store growth
If the Engine remains constrained, determine whether a particular monitoring component is consuming excessive resources. Possible corrective actions include:
  • Moving components to another Engine
  • Moving an Engine to another host
  • Deploying additional Engine hosts
  • Reducing unnecessary execution frequency
  • Correcting a component that retains excessive memory
  • Increasing host capacity

Troubleshooting

Engine does not start after the change

Check for:
  • Invalid JVM syntax
  • Unsupported JVM options
  • A heap value larger than available memory
  • Duplicate or conflicting -Xmx settings
  • Incorrect units
  • Java-version compatibility
Restore the previous working value and restart the Engine.

The new value is not applied

Confirm that:
  • You modified the correct Engine.
  • The configuration was saved.
  • The Engine was restarted.
  • Another configuration source does not override the setting.
  • The effective process command line contains only one -Xmx value.

The Engine still reports out-of-memory errors

Verify that:
  • The new heap value was applied.
  • The host has enough physical memory.
  • The workload is appropriate for the Engine.
  • No component has a memory leak or unusually high demand.
  • Multiple Engines are not competing for the same host memory.
  • Native memory—not only Java heap—is not exhausted.
Do not continue increasing the heap indefinitely. Redistribute the workload or investigate the affected component when memory consumption remains abnormal.

Get Help

Contact GermainUX Support

The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

Can't find what you need?

Search all GermainUX docs with Ctrl + K, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.