#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 плагин.