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

Я хочу увеличить доступное пространство кучи для Дженкинса. Но так как он установлен как сервис, я не знаю, как это сделать.

6 ответов

Решение

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

Если вы использовали 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

Вам нужно изменить файл 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 monitor через Manage Jenkins / Manage Plugins, а затем перейдя к разделу Managing Jenkins / Monitoring of Hudson / Jenkins master, чтобы использовать monitor для определения объема памяти, доступного для Jenkins.

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

-Xmx2048m  -XX:MaxPermSize=512m

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

-Xmx2048m

Я добавил в / 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

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

Параметры запуска 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

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

Например, ваш шаблон может иметь такие ссылки

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

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

Другие вопросы по тегам