Ресурс временно недоступен [fork] и недостаточно памяти для продолжения работы среды Java
Я столкнулся с этой ошибкой на моих серверах 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, она имеет общую память для всех виртуальных машин.
1 ответ
Поскольку я использую контейнеры LXC, все процессы виртуальной машины происходят с хост-сервера. Так что количество процессов на хост-сервере было очень большим, если исключить пользователя root.
Первоначально думал, что это может быть из-за проблемы кучи Java, и я пытался увеличить пространство кучи до большего значения. Но проблема повторялась.
Я решил проблему, увеличив число процессов для пользователя на хост-сервере.
/etc/security/limits.d/90-nproc.conf
на большое значение 16000.
А также я увеличил число процессов в каждой виртуальной машине до более высокого значения 4096.
Теперь решены оба вопроса: "Ресурс временно недоступен [ветвь] и недостаточно памяти для продолжения среды выполнения Java". И все теперь работает нормально.