4.3.4. 使用法


4.3.4.1. メモリーの要件

JVM はすべての Jenkins エージェントで使用され、Jenkins JNLP エージェントをホストし、Java アプリケーション (javac、Maven または Gradle など) を実行します。Jenkins エージェントが使用する JVM のチューニングに関する参考情報は、Sizing OpenJDK on OpenShift Container Platform を参照してください。

メモリー効率のために、メモリー制限が 2GiB 未満のコンテナーで実行されている場合、デフォルトで Jenkins イメージは 32 ビット JVM を動的に使用します。この動作は、OPENSHIFT_JENKINS_JVM_ARCH 環境変数で上書きできます。JVM の選択は、デフォルトで JenkinsJNLP エージェントとエージェントコンテナー内の他の Java プロセスの両方に適用されます。

デフォルトで、Jenkins JNLP エージェントの JVM は、ヒープにコンテナーメモリー制限の 50% を使用します。この値は、CONTAINER_HEAP_PERCENT の環境変数で変更可能です。また、上限を指定することも、すべて上書きすることも可能です。詳細は、Environment Variables を参照してください。

デフォルトでは、パイプラインから実行されるシェルスクリプトや oc コマンドなど、Jenkins エージェントコンテナーで実行される他のすべてのプロセスでは、OOM kill を引き起こさずに、残りの 50% のメモリー制限を超えるメモリーを使用することはできません。

デフォルトでは、Jenkins エージェントコンテナーで実行される他の各 JVM プロセスは、最大でコンテナーメモリー制限の 25% をヒープに使用します。これは、多くのビルドワークロード用にチューニングする必要がある場合があります。詳細は、Sizing OpenJDK on OpenShift Container Platform を参照してください。

Jenkins エージェントコンテナーのメモリー要求や制限の指定に関する情報は、Jenkins ドキュメント を参照してください。

4.3.4.1.1. Gradle ビルド

OpenShift の Jenkins エージェントで Gradle ビルドをホストすると、Jenkins JNLP エージェントおよび Gradle JVM に加え、テストが指定されている場合に Gradle が 3 番目の JVM を起動してテストを実行するので、さらに複雑になります。

OpenShift での JVM のチューニングに関する参考情報は、Sizing OpenJDK on OpenShift Container Platform を参照してください。

以下の設定は、OpenShift でメモリーに制約がある Jenkins エージェントの Gradle ビルドを実行する場合の開始点として推奨されます。必要に応じて、後で設定を緩和することができます。

  • gradle.properties ファイルに org.gradle.daemon=false を追加して、有効期間の長い gradle デーモンが無効になっていることを確認します。
  • org.gradle.parallel=true が gradle.properties ファイルに設定されておらず、--parallel がコマンドライン引数として設定されていないことを確認して、並列ビルドの実行を無効にします。
  • java { options.fork = false } を build.gradle ファイルに設定して、Java コンパイルがプロセス以外で実行されるのを防ぎます。
  • build.gradle ファイルで test { maxParallelForks = 1 } が設定されていることを確認して、複数の追加テストプロセスを無効にします。
  • Sizing OpenJDK on OpenShift Container Platform に従い、GRADLE_OPTS, JAVA_OPTS または JAVA_TOOL_OPTIONS の環境変数で、gradle JVM メモリーパラメーターを上書きします。
  • build.gradle の maxHeapSize および jvmArgs 設定によって、または -Dorg.gradle.jvmargs コマンドライン引数を使用して、Gradle テスト JVM の最大ヒープサイズおよび JVM 引数を設定します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.