Ресурс временно недоступен [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". И все теперь работает нормально.

Другие вопросы по тегам