Why does MaxRAMPercentage stop working at heaps of ~ 30 GB?

The other day at work a Clojure program on a machine with 100 GB ran into OutOfMemory errors. A quick look at the metrics showed that the heap was only at about 30 GB though. Checking the JVM flags I found a configuration that is commonplace: -XX:MaxRAMPercentage=80 So one would assume that the JVM could have sized the heap much larger than it actually did. Thanks to docker this behavior can be observed quite easily by doing a few tests like this one: [Read More]
jvm  heap  memory