Jenkins가 Windows에서 서비스로 시작될 때 더 많은 힙 공간을 제공하는 방법은 무엇입니까?


답변:


90

Jenkins 설치 디렉토리에는 다양한 옵션을 설정할 수있는 jenkins.xml이 있습니다. 인수 태그에 원하는 크기로 매개 변수 -Xmx를 추가하십시오 (또는 이미있는 경우 크기를 늘리십시오).



내 질문은 : 빌드에 메모리가 부족한 경우 왜 마스터에서 Java 옵션을 설정해야합니까?
yarin

1
해서는 안됩니다. 그러나이 질문은 메모리가 부족한 빌드에 관한 것이 아니라 마스터의 메모리 부족에 관한 것이 었습니다.
dunni

Ubuntu 16.04.6 LTS부터는 그러한 파일이 없습니다. /etc/default/jenkins아래에서 Steve가 제공 하는 솔루션이 저에게 적합한 솔루션입니다.
insideClaw

110

Aptitude (apt-get)를 사용하여 Ubuntu 12.04에 Jenkins를 설치 JAVA_ARGS한 경우 맨 위 몇 줄의 주석 처리를 제거합니다 /etc/default/jenkins.

# arguments to pass to java
#JAVA_ARGS="-Xmx256m"   # <--default value
JAVA_ARGS="-Xmx2048m"
#JAVA_ARGS="-Djava.net.preferIPv4Stack=true" # make jenkins listen on IPv4 address

3
창문이라면?
Dejell 2014

6
질문에 특히 Windows가 나와 있습니다.
Nick Udell 2014

6
그래, 나는 내가 무엇을하고 있는지 알기 전에이 대답을 썼고, 너무 많은 찬성표를 얻은 것에 놀랐습니다. 아마도 저처럼 많은 사람들이 검색 엔진을 통해이 질문에 대한 길을 찾고 있으며 그 중 더 많은 사람들이 Linux 또는 Unix를 사용하고 있습니까? 이해가 안 돼요.
Steve HHH

8
"아마도 저처럼 많은 사람들이 검색 엔진을 통해이 질문에 접근하고 있으며, 그 중 더 많은 사람들이 Linux 또는 Unix를 사용하고 있습니까? 이해가 안 돼요." 그게 바로 내가 찾은 방법입니다.
스콧

1
다시 시작 젠킨스 서비스를 잊지 마세요sudo service jenkins stop sudo service jenkins start
카밀로 실바에게

74

jenkins.xml 파일 을 수정해야 합니다. 특히 변경해야합니다.

   <arguments>-Xrs -Xmx256m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

    <arguments>-Xrs -Xmx2048m -XX:MaxPermSize=512m 
    -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
    -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

또한 젠킨스가 설치하여 사용하고있는 Java 옵션을 확인할 수 있습니다 젠킨스는 플러그인 모니터 를 통해이 젠킨스 관리 / 플러그인을 관리 하고 탐색 젠킨스 관리 / 허드슨의 모니터링 / 젠킨스 마스터 젠킨스 사용할 수 있습니다 얼마나 많은 메모리를 결정하기 위해 모니터링을 사용 할 수 있습니다.

Jenkins가 Maven을 호출 할 때 메모리 부족 오류가 발생하면 Jenkins 관리 / 시스템 구성을 통해 MAVEN_OPTS를 설정해야 할 수 있습니다 ( 예 : JDK 1.8 이전의 Java 버전에서 실행중인 경우 (값은 제안 사항 임)).

-Xmx2048m  -XX:MaxPermSize=512m

JDK 1.8을 사용하는 경우 :

-Xmx2048m

위에서 설명한대로 JENKINS_JAVA_OPTIONS를 설정하려고하면 "Starting Jenkins Unrecognized option : --XX : MaxPermSize = 512m"
nemoo

2
하이픈은 하나만 있어야합니다 -XX:MaxPermSize=512m.-위의 응답은이 오타를 수정하기 위해 수정되었습니다.
Adam Rofer 2012-08-23

1
Windows에서 JENKINS_JAVA_OPTIONS를 설정하는 방법을 아십니까?
ATOzTOA 2013 년

Windows에서 jenkins.361315.n4.nabble.com/… 에 따르면 제어판-> 시스템-> 고급-> 환경 변수
Mark Butler

1
-XX:MaxPermSize더 이상 자바 8 이상 사용되지 stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
미샤 Wiedenmann

24

내가 추가 한 을 / etc / SYSCONFIG / 젠킨스 (CentOS는)

# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m"

우분투의 경우 동일한 구성이 / etc / default 에 있어야합니다.


16

Jenkins 위키에서 :

이러한 Windows 서비스의 JVM 시작 매개 변수는 각각 XML 파일 jenkins.xml 및 jenkins-slave.xml에 의해 제어됩니다. 이러한 파일은 Windows 서비스로 설치 한 후 각각 $ JENKINS_HOME 및 슬레이브 루트 디렉터리에서 찾을 수 있습니다.

파일 형식은 자명해야합니다. 예를 들어 JVM에 더 큰 메모리를 제공하기 위해 인수를 조정하십시오.

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service


-1

Jenkins 템플릿 을 사용하는 경우 추가 VM 설정이 정의되어있을 수 있으며 이는 시스템 VM 설정과 충돌 할 수 있습니다.

예를 들어 tempalate는 다음과 같은 참조를 가질 수 있습니다.

 <mavenOpts>-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=1024m -Dmaven.test.failure.ignore=false</mavenOpts> 

이러한 템플릿 항목을 시스템의 VM 설정에 맞춰야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.