Я столкнулся с этой ошибкой на своих серверах Linux.
Resource temporarily unavailable [fork] &
insufficient memory for the Java Runtime Environment to continue
Я увеличил лимит nproc на моем сервере до 2047. И я надеюсь, что сообщение о недоступности ресурса больше не появится
Но при вводе самой команды java выдается ошибка «Недостаточно памяти». Я пытался установить память кучи java, но это тоже не позволяло. Я не знаю, что делать дальше. Пожалуйста помоги!!
ОС - Centos 6.8
Версия Java - Jdk 1.6
Виртуализация - LXC
на хост-сервере работает несколько виртуальных машин.
Свободная память составляет 15 ГБ на всех виртуальных машинах.
Поскольку это виртуализация LXC, она имеет общую память для всех виртуальных машин.
Поскольку я использую контейнеры LXC, все процессы виртуальных машин происходят от хост-сервера. Таким образом, количество процессов на главном сервере было очень большим, если исключить пользователя root.
Сначала подумал, что это может быть из-за проблемы с пространством кучи Java, и я попытался увеличить размер кучи до большего значения. Но проблема повторялась.
Я решил проблему, увеличив количество процессов для пользователя на хост-сервере
/etc/security/limits.d/90-nproc.conf
до большого значения 16000 .
А также я увеличил количество процессов процесс в каждой виртуальной машине на более высокое значение 4096 .
Теперь обе проблемы «Ресурс временно недоступен [fork] и недостаточно памяти для продолжения работы Java Runtime Environment» решено. И сейчас все работает нормально.