Comment donner plus d'espace de stockage à Jenkins lorsqu'il est lancé en tant que service sous Windows?


Réponses:


90

Dans votre répertoire d'installation Jenkins, il y a un jenkins.xml, dans lequel vous pouvez définir diverses options. Ajoutez le paramètre -Xmx avec la taille que vous voulez à la balise arguments (ou augmentez la taille si elle est déjà là).



ma question est: si les builds manquent de mémoire, pourquoi devrions-nous définir les options java dans le maître?
yarin

1
Tu ne devrais pas. Mais cette question ne concernait pas les builds manquant de mémoire, mais le master manquant de mémoire.
dunni

Depuis Ubuntu 16.04.6 LTS, il n'existe pas de fichier de ce type. La /etc/default/jenkinssolution proposée ci-dessous par Steve est celle qui fonctionne pour moi.
insideClaw

110

Si vous avez utilisé Aptitude (apt-get) pour installer Jenkins sur Ubuntu 12.04, décommentez la JAVA_ARGSligne dans les premières lignes 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
et si ce sont des fenêtres?
Dejell

6
La question indique spécifiquement Windows.
Nick Udell

6
Ouais, j'ai écrit cette réponse avant de savoir ce que je faisais sur SO, et je suis surpris qu'il ait obtenu autant de votes positifs. Peut-être que, comme moi, beaucoup de gens trouvent leur chemin vers cette question via un moteur de recherche, et un plus grand pourcentage de ces personnes utilisent Linux ou Unix? Je ne comprends pas.
Steve HHH

8
"Peut-être que, comme moi, beaucoup de gens trouvent leur chemin vers cette question via un moteur de recherche, et un plus grand pourcentage de ces personnes utilisent Linux ou Unix? Je ne comprends pas." C'est exactement comme ça que je l'ai trouvé.
Scott

1
N'oubliez pas de redémarrer le service jenkinssudo service jenkins stop sudo service jenkins start
Camilo Silva

74

Vous devez modifier le fichier jenkins.xml . Plus précisément, vous devez changer

   <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>

Vous pouvez également vérifier les options Java utilisées par Jenkins en installant le plug-in de surveillance Jenkins via Manage Jenkins / Manage Plugins , puis en naviguant vers Managing Jenkins / Monitoring of Hudson / Jenkins master pour utiliser la surveillance afin de déterminer la quantité de mémoire disponible pour Jenkins.

Si vous obtenez une erreur de mémoire insuffisante lorsque Jenkins appelle Maven, il peut être nécessaire de définir MAVEN_OPTS via Manage Jenkins / Configure System, par exemple si vous utilisez une version de Java antérieure à JDK 1.8 (les valeurs sont des suggestions):

-Xmx2048m  -XX:MaxPermSize=512m

Si vous utilisez JDK 1.8:

-Xmx2048m

lorsque j'essaie de définir les JENKINS_JAVA_OPTIONS comme décrit ci-dessus, j'obtiens: "Démarrage de l'option Jenkins non reconnue: --XX: MaxPermSize = 512m"
nemoo

2
Il ne devrait y avoir qu'un seul trait d'union: -XX:MaxPermSize=512m- la réponse ci-dessus a été modifiée pour corriger cette faute de frappe.
Adam Rofer

1
Une idée comment définir JENKINS_JAVA_OPTIONS dans Windows?
ATOzTOA

Sous Windows, selon jenkins.361315.n4.nabble.com/ ... vous utilisez Panneau de configuration -> Système -> Avancé -> Variables d'environnement
Mark Butler

1
-XX:MaxPermSizen'est plus utilisé avec Java 8 ou supérieur stackoverflow.com/questions/12114174/what-does-xxmaxpermsize-do
Micha Wiedenmann

24

J'ai ajouté à / etc / sysconfig / jenkins (CentOS):

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

Pour ubuntu, la même configuration doit être située dans / etc / default


16

Depuis le wiki Jenkins:

Les paramètres de lancement JVM de ces services Windows sont respectivement contrôlés par un fichier XML jenkins.xml et jenkins-slave.xml. Ces fichiers se trouvent respectivement dans $ JENKINS_HOME et dans le répertoire racine esclave, après les avoir installés en tant que services Windows.

Le format de fichier doit être explicite. Modifiez les arguments par exemple pour donner à JVM une plus grande mémoire.

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


-1

Si vous utilisez des modèles Jenkins, vous pourriez avoir des paramètres de VM supplémentaires définis dans celui-ci et cela pourrait entrer en conflit avec les paramètres de VM de votre système

exemple votre tempalate peut avoir des références comme celles-ci

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

Assurez-vous d'aligner ces entrées de modèle avec le paramètre VM de votre système

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.