Я столкнулся с этой ошибкой на своих серверах 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.
Теперь оба вопроса «Ресурс временно недоступен [вилка] и недостаточно памяти для продолжения работы Java Runtime Environment» решены. И теперь все работает нормально.