Ошибка при использовании metaspace minecraft как исправить

Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

Если вы словили OutOfMemoryError, то это вовсе не значит, что ваше приложение создает много объектов, которые не могут почиститься сборщиком мусора и заполняют всю память, выделенную вами с помощью параметра -Xmx. Я, как минимум, могу придумать два других случая, когда вы можете увидеть эту ошибку. Дело в том, что память java процесса не ограничивается областью -Xmx, где ваше приложение программно создает объекты.

image

Область памяти, занимаемая java процессом, состоит из нескольких частей. Тип OutOfMemoryError зависит от того, в какой из них не хватило места.

1. java.lang.OutOfMemoryError: Java heap space

Не хватает место в куче, а именно, в области памяти в которую помещаются объекты, создаваемые программно в вашем приложении. Размер задается параметрами -Xms и -Xmx. Если вы пытаетесь создать объект, а места в куче не осталось, то получаете эту ошибку. Обычно проблема кроется в утечке памяти, коих бывает великое множество, и интернет просто пестрит статьями на эту тему.

2. java.lang.OutOfMemoryError: PermGen space

Данная ошибка возникает при нехватке места в Permanent области, размер которой задается параметрами -XX:PermSize и -XX:MaxPermSize. Что там лежит и как бороться с OutOfMemoryError возникающей там, я уже описал подробнейшим образом тут.

3. java.lang.OutOfMemoryError: GC overhead limit exceeded

Данная ошибка может возникнуть как при переполнении первой, так и второй областей. Связана она с тем, что памяти осталось мало и GC постоянно работает, пытаясь высвободить немного места. Данную ошибку можно отключить с помощью параметра -XX:-UseGCOverheadLimit, но, конечно же, её надо не отключать, а либо решать проблему утечки памяти, либо выделять больше объема, либо менять настройки GC.

4. java.lang.OutOfMemoryError: unable to create new native thread

Впервые я столкнулся с данной ошибкой несколько лет назад, когда занимался нагрузочным тестированием и пытался выяснить максимальное количество пользователей, которые могут работать с нашим веб-приложением. Я использовал специальную тулзу, которая позволяла логинить пользователей и эмулировать их стандартные действия. На определенном количестве клиентов, я начал получать OutOfMemoryError. Не особо вчитываясь в текст сообщения и думая, что мне не хватает памяти на создание сессии пользователя и других необходимых объектов, я увеличил размер кучи приложения (-Xmx). Каково же было мое удивление, когда после этого количество пользователей одновременно работающих с системой только уменьшилось. Давайте подробно разберемся как же такое получилось.

На самом деле это очень просто воспроизвести на windows на 32-битной машине, так как там процессу выделяется не больше 2Гб.

Допустим у вас есть приложение с большим количеством одновременно работающих пользователей, которое запускается с параметрами -Xmx1024M -XX:MaxPermSize=256M -Xss512K. Если всего процессу доступно 2G, то остается свободным еще коло 768M. Именно в данном остатке памяти и создаются стеки потоков. Таким образом, примерно вы можете создать не больше 768*(1024/512)=1536 (у меня при таких параметрах получилось создать 1316) нитей (см. рисунок в начале статьи), после чего вы получите OutOfMemoryError. Если вы увеличиваете -Xmx, то количество потоков, которые вы можете создать соответственно уменьшается. Вариант с уменьшением -Xss, для возможности создания большего количества потоков, не всегда выход, так как, возможно, у вас существуют в системе потоки требующие довольно больших стеков. Например, поток инициализации или какие-нибудь фоновые задачи. Но все же выход есть. Оказывается при программном создании потока, можно указать размер стека: Thread(ThreadGroup group, Runnable target, String name,long stackSize). Таким образом вы можете выставить -Xss довольно маленьким, а действия требующие больших стеков, выполнять в отдельных потоках, созданных с помощью упомянутого выше конструктора.

Более подробно, что же лежит в стеке потока, и куда уходит эта память, можно прочитать тут.

Конечно, вам может показаться данная проблема слегка надуманной, так как большинство серверов нынче крутиться на 64-битной архитектуре, но все же считаю данный пример весьма полезным, так как он помогает разобраться из каких частей состоит память java-процесса.

3.2 Understand the OutOfMemoryError Exception

One common indication of a memory leak is the java.lang.OutOfMemoryError exception. Usually, this error is thrown when there is insufficient space to allocate an object in the Java heap. In this case, The garbage collector cannot make space available to accommodate a new object, and the heap cannot be expanded further. Also, this error may be thrown when there is insufficient native memory to support the loading of a Java class. In a rare instance, a java.lang.OutOfMemoryError may be thrown when an excessive amount of time is being spent doing garbage collection and little memory is being freed.

When a java.lang.OutOfMemoryError exception is thrown, a stack trace is also printed.

The java.lang.OutOfMemoryError exception can also be thrown by native library code when a native allocation cannot be satisfied (for example, if swap space is low).

An early step to diagnose an OutOfMemoryError exception is to determine the cause of the exception. Was it thrown because the Java heap is full, or because the native heap is full? To help you find the cause, the text of the exception includes a detail message at the end, as shown in the following exceptions.

In other cases, and in particular for a long-lived application, the message might be an indication that the application is unintentionally holding references to objects, and this prevents the objects from being garbage collected. This is the Java language equivalent of a memory leak. Note: The APIs that are called by an application could also be unintentionally holding object references.

One other potential source of this error arises with applications that make excessive use of finalizers. If a class has a finalize method, then objects of that type do not have their space reclaimed at garbage collection time. Instead, after garbage collection, the objects are queued for finalization, which occurs at a later time. In the Oracle Sun implementation, finalizers are executed by a daemon thread that services the finalization queue. If the finalizer thread cannot keep up, with the finalization queue, then the Java heap could fill up and this type of OutOfMemoryError exception would be thrown. One scenario that can cause this situation is when an application creates high-priority threads that cause the finalization queue to increase at a rate that is faster than the rate at which the finalizer thread is servicing that queue.

If this type of the OutOfMemoryError exception is thrown, you might need to use troubleshooting utilities on the operating system to diagnose the issue further. For more information about tools available for various operating systems, see Native Operating System Tools.

CompressedClassSpaceSize of 4294967296 is invalid; must be between 1048576 and 3221225472.

Note: There is more than one kind of class metadata — klass metadata and other metadata. Only klass metadata is stored in the space bounded by CompressedClassSpaceSize . The other metadata is stored in Metaspace .

Русские Блоги

Итак, обычно есть две причины этой аномалии:
1. В программе есть бесконечный цикл.
2. Программа занимает слишком много памяти, что превышает максимальное значение, установленное кучей JVM.
В первом случае вам необходимо самостоятельно проверить программный код, поэтому я не буду здесь говорить больше.
Во втором случае мы вручную расширяем настройки параметров кучи JVM. Настройка кучи JVM относится к настройке пространства памяти, которое JVM может выделить и использовать во время выполнения программы java. Когда JVM запускается, куча JVM автоматически устанавливает значение размера кучи. Обычно значение по умолчанию для начального пространства (например, -Xms) составляет 1/64 физической памяти, а максимальное пространство составляет 1/4 физической памяти. Его можно установить с помощью таких параметров, как -Xmn -Xms -Xmx, предоставляемых JVM. Вот объяснение значения каждого параметра:
-Xms: начальное значение
-Xmx: максимум
-Xmn: минимальное значение
Размер кучи не должен быть слишком маленьким или слишком большим. Если параметр слишком мал, скорость отклика программы будет ниже, потому что сборщик мусора занимает больше времени, а приложение выделяет меньше времени на выполнение. Слишком большой размер также приведет к потере места и повлияет на нормальную работу других программ. Размер кучи не должен превышать 80% доступной физической памяти. Рекомендуется установить одинаковые параметры -Xms и -Xmx, а -Xmn составляет 1/4 значения -Xmx.
Основные методы настройки следующие:
1. Этот параметр добавляется при выполнении файла класса JAVA, где className — это имя класса, который необходимо выполнить. (Включая имя пакета) Например: java -Xms32m -Xmx800m className Это не только решает проблему, но и скорость выполнения намного выше, чем когда она не установлена. Если это тест разработки, вы также можете установить его прямо в eclipse. Введите -Xms32m -Xmx800m в аргументы виртуальной машины в Eclipse -> run -arguments.
2. Вы можете изменить системные переменные среды в Windows и добавить JAVA_OPTS = -Xms64m -Xmx512m.
3. Если вы используете tomcat под окнами, вы можете добавить в C: tomcat5.5.9 bin catalina.bat (конкретный путь зависит от местоположения вашего tomcat): установить JAVA_OPTS = -Xms64m -Xmx256m (размер зависит от вашей собственной памяти) Местоположение: rem Угадайте CATALINA_HOME, если не определено Добавьте соответствующее в этой строке.
4. Если это система Linux, добавьте набор JAVA_OPTS = ’- Xms64 -Xmx512’ перед /bin/catalina.sh
Поскольку программе необходимо прочитать около 10 Вт строк записей из данных для обработки, возникает ошибка типа java.lang.OutOfMemoryError: пространство кучи Java появляется при чтении 9 Вт.
Проверка в Интернете может быть причиной того, что параметр стека JAVA слишком мал.
Согласно ответам в Интернете, существует примерно два решения:
1. Задайте переменные среды.
set JAVA_OPTS= -Xms32m -Xmx512m
можно изменить в соответствии с объемом памяти вашего компьютера, но моя проверка этого метода не решила проблему. Это может быть где еще нужно установить.

2、java -Xms32m -Xmx800m className
— добавить этот параметр при выполнении файла класса JAVA, где className — это фактическое имя класса, который должен быть выполнен. (Включая название пакета)
Это решает проблему. И скорость выполнения намного выше, чем без настройки.

Если вы можете использовать Eclispe при тестировании, вам необходимо ввести параметр -Xms32m -Xmx800m в аргументы виртуальной машины в Eclipse -> run -arguments.

java.lang.OutOfMemoryError: Java heap space

Исключение возникает при использовании программы Java для запроса большого количества данных из базы данных:
java.lang.OutOfMemoryError: Java heap space

В JVM, если 98% времени используется для сборки мусора, а доступный размер кучи меньше 2%, будет выдано это сообщение об исключении.

Настройка кучи JVM относится к настройке пространства памяти, которое JVM может выделить и использовать во время выполнения программы java.

JVM автоматически установит значение размера кучи при запуске.Его начальное пространство (-Xms) составляет 1/64 физической памяти, а максимальное пространство (-Xmx) — 1/4 физической памяти. Его можно установить с помощью таких параметров, как -Xmn -Xms -Xmx, предоставляемых JVM.
Например: java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar

Если размер кучи установлен слишком маленьким, в дополнение к этим аномальным сообщениям вы обнаружите, что скорость отклика программы снижается. Сборщик мусора занимает больше времени, а приложение выделяет меньше времени на выполнение.

Размер кучи не должен превышать 80% доступной физической памяти.Обычно для параметров -Xms и -Xmx должны быть установлены одинаковые значения, а -Xmn составляет 1/4 значения -Xmx.
Параметры размера кучи -Xms -Xmn не должны превышать размер физической памяти. В противном случае появится сообщение «Ошибка при инициализации виртуальной машины. Не удалось зарезервировать достаточно места для кучи объектов».

==========================================================
После ночи напряженной работы я наконец завершил программу замены файлов для указанной строки, но поскольку я хочу заменить слишком много файлов html для общесайтовой программы, поэтому затмение всегда заканчивается в каталоге После сообщения об исключении java.lang.OutOfMemoryError: пространство кучи Java произошел сбой.

Я подумал, что слишком поздно перерабатывать из-за частых операций, поэтому я добавил Thread.sleep (1000) после каждого цикла и обнаружил, что он умрет в этом каталоге, поэтому я изменил 1000 на 5000 или умер там. Я думаю, что это может быть не так просто перерабатывать, возможно, JVM Sun просто не выпускает для этой ситуации.
Затем я добавил -Xmx256M к параметру запуска, на этот раз все было нормально.

Подумав об этом, я до сих пор мало что знаю о принципах сборки мусора, я проверил это в Интернете и нашел несколько хороших статей.

Также существуют: Управление кучей Java — сборка мусора. Следует отметить следующие моменты, которые могут использоваться в качестве рекомендаций при написании программ:

(1) Не пытайтесь предполагать время, когда происходит сборка мусора, причем все это неизвестно. Например, временный объект в методе становится бесполезным после вызова метода, и его память может быть освобождена в это время.

(2) Java предоставляет несколько классов, которые занимаются сборкой мусора, и предоставляет способ принудительного вызова функции сборки мусора System.gc (), но это также ненадежный метод. Java не гарантирует, что сборка мусора будет запускаться каждый раз при вызове этого метода. Она просто отправляет такой запрос в JVM. Неизвестно, выполняется ли сборка мусора на самом деле.

(3) Выберите подходящий вам сборщик мусора. Вообще говоря, если система не предъявляет особых требований к производительности, вы можете использовать параметры JVM по умолчанию. В противном случае вы можете рассмотреть возможность использования целевых сборщиков мусора.Например, инкрементные сборщики больше подходят для систем с высокими требованиями к работе в реальном времени. Система имеет более высокую конфигурацию и больше простаивающих ресурсов, вы можете рассмотреть возможность использования параллельного сборщика меток / разверток.

(4) Ключевая и сложная проблема — это утечки памяти. Хорошие навыки программирования и строгое отношение к программированию всегда являются самыми важными. Не позволяйте небольшой собственной ошибке вызвать большую дыру в памяти.

(5) Освободите ссылки на бесполезные объекты как можно скорее.
Когда большинство программистов используют временные переменные, они автоматически устанавливают для ссылочной переменной значение null после выхода из активной области (области), что означает, что сборщик мусора будет собирать объект. Вы должны обратить внимание на то, отслеживается ли объект, на который указывает ссылка, если да, удалите прослушиватель, а затем назначьте нулевое значение.

Другими словами, лучше контролировать операции частого обращения к памяти и освобождения памяти самостоятельно, но метод System.gc () может быть неприменим. Лучше использовать finalize для принудительного выполнения или написать свой собственный метод finalize.

Я обнаружил ошибку TOMCAT: java.lang.OutOfMemoryError: пространство кучи Java, поэтому я проверил информацию и нашел решение:
If Java runs out of memory, the following error occurs:
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
Java heap size can be increased as follows:

java -Xms -Xmx
Defaults are:
java -Xms32m -Xmx128m

Если вы используете выигрыш
/tomcat/bin/catalina.bat плюс следующая команда:
set JAVA_OPTS=-Xms32m -Xmx256m

Если вы используете unix / linux
/tomcat/bin/catalina.sh плюс следующая команда:
JAVA_OPTS=»-Xms32m -Xmx256m»

инструмент просмотра и анализа памяти jvm
В отрасли существует множество мощных инструментов для профилей Java, таких как Jporfiler и yourkit. Я не хочу говорить об этих платных вещах. Я хочу сказать, что сама java обеспечивает большой мониторинг памяти. Маленькие инструменты, перечисленные ниже инструменты — лишь небольшая часть. Все еще довольно интересно внимательно изучить инструменты jdk 🙂

1: вывод журнала gc

-verbose: gc и -XX: + PrintTenuringDistribution и т. д.

Код коллекции HTML-кода
Usage:
jmap -histo (to connect to running process and print histogram of java object heap
jmap -dump: (to connect to running process and dump java heap)
dump-options: format=b binary default file=
dump heap to
Example: jmap -dump:format=b,file=heap.bin

jmap -dump:file=c:dump.txt 340

Обратите внимание, что 340 — это pid java-процесса моей машины. Размер выгруженного файла превышает 10 мегабайт, и я только что открыл tomcat и запустил очень простое приложение без какого-либо доступа. Его можно представить на большом и загруженном сервере. , Насколько большим должен быть файл дампа? Что вам нужно знать, так это то, что информация о файле дампа очень примитивна и определенно не подходит для просмотра людьми напрямую, а содержимое, отображаемое jmap -histo, слишком простое, например, оно только показывает, сколько памяти занимают определенные типы объектов и количество этих объектов. , Но нет более подробной информации, например, кто создал эти объекты. Итак, какая польза от файла дампа? Конечно полезно, потому что есть инструмент для анализа файла дампа памяти jvm.

6: анализатор памяти eclipse

S0 S1 E O P YGC YGCT FGC FGCT GCT
54.62 0.00 42.87 43.52 86.24 1792 5.093 33 7.670 12.763

S0 S1 E O P YGC YGCT FGC FGCT GCT
54.62 0.00 42.87 43.52 86.24 1792 5.093 33 7.670 12.763

S0: Зона susvivor0 нового поколения, коэффициент использования площадей 54 . 62%

S1: область susvivor1 нового поколения, коэффициент использования пространства составляет 0,00% (поскольку второй второстепенный сбор не был выполнен)


SpigotMC - High Performance Minecraft

Want a better Minecraft server?
Read about SpigotMC here!


  1. NickMD

    My server keeps on crashing because it «runs» out of memory so i went ahead and got more RAM and now have 8GB of RAM.

    It’s been crashing for weeks now and i have to do a force stop and start the server every day, 2-3 times a day.

    Im not sure what is wrong with the server, i did not change anything and this would never happen, now randomly this happens even though there are the same amount of players/same plugins/same world same host same everything.

    There is no corrupted chunks in any of the worlds.

    Here is the timings report:
    https://timings.aikar.co/?id=6da41677afe34850a9a91dc3bf2f04e0

    Here is the latest.log
    https://filebin.ca/4rWHBcCnZofk/latest.log
    Here is also another log before the latest:
    https://pastebin.com/9JBYsC4H

    Using PaperSpigot 1.8.8-R0.1-SNAPSHOT

    Let me know theres anything else i can provide to find the solution

  2. Remove this from your startup flags «XX:MaxMetaspaceSize=128M». That is what limits your meta space even though you increased the RAM (read heap) to 8 GB.


  3. NickMD

    How do i change that, Where is it located?

  4. Same place as where you increased RAM to 8 GB.


  5. NickMD

    My server is ran by a host, i had to purchase 2 extra more GB. I cannot change the amount of RAM/CPU u have

  6. Oh, in that case ask your host. Hosts usually do not allow you do edit these JVM flags.


  7. NickMD

    What do you think the max size should be set it for a server that has 20-40 ppl on daily?


  8. NickMD

    Wait i think i know what you talking about, are you talking about the network-compression-threshold in the server.properties file?

  9. No.

    So normally when you host a server yourself you have an executable that runs something like «java-Xmx4G -Xms4G -XX:MaxMetaspaceSize=128M -jar spigot.jar». In your case the flag «-XX:MaxMetaspaceSize=128M» is limiting the maximum size of the metaspace. The server logs you provided contain «[06:50:00] [Thread-43/WARN]: java.lang.OutOfMemoryError: Metaspace», meaning that the metaspace is too small. So we must either increase the metaspace size or remove the limit completely.

    Like you mentioned, you are with a hosting provider. As you don’t have access to change the java command and flags, you must ask your host to do this. They should know how to solve this when you mention that they must remove or increase «-XX:MaxMetaspaceSize=128M» in the java flags. If they don’t, then it’s time to move to a new host.

A common problem with Minecraft, especially once you start to dive into the world of mods, is various «out of memory» errors.

Out of memory errors can sometimes be a little hard to spot if you’re not aware of where to look for them. They can be indicated either in a crash report or in the console of your server depending on which one you get.

In this screenshot, the server starts to hang and does not proceed with the startup, nor does it crash. It just sits in a limbo state, but you can see that there is an error: Caused by: java.lang.OutOfMemorryError: Metaspace.
The NodePanel Minecraft Console showing the OutOfMemory Metaspace error

This server created a crash report, which, if you’re not used to reading them, at first glance looks like a mod called Tech Reborn caused the crash. However, if you scroll down just a little bit in the crash report, you’ll see this line: Caused by: java.lang.OutOfMemoryError: Java heap space, letting you know that this is, in fact, a memory error instead.
A Minecraft crash report contents in NodePanel indicating a LoaderExceptionModCrash
A Minecraft crash report in NodePanel indicating an OutOfMemory Java heap space error

Now that you know what to look for, let’s look into how to fix these errors. The basic gist is, you need to tell the server how much RAM you’re going to allocate to specific aspects of Java. A common problem with modded Minecraft is even though you might have more than enough RAM to run your modpack, the mods are using up all of the available memory and leaving none for Java to do what it needs to. Through a few different Java arguments, you can tell your server «Reserve X amount for Java».

If you have a Metaspace error, you’ll need to increase the «Metaspace Heap Size» field on the «Java Settings» page of your NodePanel.
It’s also the -XX:MaxMetaspaceSize parameter if you don’t have access to our NodePanel.

Java 8, uses Metaspace, but it was previously known as PermGen in prior Java versions.

The Java Settings tab in Nodepanel for Minecraft showing the Metaspace setting

If you have either a Java heap space or GC overhead limit exceeded error, you’ll need to increase the «Maximum Ram» field in your Java Settings. This is the -Xmx parameter typically.
The Maximum Ram setting in NodePanel for Minecraft

You will not be able to increase the maximum RAM beyond what your Nodecraft bot allows. If you require RAM beyond your plan limit, you will have to upgrade your server.

Knowing what values your server will need is often a matter of trial and error. Modpack authors will often provide the Java arguments they recommend for their modpack in the descriptions or inside a text file in the server files they provide. Chat in with us in our Support Chat if have any questions at all! https://nodecraft.com/support

TLauncher Legacy — это клиент Minecraft, который позволяет установить различные моды и расширения к игре. Однако, при использовании TLauncher Legacy, пользователи могут столкнуться с ошибкой выделения памяти.

Причины ошибки выделения памяти

Ошибка выделения памяти может возникать по нескольким причинам:

  1. Недостаточное количество RAM на компьютере;
  2. Некорректные настройки Java Virtual Machine (JVM);
  3. Установленные моды и расширения, которые потребляют большое количество памяти.

Как исправить ошибку выделения памяти?

Существуют несколько способов исправления ошибки выделения памяти в TLauncher Legacy:

  1. Установить больше ОЗУ на компьютере. Для этого необходимо купить дополнительную плату памяти или обновить текущую;
  2. Изменить настройки JVM. Необходимо открыть TLauncher, выбрать настройки, затем выбрать «Java». В разделе «Опции JVM» нужно ввести следующее значение: -Xmx{значение памяти, которое вы хотите выделить, в МБ}. Например, если вы хотите выделить 4 ГБ памяти, то значение будет выглядеть так: -Xmx4096m;
  3. Удалить ненужные моды и расширения. Некоторые моды могут потреблять больше памяти, чем другие. Попробуйте удалить некоторые моды или расширения и запустить игру заново.

Заключение

Ошибка выделения памяти в TLauncher Legacy может быть несколько проблематичной, однако ее можно исправить, следуя вышеперечисленным рекомендациям. Если вы по-прежнему столкнулись с трудностями, попробуйте обратиться к сообществу TLauncher или проконсультироваться у квалифицированных специалистов.

  • Home
  • Partition Manager
  • Solved: Minecraft Could Not Reserve Enough Space for Object Heap

By Amy | Follow |
Last Updated

Have you come across the Minecraft could not reserve enough space for object heap? How to fix could not reserve enough space for object heap Minecraft? Well, MiniTool will provide you with some methods to fix Minecraft could not reserve enough space for object heap in this post.

Possible Causes for Minecraft Could Not Reserve Enough Space for Object Heap

As it known to all, Minecraft is a popular sandbox game, which wins compliments from users across the world. However, you sometimes might encounter the Minecraft server could not reserve enough space for object heap error when you allocate more ram to Minecraft. In spite that it is helpful to allocate more RAM to Minecraft.

Tip: You need to pay attention to the space here is RAM in fact not the disk space.

What causes could not reserve enough space for object heap Minecraft? Here are several possible reasons. They are summarized as follows:

  • The Java JRE version is incorrect.
  • You specify a large heap size, but the amount of contiguous free space in memory is insufficient.
  • The heap size is larger than amount that the process can hold.
  • The Java version cannot reserve the specified amount of memory. The Minecraft could not reserve enough space for 2097152kb object heap error is one example.

The causes above can lead to the Minecraft could not reserve enough space for object heap error. Certainly, other elements may also trigger the error. How to fix this issue? Please keep reading the following content.

If you like playing games, you may also this like this: Top 3 Fixes to the League of Legends Login Unexpected Error

Solution 1: Lower Heap Size

As talked about earlier, a large heap size will result in the Minecraft could not reserve enough space for the object heap error. So, once you encounter this issue, you can lower the heap size to fix it.

How to do? Well, you can lower the heap size in jobss file, edit bat or sh file. Alternatively, you can also search for -Xms and change it to a proper size.

Solution 2: Add a New System Variable

When you receive the error – Minecraft could not reserve enough space for object heap, you can fix it by adding a new system variable. You’d better create a system restore point or back up your Windows before carrying out this method. By doing so, you can avoid data loss, computer crash or some other accidents.

Step 1: Open the Run window by holding Windows and R keys, and then type control and click on OK to go on.

open control panel from the run utility

Step 2: Click on System and Security > System.

go to the system option

Step 3: Click on Advanced system settings in the left pane.

Advanced system settings

Step 4: In the pop-up window, click Environmental Variables. Under the System Variables section, click on the New button to go on.

click the New button

Step 5: Type the following contents to the corresponding position and click on OK.

Variable name: _JAVA_OPTIONS

Variable value: –Xmx512M

enter the contents and save the changes

This operation will set the memory size to 512MB, which helps you solve the Minecraft could not reserve enough space for object heap error.

Solution 3: Install 64-bit Java JRE

Alternatively, you can also install 64-bit Java JRE to fix the could not reserve enough space for the object heap Minecraft error. How to do? Here are steps.

Step 1: Go to the Java JRE page and click Windows Offline (54-bit) to download it.

Step 2: After finishing downloading, double click on the Java installer to install the 64-bit edition of the Java runtime environment.

Step 3: Launch the Minecraft server and try to allocate more RAM to the server to check if the Minecraft could not reserve enough space for the object heap error is fixed successfully. If it still occurs, follow the steps below. On the contrary, you can ignore these steps.

Step 4: Open the Run window, and then type cmd and press the Enter key.

Step 5: In the next window, type java -version and hit Enter. Then, you will see the detailed Java version information.

Step 6: If the “64-bit Server VM” doesn’t show on the result, it indicates that Minecraft is still finding the 32-bit version. You should remove the previous version and reinstall the 64-bit version by referring to the given steps.

About The Author

Amy

Position: Columnist

Having writing articles about computer tech for a long time, I am rather experienced especially on the aspect of computer optimization, PC enhancement, as well as tech terms explanation. The habit of looking through tech forums makes me a great computer issues collector. And then, many articles related to these issues are released, which benefit plenty of users. Professional, effective, and innovative are always the pursuit of an editing worker.

Понравилась статья? Поделить с друзьями:
  • Ошибка при исполнении операции
  • Ошибка при инкассации денежных средств
  • Ошибка при запуске сити кар драйвинг nsqlite3query
  • Ошибка при инициализации приложения 0xc0000022 windows xp
  • Ошибка при исполнении макроса 1037 windows