Wie kann Jenkins mehr Heap-Speicherplatz erhalten, wenn es als Dienst unter Windows gestartet wird?


Antworten:


90

In Ihrem Jenkins-Installationsverzeichnis befindet sich eine jenkins.xml, in der Sie verschiedene Optionen festlegen können. Fügen Sie dem Argument-Tag den Parameter -Xmx mit der gewünschten Größe hinzu (oder erhöhen Sie die Größe, falls er bereits vorhanden ist).



Meine Frage ist: Wenn den Builds der Speicher ausgeht, warum sollten wir die Java-Optionen im Master festlegen?
Yarin

1
Das solltest du nicht. Bei dieser Frage ging es jedoch nicht um Builds, denen der Speicher ausgeht, sondern um Master, denen der Speicher ausgeht.
Dunni

Ab Ubuntu 16.04.6 LTS gibt es keine solche Datei. Die /etc/default/jenkinsunten von Steve angebotene Lösung funktioniert für mich.
insideClaw

110

Wenn Sie Aptitude (apt-get) verwendet haben, um Jenkins unter Ubuntu 12.04 zu installieren, kommentieren Sie die JAVA_ARGSZeile in den oberen Zeilen von /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
Was ist, wenn es Windows ist?
Dejell

6
Die Frage besagt speziell Windows.
Nick Udell

6
Ja, ich habe diese Antwort geschrieben, bevor ich wusste, was ich auf SO gemacht habe, und ich bin überrascht, dass es so viele positive Stimmen bekommen hat. Vielleicht finden wie ich viele Leute über eine Suchmaschine den Weg zu dieser Frage, und ein größerer Prozentsatz dieser Leute benutzt Linux oder Unix? Ich verstehe es nicht
Steve HHH

8
"Vielleicht finden wie ich viele Leute über eine Suchmaschine den Weg zu dieser Frage, und ein größerer Prozentsatz dieser Leute benutzt Linux oder Unix? Ich verstehe das nicht." Genau so habe ich es gefunden.
Scott

1
Vergessen Sie nicht, Jenkins Service neu zu startensudo service jenkins stop sudo service jenkins start
Camilo Silva

74

Sie müssen die Datei jenkins.xml ändern . Insbesondere müssen Sie ändern

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

zu

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

Sie können auch die von Jenkins verwendeten Java-Optionen überprüfen, indem Sie das Jenkins-Monitor-Plugin über Jenkins verwalten / Plugins verwalten installieren und dann zu Verwalten von Jenkins / Überwachen des Hudson / Jenkins-Masters navigieren, um mithilfe der Überwachung zu bestimmen, wie viel Speicher Jenkins zur Verfügung steht.

Wenn beim Aufrufen von Maven durch Jenkins ein Speicherfehler auftritt, muss möglicherweise MAVEN_OPTS über Jenkins verwalten / System konfigurieren festgelegt werden, z. B. wenn Sie eine Version von Java vor JDK 1.8 ausführen (die Werte sind Vorschläge):

-Xmx2048m  -XX:MaxPermSize=512m

Wenn Sie JDK 1.8 verwenden:

-Xmx2048m

Wenn ich versuche, die JENKINS_JAVA_OPTIONS wie oben beschrieben einzustellen, erhalte ich: "Jenkins nicht erkannte Option starten: --XX: MaxPermSize = 512m"
nemoo

2
Es sollte nur einen Bindestrich geben: -XX:MaxPermSize=512m- Die obige Antwort wurde bearbeitet, um diesen Tippfehler zu beheben.
Adam Rofer

1
Irgendeine Idee, wie man JENKINS_JAVA_OPTIONS in Windows setzt?
ATOzTOA

Unter Windows verwenden Sie laut jenkins.361315.n4.nabble.com/… Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen
Mark Butler

1
-XX:MaxPermSizewird nicht mehr mit Java 8 oder höher verwendet stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann

24

Ich habe zu / etc / sysconfig / jenkins (CentOS) hinzugefügt :

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

Für Ubuntu sollte sich dieselbe Konfiguration in / etc / default befinden


16

Aus dem Jenkins-Wiki:

Die JVM-Startparameter dieser Windows-Dienste werden von einer XML-Datei jenkins.xml bzw. jenkins-Slave.xml gesteuert. Diese Dateien befinden sich in $ JENKINS_HOME bzw. im Slave-Stammverzeichnis, nachdem Sie sie als Windows-Dienste installiert haben.

Das Dateiformat sollte selbsterklärend sein. Optimieren Sie beispielsweise die Argumente, um JVM einen größeren Speicher zu geben.

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


-1

Wenn Sie Jenkins-Vorlagen verwenden, sind möglicherweise zusätzliche VM-Einstellungen definiert, was zu Konflikten mit Ihren System-VM-Einstellungen führen kann

Beispiel: Ihr Gaumen kann Referenzen wie diese haben

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

Stellen Sie sicher, dass diese Vorlageneinträge an der VM-Einstellung Ihres Systems ausgerichtet sind

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.