Как отладить и настроить параметры памяти моей сборки jenkins maven

#java #memory #maven #jenkins #performance

#java #память #maven #дженкинс #Производительность

Вопрос:

У меня есть настройка системы CI на основе Jenkins на серверном блоке Windows 2003 (8 ядер, 16 ГБ, 8 из которых находятся в режиме ожидания в соответствии с монитором ресурсов). Настроено два основных задания, оба основаны на многомодульных проектах.

Я подозреваю, что производительность сборки можно улучшить, изменив настройки памяти (-xmx) сборок. Но есть слишком много мест для настройки, и недостаточно мест для отслеживания успеха. Итак, мои вопросы:

  • Как я могу подключиться к JConsole или JVisualVm с помощью jenkins и заданий на сборку, чтобы проанализировать, что происходит в памяти.

  • Каковы настройки jenkins по умолчанию для максимального размера кучи

  • Каковы настройки maven по умолчанию для максимального размера кучи

  • Какие могут быть разумные значения для такой настройки

  • Каков наилучший способ изменить эти настройки.

  • На какие еще настройки мне следует обратить внимание?

Ответ №1:

Jenkins использует настройки виртуальной машины по умолчанию, если вы запустили Jenkins через java -jar jenkins.в противном случае, если вы запустили jenkins через Tomcat и т. Д. значения по умолчанию поступают через Tomcat (Jetty или что-то еще). В tomcat вы можете установить JAVA_OPTS до того, как Tomcat начнет определять подобные вещи.

Кроме того, настройками для Maven можно управлять с помощью переменной окружения MAVEN_OPTS, которая также может быть установлена для каждой сборки в Jenkins. Взгляните на конфигурацию задания для вашего задания. Разумные значения для такой настройки зависят от того, что делает ваша сборка, чего я не знаю.

Ответ №2:

Если вы установите Jenkins monitoring https://wiki.jenkins-ci.org/display/JENKINS/Monitoring с помощью Manage Jenkins / Plugin Manager легко получить информацию об использовании памяти через Javamelody http://code.google.com/p/javamelody плагин.