Come dare a Jenkins più spazio nell'heap quando viene avviato come servizio in Windows?


Risposte:


90

Nella directory di installazione di Jenkins è presente jenkins.xml, in cui è possibile impostare varie opzioni. Aggiungi il parametro -Xmx con la dimensione che desideri al tag-argomenti (o aumenta la dimensione se è già presente).



la mia domanda è: se la build sta esaurendo la memoria, perché dovremmo impostare le opzioni java nel master?
yarin

1
Non dovresti. Ma questa domanda non riguardava le build che esauriscono la memoria, ma il master che esaurisce la memoria.
Dunni

A partire da Ubuntu 16.04.6 LTS, non esiste un file di questo tipo. La /etc/default/jenkinssoluzione offerta di seguito da Steve è quella che funziona per me.
insideClaw

110

Se hai utilizzato Aptitude (apt-get) per installare Jenkins su Ubuntu 12.04, rimuovi il commento dalla JAVA_ARGSriga nelle prime righe di /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 fosse Windows?
Dejell

6
Domanda afferma specificamente Windows.
Nick Udell

6
Sì, ho scritto questa risposta prima di sapere cosa stavo facendo in SO, e sono sorpreso che abbia ottenuto così tanti voti. Forse, come me, molte persone trovano la strada per questa domanda tramite un motore di ricerca e una percentuale maggiore di queste persone utilizza Linux o Unix? Non lo capisco
Steve HHH

8
"Forse, come me, molte persone trovano il modo di rispondere a questa domanda tramite un motore di ricerca, e una percentuale maggiore di queste persone utilizza Linux o Unix? Non lo capisco." È esattamente come l'ho trovato.
Scott

1
Non dimenticare di riavviare il servizio Jenkinssudo service jenkins stop sudo service jenkins start
Camilo Silva

74

È necessario modificare il file jenkins.xml . Nello specifico devi cambiare

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

per

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

È inoltre possibile verificare le opzioni Java utilizzate da Jenkins installando il plug-in di monitoraggio Jenkins tramite Gestisci Jenkins / Gestisci plug-in e quindi accedendo a Gestione di Jenkins / Monitoraggio di Hudson / Jenkins master per utilizzare il monitoraggio per determinare la quantità di memoria disponibile per Jenkins.

Se ricevi un errore di memoria insufficiente quando Jenkins chiama Maven, potrebbe essere necessario impostare MAVEN_OPTS tramite Gestisci Jenkins / Configura sistema, ad esempio se stai utilizzando una versione di Java precedente a JDK 1.8 (i valori sono suggerimenti):

-Xmx2048m  -XX:MaxPermSize=512m

Se stai usando JDK 1.8:

-Xmx2048m

quando provo a impostare JENKINS_JAVA_OPTIONS come descritto sopra ottengo: "Avvio dell'opzione Jenkins Unrecognized: --XX: MaxPermSize = 512m"
nemoo

2
Dovrebbe esserci un solo trattino: -XX:MaxPermSize=512m- la risposta sopra è stata modificata per correggere questo errore di battitura.
Adam Rofer

1
Qualche idea su come impostare JENKINS_JAVA_OPTIONS in Windows?
ATOzTOA

Su Windows, secondo jenkins.361315.n4.nabble.com/… si usa Pannello di controllo -> Sistema -> Avanzate -> Variabili d'ambiente
Mark Butler

1
-XX:MaxPermSizenon è più utilizzato con Java 8 o superiore stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann

24

Ho aggiunto a / etc / sysconfig / jenkins (CentOS):

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

Per Ubuntu la stessa configurazione dovrebbe trovarsi in / etc / default


16

Dal wiki di Jenkins:

I parametri di avvio JVM di questi servizi Windows sono controllati rispettivamente da un file XML jenkins.xml e jenkins-slave.xml. Questi file possono essere trovati rispettivamente in $ JENKINS_HOME e nella directory root slave, dopo averli installati come servizi Windows.

Il formato del file dovrebbe essere autoesplicativo. Modifica gli argomenti ad esempio per dare a JVM una memoria più grande.

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


-1

Se si utilizzano modelli Jenkins, è possibile definire ulteriori impostazioni della VM e ciò potrebbe essere in conflitto con le impostazioni della VM del sistema

esempio il tuo tempalate potrebbe avere riferimenti come questi

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

Assicurati di allineare queste voci del modello con l'impostazione della VM del tuo sistema

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.