Как предоставить Jenkins больше места в куче, когда он запущен как служба под Windows?


Ответы:


90

В каталоге установки Jenkins есть jenkins.xml, где вы можете установить различные параметры. Добавьте параметр -Xmx с нужным размером к тегу arguments (или увеличьте размер, если он уже есть).



у меня вопрос: если сборкам не хватает памяти, почему мы должны устанавливать параметры java в мастере?
yarin

1
Вы не должны. Но этот вопрос не касался нехватки памяти для сборок, а касался нехватки памяти мастеру.
dunni

В Ubuntu 16.04.6 LTS такого файла нет. /etc/default/jenkinsРешение , предложенное ниже Стив является тот , который работает для меня.
insideClaw

110

Если вы использовали Aptitude (apt-get) для установки Jenkins в Ubuntu 12.04, раскомментируйте JAVA_ARGSстроку в нескольких верхних строках /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
а если это окна?
Dejell

6
Вопрос конкретно говорится о Windows.
Ник Уделл

6
Да, я написал этот ответ до того, как понял, что делаю на SO, и я удивлен, что он получил так много голосов. Возможно, как и я, многие люди находят путь к этому вопросу через поисковую систему, и больший процент этих людей используют Linux или Unix? Я этого не понимаю.
Steve HHH

8
«Возможно, как и я, многие люди находят путь к этому вопросу через поисковую систему, и больший процент этих людей используют Linux или Unix? Я этого не понимаю». Именно так я это нашел.
Скотт

1
Не забудьте перезапустить сервис jenkinssudo service jenkins stop sudo service jenkins start
Камило Сильва

74

Вам необходимо изменить файл jenkins.xml . Конкретно вам нужно изменить

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

Вы также можете проверить параметры Java, которые использует Jenkins, установив плагин монитора Jenkins через Manage Jenkins / Manage Plugins, а затем перейдя в Managing Jenkins / Monitoring of Hudson / Jenkins master. чтобы использовать мониторинг, чтобы определить, сколько памяти доступно Jenkins.

Если вы получаете сообщение об ошибке нехватки памяти, когда Jenkins вызывает Maven, может потребоваться установить MAVEN_OPTS через Manage Jenkins / Configure System, например, если вы используете версию Java до JDK 1.8 (значения являются предложениями):

-Xmx2048m  -XX:MaxPermSize=512m

Если вы используете JDK 1.8:

-Xmx2048m

когда я пытаюсь установить JENKINS_JAVA_OPTIONS, как описано выше, я получаю: «Запуск Jenkins Unrecognized option: --XX: MaxPermSize = 512m»
nemoo

2
Дефис должен быть только один: -XX:MaxPermSize=512m- ответ был изменен для исправления этой опечатки.
Адам Рофер,

1
Есть идеи, как установить JENKINS_JAVA_OPTIONS в Windows?
ATOzTOA

В Windows, согласно jenkins.361315.n4.nabble.com/…, вы используете Панель управления -> Система -> Дополнительно -> Переменные среды
Марк Батлер

1
-XX:MaxPermSizeбольше не используется с Java 8 или более
поздней версией

24

Я добавил в / etc / sysconfig / jenkins (CentOS):

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

Для ubuntu такая же конфигурация должна находиться в / etc / default


16

Из вики Дженкинса:

Параметры запуска JVM этих служб Windows управляются XML-файлом jenkins.xml и jenkins-slave.xml соответственно. Эти файлы можно найти в $ JENKINS_HOME и в корневом каталоге подчиненного устройства, соответственно, после того, как вы установили их как службы Windows.

Формат файла не требует пояснений. Измените аргументы, например, чтобы увеличить память JVM.

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


-1

Если вы используете шаблоны Jenkins , в них могут быть определены дополнительные параметры виртуальной машины, и это может противоречить параметрам вашей системной виртуальной машины.

Например, на вашем временном столе могут быть ссылки, подобные этим

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

Убедитесь, что эти записи шаблона согласованы с настройками виртуальной машины вашей системы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.