-
Bug
-
Resolution: Done
-
Minor
-
None
-
None
-
False
-
-
False
-
JAVA_CORE_LIMIT is an undocumented user-configurable environment variable that overrides the calculated CONTAINER_CORE_LIMIT for a running container (so long as it is set to a lower value).
This influences the setting of (at least) these JVM arguments
-XX:ParallelGCThreads=${core_limit} -Djava.util.concurrent.ForkJoinPool.common.parallelism=${core_limit} -XX:CICompilerCount=2
See OPENJDK-78 for an example of its (ab)use, and CLOUD-1524 for some history.
At the very least we should document this variable but I think instead we should just remove it, as it adds to the significant complexity of our runtime scripts. If the user wishes to set a CPU limit for a running container, then their container runtime gives them the tools to do so: docker/podman have --cpu and --cpu-share arguments, which are translated into cgroups settings, and of course OpenShift has similar.