База знаний / OutOfMemoryError: Java heap space

🔍 Решение проблем

OutOfMemoryError: Java heap space

Если в консоли или в logs/latest.log появляется что‑то вроде:

java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Metaspace
There is insufficient memory for the Java Runtime Environment

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

Как убедиться, что это OOM

  • В конце лога перед остановкой есть OutOfMemoryError.
  • Сервер работал какое‑то время и «умер» при исследовании мира, входе игроков или генерации чанков.
  • Сразу после старта − типично для тяжёлого модпака на малом объёме RAM.

Не путать с Can't keep up!: при нехватке производительности сервер работает, но лагает. При OOM процесс чаще именно падает.

Что сделать в первую очередь

  1. Увеличьте тариф (RAM) − самый прямой путь. Для современных серверов ваниль/Paper комфортное значение ОЗУ от ~2 ГБ, для лёгких модпаков − от 4 ГБ, для тяжёлых (GTNH, большие модпаки 1.20+) − 6–12 ГБ и выше. Смена ресурсов: как сменить тариф.
  2. Перезапустите сервер после смены тарифа и проверьте, что в панели отображается новый объём памяти.
  3. Если OOM повторяется на том же тарифе − смотрите утечки и тяжелые места ниже.

Модпаки и лишние моды

  • Не ставьте клиентские моды на сервер (оптимизация рендера, миникарты только для клиента и т.п.) − они едят память впустую или ломают старт.
  • Уберите недавно добавленные моды и проверьте, уходит ли OOM.
  • Очень большие модпаки на слабом тарифе «не вылечить» настройками − нужна RAM.

Мир, сущности и плагины

  • Фермы с тысячами мобов, загруженные чанки, много миров (Multiverse) раздувают heap.
  • Снизьте view-distance / simulation-distance в server.properties.
  • На Paper подкрутите лимиты спавна и активации сущностей (bukkit.yml, spigot.yml, Paper).
  • Для поиска утечек памяти и требовательных плагинов/модов во время работы используйте spark (heap dump / tick monitor).

Metaspace и «insufficient memory»

  • OutOfMemoryError: Metaspace − нехватка области под классы (часто сотни модов/плагинов). Лечится увеличением ОЗУ тарифа.
  • insufficient memory for the Java Runtime Environment − системе не хватило памяти даже на старт JVM (часто тариф слишком мал).

Связанные статьи