2013-08-01 2 views
5

환경 : 리눅스/Windows7의 자바 1.6.0.03/37 1.7젠킨스 - java.lang.OutOfMemoryError와 : PermGen 공간 -

나는 나는 jenkins.war을 다운로드하여 초기 설정 후 다음 스크립트/명령을 사용하여 일부 플러그인 (10-15)을 다운로드하고 Jenkins를 다시 시작하려고 시도했지만 작동했습니다. 그런 다음 더 많은 플러그인 (총 30-40 개)을 가지고 있는데 설치 또는 다운로드 + 설치를 선택하면 Jenkins가 나타나지 않습니다.

즉 startJenkins.sh를 사용합니다 (Linux 만 해당). 참고 : Windows7에서 Jenkins는 Windows 서비스로 시작했습니다. 나는 다음과 같은 오류 메시지가 본대로 내가 512분의 128/1024,2048,4096m 등하셨습니까 같은 다양한 값을 시도, 즉시 매개 변수 만 :

#!/bin/bash 
export JAVA_HOME=/production/jenkinsAKS/java/jdk1.6.0_03 
export JENKINS_HOME=/production/jenkinsAKS 
export PATH=${JAVA_HOME}/bin:${PATH} 
export JENKINS_HTTP_PORT=9040 
export JENKINS_AJP13_PORT=9949 
now=`date +%Y%m%d_%H%M%S` 

echo $0 begins ${now} 
echo " java-home=${JAVA_HOME}, jenkins-home=${JENKINS_HOME}, path=${PATH}" 
java -jar ${JENKINS_HOME}/lib/jenkins.war -XX:MaxPermSize=4096m --logfile=${JENKINS_HOME}/log/jenkins.log${now} --httpPort=${JENKINS_HTTP_PORT} --ajp13Port=${JENKINS_AJP13_PORT} & 

처음에 내가 사용 "를 MaxPermSize = 4,096m -XX"하지 않았다 오류로 도움이되지 않습니다.

INFO: Beginning extraction from war file 
Jenkins home directory: /production/jenkinsAKS found at: EnvVars.masterEnvVars.get("JENKINS_HOME") 
Aug 1, 2013 1:17:15 PM winstone.Logger logInternal 
INFO: HTTP Listener started: port=9040 
Aug 1, 2013 1:17:15 PM winstone.Logger logInternal 
INFO: AJP13 Listener started: port=9949 
Aug 1, 2013 1:17:15 PM winstone.Logger logInternal 
INFO: Winstone Servlet Engine v0.9.10 running: controlPort=disabled 
Aug 1, 2013 1:17:16 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Started initialization 
Aug 1, 2013 1:17:16 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Listed all plugins 
Aug 1, 2013 1:17:16 PM hudson.plugins.ansicolor.PluginImpl start 
INFO: AnsiColor: eliminating boring output (https://github.com/dblock/jenkins-ansicolor-plugin) 
Aug 1, 2013 1:17:16 PM org.jvnet.hudson.plugins.backup.BackupPluginImpl loadConfiguration 
INFO: Loading configuration... 
Aug 1, 2013 1:17:16 PM org.jvnet.hudson.plugins.backup.utils.BackupPersistence loadConfig 
INFO: Config file not found. 
Aug 1, 2013 1:17:18 PM ruby.RubyRuntimePlugin start 
INFO: Injecting JRuby into XStream 
Trying to load models from /production/jenkinsAKS/plugins/pathignore/WEB-INF/classes/models 
Loading /production/jenkinsAKS/plugins/pathignore/WEB-INF/classes/models/pathignore_wrapper.rb 
Aug 1, 2013 1:17:26 PM hudson.plugins.greenballs.PluginImpl start 
INFO: Green Balls! 
Aug 1, 2013 1:17:26 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Prepared all plugins 
Aug 1, 2013 1:17:32 PM hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1 error 
WARNING: Failed to instantiate optional component org.jfrog.hudson.ivy.ArtifactoryIvyConfigurator$DescriptorImpl; skipping 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Started all plugins 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Augmented all extensions 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Loaded all jobs 
Aug 1, 2013 1:17:32 PM hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness queueChangeSet 
INFO: Queue of changeset  A hudson.model.UpdateCenter.xml 
aborted (scm manipulator not settled !) 
Aug 1, 2013 1:17:32 PM org.jenkinsci.main.modules.sshd.SSHD start 
INFO: Started SSHD at port 36227 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Completed initialization 
Aug 1, 2013 1:17:32 PM hudson.TcpSlaveAgentListener <init> 
INFO: JNLP slave agent listener started on TCP port 46056 
The following triggers are available for your jobs 
[Trigger] - Build periodically 
[Trigger] - Build when another project is promoted 
[Trigger] - Maven Dependency Update Trigger 
[Trigger] - Poll SCM 
[Trigger] - [BuildResultTrigger] - Monitor build results of other jobs 
[Trigger] - [FSTrigger] - Monitor files 
[Trigger] - [FSTrigger] - Monitor folder 
[Trigger] - [IvyTrigger] - Poll with an Ivy script 
[Trigger] - [ScriptTrigger] - Poll with a Groovy script 
[Trigger] - [ScriptTrigger] - Poll with a shell or batch script 
[Trigger] - [URLTrigger] - Poll with a URL 
Aug 1, 2013 1:17:33 PM hudson.WebAppMain$2 run 
INFO: Jenkins is fully up and running 
Exception in thread "Jenkins cron thread" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "JmDNS(sagrdev3sb12.local.).State.Timer" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "ConnectorThread:[http-9040]" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "JmDNS(sagrdev3sb12.local.).Timer" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "WinstoneHostConfigurationMgmt:default" java.lang.OutOfMemoryError: PermGen space 

또는 때때로 나는 참조 :

30 Aug 1, 2013 1:50:29 AM jenkins.InitReactorRunner$1 onAttained 
    31 INFO: Prepared all plugins 
    32 Exception in thread "pool-2-thread-20" java.lang.OutOfMemoryError: PermGen space 
    33 Aug 1, 2013 1:51:10 AM winstone.Logger logInternal 
    34 WARNING: Untrapped Error in Servlet 
    35 java.lang.OutOfMemoryError: PermGen space 
    36 Aug 1, 2013 1:51:12 AM winstone.Logger logInternal 
    37 SEVERE: Error in the error servlet 
    38 java.lang.OutOfMemoryError: PermGen space 
    39 Exception in thread "Jenkins cron thread" java.lang.OutOfMemoryError: PermGen space 
-bash-3.2$ 

이 문제를 어떻게 해결할 수 있습니까? 동일한 문제는 내 Windows 데스크톱 컴퓨터에서 동일한 연습을했을 때 나타났습니다. 더 적은 수의 플러그인이나 제한된 수의 플러그인을 사용해야합니까?

감사

내 ~/.bash_profile을 파일에서
+1

나는 최소한의 # 플러그인을 사용했으며 현재 작동 중입니다.그러나 내가 도로 아래로 다운로드하자마자이 permGen 공간 문제가 다시 올 것임을 의심합니다. –

+0

PermGen 오류가 발생하기 시작한 플러그인 또는 플러그인 수를 파악한 적이 있습니까? – Illidanek

답변

9

, 나는 다음과 같은 세 변수를 설정했습니다. 뿐만 아니라이 파일의 다른 변수 즉 JAVA_HOME, ANT_HOME, SONAR_HOME, SONAR_RUNNER_HOME 등이 있습니다 참고 :

export JAVA_OPTS="-XX:MaxPermSize=512m -Xms512m -Xmx1024m" 
export GRADLE_OPTS="-XX:MaxPermSize=512m" 
export SONAR_RUNNER_OPTS="-Xmx512m -XX:MaxPermSize=512m" 

모든 - 지금 작업.

첫 번째 내보내기 행 : Jenkins가 PermGen 오류없이 실행되고 두 번째 줄은 Jenkins가 Gradle 스크립트 (예 : .sh/etc의 다른 래퍼 스크립트)를 호출 할 때 Gradle을 실행하게하고 세 번째 줄에서는 "sonar- runner "명령이 정상적으로 작동합니다 (그렇지 않으면, sonar-runner 명령 출력 도중"Initialize Hibernate "... 행 다음에 PermGen에 대한 오류가 발생했습니다). Java를 컴파일 한 작업 공간에서 정적 코드 분석 도구 (pmd/checkstyle/findbugs) 및 기타 코드 커버리지 보고서 (jacoco/cobertura)와 관련된 리포트에서 sonar-runner 명령을 실행합니다. 작업 공간에는 "sonar-project.properties"파일이 있어야합니다. 이 파일에 대한 SonarQube 도움말 페이지와 프로젝트에 포함 된 모든 변수를 찾으십시오.

그 모든 옵션은 여기에 설명되어 있습니다 : http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html 또는 여기 당신이 자바 7 사용하는 경우 a GRADLE_OPTS을 추가를 MaxPermSize : 당신이 Gradle을를 사용하는 경우 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

0

, 당신은 -Xmx 또는 -XX을 설정할 수 있습니다 Jenkins 글로벌 구성에서 전역 환경 변수. 이렇게하려면 젠킨스 관리를 클릭 한 다음 시스템 구성을 클릭하십시오. 글로벌 속성 섹션에서 다음 환경 변수의 체크 박스를 클릭하여 다음과 같이 적절히 설정 한 값으로 새로운 환경 변수를 호출 GRADLE_OPTS을 추가

name: GRADLE_OPTS value: -Xmx1024m -XX:MaxPermSize=1024m

(1024)는 메모리 지정됩니다. 당신은 당신의 요구에 따라 변경할 수 있습니다.

Maven에는 비슷한 구성이 필요합니다. 자세한 내용은 아래 링크를 참조하십시오. https://wiki.jenkins-ci.org/display/JENKINS/Builds+failing+with+OutOfMemoryErrors

관련 문제