Сборка Jenkins завершается неудачно с OOM: невозможно создать новый собственный поток
Я устанавливаю экземпляр jenkins на VServer с 2 ГБ ОЗУ и больше ничего не работает (использование < 200 МБ) под управлением CentOS 6.7.
При запуске сборки jenkins на указанном экземпляре я всегда получаю эту ошибку при запуске jenkins gradle --debug --stacktrace test
:
19: 26: 50.727 [ОШИБКА] [org.gradle.BuildExceptionReporter] Причина: java.lang.OutOfMemoryError: невозможно создать новый собственный поток
Поскольку это похоже на случай, когда многим потокам не разрешается, я поднял ulimit:
[root @ 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)
Есть ли что-нибудь еще, что я могу попытаться исправить это?
1 ответ
Вы захотите увеличить размер кучи, предоставляемой самой JVM Gradle, это не унаследовано от конфигурации Jenkins. Вы можете указать это с помощью GRADLE_OPTS
переменная среды, либо глобально в Jenkins через "Управление Jenkins> Настроить систему> Глобальные свойства> Переменные среды. GRADLE_OPTS
переменная с соответствующими настройками. Вы также можете сделать это при вызове Gradle, добавив к команде префикс переменной среды, например:
GRADLE_OPTS="-Xmx256m" ./gradlew build