openj9-docs
openj9-docs copied to clipboard
CRIU: Heap Resiszing on restore
Issue or pull request number: https://github.com/eclipse-openj9/openj9/issues/18217
Overview: Describe the external change and the impact/benefit from a user perspective.
Release target: Eclipse OpenJ9 0.46.0
Applies to the following JDK versions: E.g. 11 and later
Applies to the following platforms: Linux X|P|Z|A
For new command line options:
- Option name and syntax: -XdynamicHeapAdjustment
- If values are set:
- None
- Purpose:
- This option turns on a JVM capaiblity that autimatically adjusts Xmx and Xms such that they are withinn the bounds for the physical memory limitations on the system.
- Restrictions:
- Can only be used with
-XX:+EnableCRIUSuport
- Can only be used with
More details here: https://github.com/eclipse-openj9/openj9/issues/18217#issuecomment-1790807574
@tajila - Is there an option to turn off this JVM capability? i.e. turning off automatic adjustment of Xmx and Xms such that they are within the bounds for the physical memory limitations on the system?
@tajila - Is there an option to turn off this JVM capability? i.e. turning off automatic adjustment of Xmx and Xms such that they are within the bounds for the physical memory limitations on the system?
By default its turned off
@tajila - Is there an option to turn off this JVM capability? i.e. turning off automatic adjustment of Xmx and Xms such that they are within the bounds for the physical memory limitations on the system?
By default its turned off
I meant after we turn it on with the -XdynamicHeapAdjustment option, how do we turn it off?
I meant after we turn it on with the -XdynamicHeapAdjustment option, how do we turn it off?
There is no way to turn it off in this case.
@tajila
When -Xmx or -Xms is set to be too large, it can cause a few problems or even errors. We provide a new option -XdynamicHeapAdjustment here. It aims to auto adjust the system and avoid potential problems caused by -Xmx or -Xms being too large.
In this what auto adjustment is done in the system?
If -Xmx or -Xms is specified together with -XdynamicHeapAdjustment: We will do the best to avoid any kind of error caused by either -Xmx or -Xms being too large. For example: if the machine has 8GB memory but -Xmx12G, then we will still use implicit softmx 6G as default heuristics give.
What is meant by "..do the best"? How does the system avoid the error caused by the values being too large?
What is the meaning of "use implicit softmx 6G as default heuristics give."?
Thanks!
@tajila - Could you please clarify. Thanks!
In this what auto adjustment is done in the system?
Yes, more specifically auto adjustment will pick a size for Xmx and Xms that will be within the bounds of available memory on the system. Typically, this will be 75% of available memory.
What is meant by "..do the best"? How does the system avoid the error caused by the values being too large?
It means what is stated above. There are some cases where the JVM cannot adjust enough. For example, this can ocur when the JVM heap pre-checkpoint is expanded beyond the memory that is available in the restore environment. In this there is nothing the JVM can do. So it is a best effort policy.
What is the meaning of "use implicit softmx 6G as default heuristics give."?
The -XdynamicHeapAdjustment regulates the size of the heap is by using softmx to put an upper bounds on the heap. So the implicit softmx is just -XdynamicHeapAdjustment in action.