Como dar ao Jenkins mais espaço no heap quando ele é iniciado como um serviço no Windows?


Respostas:


90

No diretório de instalação do Jenkins, há um jenkins.xml, onde você pode definir várias opções. Adicione o parâmetro -Xmx com o tamanho que você deseja para a tag de argumentos (ou aumente o tamanho se já estiver lá).



minha pergunta é: se as compilações estão ficando sem memória, por que devemos definir as opções de java no mestre?
yarin

1
Você não deveria. Mas essa questão não era sobre builds sem memória, era sobre o master sem memória.
dunni

A partir do Ubuntu 16.04.6 LTS, esse arquivo não existe. A /etc/default/jenkinssolução oferecida abaixo por Steve é ​​a que funciona para mim.
insideClaw

110

Se você usou o Aptitude (apt-get) para instalar o Jenkins no Ubuntu 12.04, descomente a JAVA_ARGSlinha nas primeiras linhas de /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
e se for windows?
Dejell

6
A pergunta afirma especificamente o Windows.
Nick Udell

6
Sim, eu escrevi esta resposta antes de saber o que estava fazendo no SO, e estou surpreso que tenha recebido tantos votos positivos. Talvez, como eu, muitas pessoas encontrem o caminho para essa pergunta por meio de um mecanismo de busca e uma porcentagem maior dessas pessoas esteja usando Linux ou Unix? Eu não entendo.
Steve HHH

8
"Talvez, como eu, muitas pessoas encontrem o caminho para essa pergunta através de um mecanismo de busca, e uma porcentagem maior dessas pessoas esteja usando Linux ou Unix? Eu não entendo." Foi exatamente assim que eu encontrei.
Scott

1
Não se esqueça de reiniciar o serviço jenkinssudo service jenkins stop sudo service jenkins start
Camilo Silva

74

Você precisa modificar o arquivo jenkins.xml . Especificamente, você precisa mudar

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

para

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

Você também pode verificar as opções Java que o Jenkins está usando instalando o plug - in do monitor Jenkins por meio de Gerenciar Jenkins / Gerenciar plug - ins e, em seguida, navegar até Gerenciando Jenkins / Monitoramento do Hudson / Jenkins mestre para usar o monitoramento e determinar quanta memória está disponível para o Jenkins.

Se você estiver recebendo um erro de falta de memória quando o Jenkins chamar o Maven, pode ser necessário definir MAVEN_OPTS via Gerenciar Jenkins / Configurar Sistema, por exemplo, se você estiver executando em uma versão do Java anterior ao JDK 1.8 (os valores são sugestões):

-Xmx2048m  -XX:MaxPermSize=512m

Se você estiver usando o JDK 1.8:

-Xmx2048m

quando tento definir JENKINS_JAVA_OPTIONS conforme descrito acima, recebo: "Iniciando Jenkins Unrecognized option: --XX: MaxPermSize = 512m"
nemoo

2
Deve haver apenas um hífen: -XX:MaxPermSize=512m- a resposta acima foi editada para corrigir esse erro de digitação.
Adam Rofer

1
Alguma ideia de como definir JENKINS_JAVA_OPTIONS no Windows?
ATOzTOA

No Windows, de acordo com jenkins.361315.n4.nabble.com/… você usa Painel de Controle -> Sistema -> Avançado -> Variáveis ​​de Ambiente
Mark Butler

1
-XX:MaxPermSizenão é mais usado com Java 8 ou superior stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann

24

Adicionei a / etc / sysconfig / jenkins (CentOS):

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

Para ubuntu, a mesma configuração deve estar localizada em / etc / default


16

Do wiki Jenkins:

Os parâmetros de ativação da JVM desses serviços do Windows são controlados por um arquivo XML jenkins.xml e jenkins-slave.xml respectivamente. Esses arquivos podem ser encontrados em $ JENKINS_HOME e no diretório raiz do escravo respectivamente, depois de instalá-los como serviços do Windows.

O formato do arquivo deve ser autoexplicativo. Ajuste os argumentos, por exemplo, para dar à JVM uma memória maior.

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


-1

Se você estiver usando modelos Jenkins pode ter configurações adicionais de VM definidas nele e isso pode entrar em conflito com as configurações de VM do sistema

exemplo, seu tempalate pode ter referências como essas

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

Certifique-se de alinhar essas entradas de modelo com a configuração de VM do seu sistema

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.