41.4.3. 确保在容器中正确配置所有 JVM 进程
如果多个 JVM 在同一容器中运行,则必须保证它们的配置都正确无误。如果有许多工作负载,需要为每个 JVM 分配一个内存预算百分比,留出较大的额外安全裕度。
许多 Java 工具使用不同的环境变量(JAVA_OPTS
、GRADLE_OPTS
和 MAVEN_OPTS
等)来配置它们的 JVM,或许难以确保将正确的设置传递给正确的 JVM。
OpenJDK 始终尊重 JAVA_TOOL_OPTIONS
环境变量,在 JAVA_TOOL_OPTIONS
中指定的值会被 JVM 命令行中指定的其他选项覆盖。默认情况下,OpenShift Container Platform Jenkins maven slave image 设置 JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true"
,确保在默认情况下,这些选项会为在 slave 镜像中运行的所有 JVM 工作负载使用。这不能保证不需要额外选项,只是用作一个实用的起点。