eclipse-openj9 / openj9-docs

Source repository for the Eclipse OpenJ9 user documentation, which should be viewed [online]https://www.eclipse.org/openj9/docs/
Other
51 stars 71 forks source link

CRIU: Heap Resiszing on restore #1375

Closed tajila closed 2 weeks ago

tajila commented 1 month ago

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:

tajila commented 1 month ago

More details here: https://github.com/eclipse-openj9/openj9/issues/18217#issuecomment-1790807574

Sreekala-Gopakumar commented 3 weeks ago

@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 commented 3 weeks ago

@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

Sreekala-Gopakumar commented 3 weeks ago

@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?

tajila commented 3 weeks ago

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.

Sreekala-Gopakumar commented 2 weeks ago

@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!

Sreekala-Gopakumar commented 2 weeks ago

@tajila - Could you please clarify. Thanks!

tajila commented 2 weeks ago

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.