4.3.4. 사용법


4.3.4.1. 메모리 요구 사항

JVM은 모든 Jenkins 에이전트에서 Jenkins JNLP 에이전트를 호스팅하고 Java 애플리케이션(예: javac, Maven 또는 Gradle)을 실행하는 데 사용됩니다. Jenkins 에이전트에서 사용하는 JVM 튜닝 에 대한 배경 정보는 OpenShift Container Platform에서 OpenJDK 를 참조하십시오.

메모리 효율성을 위해 기본적으로 Jenkins 이미지는 2GiB의 메모리 제한이 있는 컨테이너에서 실행되는 경우 32비트 JVM을 동적으로 사용합니다. 이 동작은 OPENSHIFT_JENKINS_JVM_ARCH 환경 변수로 재정의할 수 있습니다. JVM 선택은 기본적으로 Jenkins JNLP 에이전트와 에이전트 컨테이너 내의 다른 모든 Java 프로세스에 적용됩니다.

기본적으로 Jenkins JNLP 에이전트 JVM은 힙에 대해 컨테이너 메모리 제한의 50%를 사용합니다. 이 값은 CONTAINER_HEAP_PERCENT 환경 변수를 통해 수정할 수 있습니다. 상한값으로 제한하거나 완전히 재정의할 수도 있습니다. 자세한 내용은 환경 변수 를 참조하십시오.

기본적으로 Jenkins 에이전트 컨테이너에서 실행되는 기타 모든 프로세스(예: 파이프라인에서 실행되는 쉘 스크립트 또는 oc 명령은 OOM 종료를 프록시하지 않고 남은 50%의 메모리 제한을 초과할 수 없음을 고려할 수 있습니다.

기본적으로 Jenkins 에이전트 컨테이너에서 실행되는 각 JVM 프로세스는 힙에 대해 컨테이너 메모리 제한의 최대 25%를 사용합니다. 많은 빌드 워크로드에 대해 이 값을 조정해야 할 수도 있습니다. 자세한 내용은 OpenShift Container Platform에서 OpenJDK 를 참조하십시오.

Jenkins 에이전트 컨테이너의 메모리 요청 및 제한에 대한 정보는 Jenkins 문서 를 참조하십시오.

4.3.4.1.1. gradle 빌드

OpenShift의 Jenkins 에이전트에서 Gradle 빌드를 호스트하면 Jenkins JNLP 에이전트 및 Gradle JVM 외에도 이러한 에이전트가 지정된 경우 테스트를 실행하는 세 번째 JVM이 생성되기 때문에 최소한 추가적인 문제가 발생하지 않습니다.

OpenShift에서 JVM 튜닝에 대한 배경 정보는 OpenShift Container Platform에서 OpenJDK 를 참조하십시오.

다음 설정은 OpenShift의 메모리가 제한된 Jenkins 에이전트에서 Gradle 빌드를 실행하기 위한 시작점으로 제안됩니다. 필요에 따라 설정을 완화할 수 있습니다.

  • org.gradle.daemon=false 를 gradle.properties 파일에 추가하여 수명이 긴 gradle 데몬을 비활성화했는지 확인합니다.
  • org.gradle.parallel=true 가 gradle.properties 파일에 설정되지 않았으며 --parallel 이 명령줄 인수로 설정되지 않았음을 확인하여 병렬 빌드 실행을 비활성화합니다.
  • Java 컴파일이 프로세스 외부에서 실행되지 않도록 build.gradle 파일에서 java { options.fork = false } 를 설정합니다.
  • build.gradle 파일에 test { maxParallelForks = 1 } 가 설정되어 있는지 확인하여 여러 추가 테스트 프로세스를 비활성화합니다.
  • GRADLE_OPTS, JAVA_OPTS 또는 JAVA_TOOL_OPTIONS 환경 변수가 있는 OpenShift Container Platform의 OpenJDK 설정에 따라 gradle JVM 메모리 매개변수를 재정의합니다.
  • maxHeapSize 및 jvmArgs 설정을 build.gradle에서 또는 -Dorg.gradle.jvmargs 명령줄 인수를 통해 Gradle 테스트 JVM에 대한 최대 힙 크기 및 JVM 인수를 설정합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.