Не удалось зарезервировать достаточно места для кучи объектов - PullRequest
247 голосов
/ 09 декабря 2010

Я получаю следующее исключение несколько раз каждый раз, когда я пытаюсь запустить программу.

Произошла ошибка при инициализации ВМ

Не удалось зарезервировать достаточно места для кучи объектов

Не удалось создать виртуальную машину Java.

Я пытался увеличить свою виртуальную память (размер страницы) и объем оперативной памяти, но безрезультатно. Может кто-нибудь сказать мне, как я могу устранить эту ошибку?

Ответы [ 25 ]

0 голосов
/ 21 апреля 2017

Замените -Xmx2G на -Xms512M или больший объем памяти в файле cassandra.bat в каталоге cassandra bin.

0 голосов
/ 19 декабря 2012

Не нужно ничего делать, просто измените файл POM, как показано ниже

<configuration>
    <maxmemory>1024M</maxmemory>
</configuration>
0 голосов
/ 18 января 2017

Иногда это относится как

$ sysctl vm.overcommit_memory
vm.overcommit_memory = 2

Если вы установите его на:

$ sysctl vm.overcommit_memory=0

Это должно работать.

0 голосов
/ 26 декабря 2013

Если вы запускаете Java-программу: - запустите вашу программу в терминале, используя правильную команду для linux, это будет 'java -jar myprogram.jar' и добавьте -Xms256m -Xmx512m, например: 'java -jar myprogram.jar Xms256m -Xmx512m'

В случае, если вы запускаете сценарий .sh (linux, mac?) Или .bat (windows), откройте сценарий и найдите параметры java, если они присутствуют, и увеличьте объем памяти.

Если все вышеперечисленное не работает, проверьте ваши процессы (ctrl + alt + delete в windows) (ps aux в linux / mac) и убейте процессы, которые используют много памяти и не нужны для вашей операционной системы. ! => Попробуйте перезапустить вашу программу.

0 голосов
/ 05 марта 2016

В CASSANDRA_HOME / bin / cassandra.bat вы найдете следующую конфигурацию

REM JVM Opts we'll use in legacy run or installation
set JAVA_OPTS=-ea^
 -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^
 -Xms**2G**^
 -Xmx**2G**^

Вы можете уменьшить 2G до некоторого меньшего числа, например 1G или даже меньше, и это должно работать.

То же самое, если вы работаете в Unix Box, измените файл .sh соответствующим образом.

...