Сборка 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
Другие вопросы по тегам