Я купил vps для размещения моих потребностей Java. Но я не могу запустить на нем java. Все, что связано с java, установлено правильно, но когда я пытаюсь запустить java (например, "java -version"), я получаю эту ошибку:
Ошибка при инициализации ВМ
Не удалось зарезервировать достаточно места для кучи объектов
Не удалось создать виртуальную машину Java.
Я не думаю, что это проблема, связанная с Java, наверняка не хватает памяти. Я связался с админом vps, но он говорит, что все в порядке, у вас 2 ГБ оперативной памяти, с возможностью расширения до 4 ГБ! Я немного поискал по этой теме, вот мой файл BEANS (числа, преобразованные в удобную для человека форму с помощью скрипта). Кстати, подсчитываются ли выделенные памяти кучи JVM на kmemsize или privvmpages? Сколько оперативной памяти позволяет мне выделить в этой конфигурации с помощью jvm для одного процесса?
resource held maxheld barrier limit failcnt
kmemsize 2.25 mb 2.35 mb 13.71 mb 14.10 mb 0
lockedpages 0 0 1024.00 kb 1024.00 kb 0
privvmpages 20.54 mb 21.33 mb 256.00 mb 272.00 mb 156
shmpages 5.00 mb 5.00 mb 84.00 mb 84.00 mb 0
numproc 13 14 240 240 0
physpages 9.36 mb 9.45 mb 0 MAX_ULONG 0
vmguarpages 0 0 132.00 mb MAX_ULONG 0
oomguarpages 9.36 mb 9.45 mb MAX_ULONG MAX_ULONG 0
numtcpsock 3 3 360 360 0
numflock 3 3 188 206 0
numpty 2 2 16 16 0
numsiginfo 0 1 256 256 0
tcpsndbuf 69.17 kb 69.17 kb 1.64 mb 2.58 mb 0
tcprcvbuf 48.00 kb 48.00 kb 1.64 mb 2.58 mb 0
othersockbuf 6.80 kb 6.80 kb 1.07 mb 2.00 mb 0
dgramrcvbuf 0.00 kb 0.00 kb 256.00 kb 256.00 kb 0
numothersock 9 10 360 360 0
dcachesize 0.00 kb 0.00 kb 3.25 mb 3.46 mb 0
numfile 704 746 9312 9312 0
numiptent 10 10 128 128 0
Заранее спасибо!
Дважды проверьте, правильно ли ваш скрипт перевел необработанные счетчики компонентов. в соответствии с этим у вас есть только 256 мегабайт оперативной памяти, а не 4 гигабайта, как говорит вам ваш администратор.
сконцентрируйтесь только на 2 зернах:
Java печально известна тем, что выделяет большие объемы памяти, а затем никогда их не использует, рассчитывая на то, что ОС чрезмерно усердствовать. По моему опыту, для надежной работы JVM вам понадобится хотя бы гигабайт Privvmpages, хотя будет использоваться всего пара десятков мегабайт.
После пары месяцев экспериментов и попыток сохранить privvmpages в виртуальных средах, работающих под управлением Java, я лично сдался, я просто установил барьер на максимум, настроил oomguarpages соответствующим образом и надеюсь на лучшее;)
Ты должен попытаться JRockit VM он отлично работает на моем OpenVZ VPS, он потребляет меньше памяти, чем Sun / Oracle jvm.
У меня была аналогичная проблема, когда я работал на VPSLink, Sun / Oracle JVM просто не работает с OpenVZ (вы можете поискать старые темы на форумах VPSLink, чтобы получить дополнительную информацию).
В конце концов, единственное, что у меня сработало с контейнером OpenVZ, - это IBM JDK, который вы можете получить на https://www.ibm.com/developerworks/java/jdk/linux/download.html
Однако я думаю, что лучшим решением будет переход на выделенный сервер, где вы можете установить нужный JDK и получить гораздо меньше головной боли, чем с OpenVZ.