Additional JEPS 8182070 requirement: avoiding container OOM
Glyn Normington
gnormington at pivotal.io
Mon Nov 13 09:30:05 UTC 2017
I would like to mention an additional requirement for JEPS 8182070 (
http://openjdk.java.net/jeps/8182070): avoid the JVM hitting container OOM
by strictly bounding the amount of (physical) memory that the JVM consumes.
This may be implicit in the document, but I think it should be made an
explicit goal.
If a java application hits container OOM, no detailed diagnostics, such as
those associated with an OutOfMemoryError or a JVMTI resource exhaustion
event, are presented to the user, so the user finds it very difficult to
know how to fix the problem.
The Cloud Foundry OSS project has done quite a bit of work on this problem
and provides a couple of utilities which help when running a JVM in a
container:
* Java memory calculator ([1], [2]) to determine JVM memory settings,
* jvmkill JVMTI agent ([3]) to report detailed diagnostics on a resource
exhaustion event.
Regards,
Glyn
[1] https://github.com/cloudfoundry/java-buildpack-memory-calculator
[2] Design doc:
https://docs.google.com/document/d/1vlXBiwRIjwiVcbvUGYMrxx2Aw1RVAtxq3iuZ3UK2vXA/edit#heading=h.uy41ishpv9zc
[3] https://github.com/cloudfoundry/jvmkill
More information about the hotspot-dev
mailing list