JVM parameters
- Last Updated: February 11, 2026
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
The most important aspect of tuning your PAS for OpenEdge instance is the JVM stack, heap, and metaspace memory allocations and garbage collection. The memory configuration ultimately determines how many and the type of web applications that can be deployed on the PAS for OpenEdge instance and the number of clients that the instance can support for those web applications.
PAS for OpenEdge process memory and garbage collection are a critical part of your tuning strategy. PAS for OpenEdge instances perform poorly when either the heap or metaspace memory regions run low on space. To keep memory available to the JVM, its garbage collector must run periodically to reclaim unused space. Each time the garbage collector runs, it stops all of the other JVM threads such as client HTTP request execution threads.
- Large amounts of unusable memory may accumulate.
- The collection process takes longer and results in spikes in client response times.
- You lose CPU cycles while checking the entire memory space.
- Client response times grow longer due to constant CPU drain by garbage collection cycles.
The goal is to ensure that PAS for OpenEdge has sufficient heap and metaspace memory allocated to handle the loading of web applications, web application memory allocations, and concurrent client requests to reduce garbage collection processing time.
The properties that influence memory consumption include:
- The number and type of web applications deployed
- The size of the HTTP request thread pool
- The number of concurrent requests and the data size of those requests
The following JVM parameters configured in the instance-name/conf/jvm.properties file are relevant in determining memory and garbage collection limits:
| Property | Default | Description |
|---|---|---|
-Xms<size> |
512m |
Initial Java heap size |
-Xmx<size> |
1024m |
Maximum Java heap size |
-Xss<size> |
1024k |
Java thread stack size |
-XX:NewSize |
64m |
Initial space used for short duration objects and indirectly how often garbage collection runs |
-XX:MaxNewSize |
64m |
Maximum space used for short duration objects |
-XX+DisableExplicitGC |
Disable explicit garbage collection | |
-XX:MetaspaceSize |
unlimited |
Initial Metaspace size. |
Tuning tips
- Reduce the frequency of garbage collection by starting the JVM with a
larger maximum heap memory space (
-Xmx). - Reduce repeated reallocation of heap memory by setting the initial heap
memory space equal to the maximum amount (
-Xms == -Xmx). - Reduce repeated reallocation of metaspace memory by setting the initial
size equal to the maximum size (
-XX:MetaspaceSize == -XX:MaxMetaspaceSize). - Carefully lower the JVM stack size (
-Xss) to save process memory for heap and metaspace allocations. - Increase metaspace memory when an instance stops due to an out-of-metaspace error.