Я настраиваю экземпляр jenkins на VServer с 2 ГБ ОЗУ, и больше ничего не работает (использование <200 МБ) под управлением CentOS 6.7.
При запуске сборки jenkins на указанном экземпляре я всегда получаю эту ошибку при запуске jenkins gradle --debug --stacktrace test
:
19: 26: 50.727 [ERROR] [org.gradle.BuildExceptionReporter] Причина: java.lang.OutOfMemoryError: невозможно создать новый собственный поток
Поскольку это похоже на то, что многие потоки не разрешены, я увеличил ulimit до:
[корень @ xxx] # runuser -s / bin / bash jenkins -c 'ulimit -u'
16384
Я также пробовал разные флаги выделения памяти JVM jenkins, давая экземпляру 200 МБ или 1 ГБ ничего не изменилось, уменьшение размера стека, чтобы освободить место для собственных потоков, тоже не помогло.
Когда я запускаю ту же команду gradle, что и root, gradle зависает с аналогичной ошибкой:
19:29:14.939 [QUIET] [system.out] Error occurred during initialization of VM
19:29:14.940 [QUIET] [system.out] java.lang.OutOfMemoryError: unable to create new native thread
19:29:14.941 [QUIET] [system.out] at java.lang.Thread.start0(Native Method)
19:29:14.941 [QUIET] [system.out] at java.lang.Thread.start(Thread.java:714)
19:29:14.942 [QUIET] [system.out] at java.lang.ref.Reference.<clinit>(Reference.java:187)
Могу я еще что-нибудь исправить?
Вы захотите увеличить размер кучи, передаваемый самой Gradle JVM, это не наследуется от конфигурации Jenkins. Вы можете указать это с помощью GRADLE_OPTS
переменная среды, либо глобально в Jenkins через «Управление Jenkins> Настроить систему> Глобальные свойства> Переменные среды». Вы должны добавить GRADLE_OPTS
переменная с соответствующими настройками. Вы также можете сделать это при вызове Gradle, добавив к команде префикс переменной среды, например:
GRADLE_OPTS="-Xmx256m" ./gradlew build