42.4.3. コンテナー内のすべての JVM プロセスが適切に設定されていることを確認する
複数の JVM が同じコンテナーで実行される場合、それらすべてが適切に設定されていることを確認する必要があります。多くのワークロードでは、それぞれの JVM に memory budget のパーセンテージを付与する必要があります。 これにより大きな安全マージンが残される場合があります。
多くの Java ツールは JVM を設定するために各種の異なる環境変数 (JAVA_OPTS
、GRADLE_OPTS
、MAVEN_OPTS
など) を使用します。 適切な設定が適切な JVM に渡されていることを確認するのが容易でない場合もあります。
JAVA_TOOL_OPTIONS
環境変数は常に OpenJDK によって使用され、JAVA_TOOL_OPTIONS
で指定される値は JVM コマンドラインで指定される他のオプションによって上書きされます。デフォルトで、OpenShift Container Platform Jenkins maven スレーブイメージ は JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true"
を設定してこれらのオプションがスレーブイメージで実行されるすべての JVM ワークロードに対してデフォルトで使用されるようにします。これは、追加のオプションが不要になることを保証する訳ではありませんが、開始時には役立ちます。