Minecraft Java: требования Paper 1.20–1.21.11 и 26.1+ · 6 мин чтения

Память Java для Minecraft-сервера: Xms, Xmx и проверка нагрузки

Xmx ограничивает Java-кучу, но не всю память процесса. Разберём совместимость Java, бюджет сервера и проверку нагрузки до изменения флагов или покупки дополнительных ресурсов.

Редакция LonelyCraft · Обновлено

Авторская схема «Память Java для Minecraft-сервера: Xms, Xmx и проверка нагрузки»: Бюджет, Профиль, Сравнение.
Память Java для Minecraft-сервера: Xms, Xmx и проверка нагрузки. Heap плюс остальные процессы.

Сначала выберите Java под версию сервера

Сначала откройте таблицу требований Paper: для Paper 1.20–1.21.11 рекомендуется Java 21, для 26.1+ — Java 25. Скачайте нужный JDK с Adoptium: выберите версию, свою ОС и архитектуру amd64/x64 либо arm64. На Windows установите MSI, откройте новый PowerShell и выполните java -version; на Linux проверьте ту Java, которую запускает сервис.

Проверка интерактивного терминала не проверяет автоматически systemd. Для собственного сервиса minecraft.service выполните systemctl cat minecraft.service: найдите ExecStart и путь к Java. Если в команде указан /opt/jdk-25/bin/java, проверяйте /opt/jdk-25/bin/java -version, а не другую программу из PATH. Имя сервиса замените своим.

java -version

Что означают Xms и Xmx

Xms задаёт исходный размер Java-кучи, а Xmx — её максимальный размер. Куча хранит многие объекты программы, но не описывает всю память процесса. Помимо неё используются другие области и нативные ресурсы. Поэтому значение Xmx 4G не означает, что процесс при любых условиях займёт ровно 4 гигабайта.

Операционной системе, дисковому кешу, базе данных и мониторингу тоже нужна память. Если на одной машине работают сервер Minecraft, PostgreSQL и сайт, бюджет должен учитывать их вместе. Нельзя распределить весь физический объём на Java и считать остальные службы бесплатными.

В контейнере дополнительно учитывайте установленный лимит. Хост может иметь много памяти, но контейнеру доступен меньший объём. Если лимит ниже реального потребления процесса, его способен завершить механизм ограничения среды. В таком случае увеличение Xmx без изменения общего бюджета ухудшит ситуацию.

Параметр или показательЧто означаетЧего не показывает
-XmsНачальный размер кучиОбщий расход памяти хоста
-XmxМаксимальный размер кучиПредел всей памяти Java-процесса
RSS процессаФизическая память процессаСвободный запас других служб
Лимит контейнераОграничение окруженияГарантию, что всё доступно куче

Составьте бюджет до изменения запуска

Пример бюджета для машины с 8 ГБ RAM: 4 ГБ максимальной Java-кучи, остаток — ОС, нативной памяти JVM и небольшим соседним службам. Это стартовый бюджет; если на той же машине PostgreSQL, сайт и другие игры, посчитайте их отдельно. На Linux выполните free -h, df -h . и посмотрите systemctl show minecraft.service -p MemoryMax: лимит сервиса может быть меньше всей RAM.

Остановите сервер через stop в его консоли, откройте каталог с paper.jar и выполните приведённую команду. Xms здесь 2 ГБ, Xmx 4 ГБ; после проверки можно сравнить с Xms4G. Название JAR замените фактическим. Для контейнера сначала проверьте установленный memory limit, иначе увеличение Xmx может закончиться OOMKill.

  1. Сохраните прежний скрипт запуска под отдельным именем, например start.before-ram.sh.
  2. Проверьте java -version, свободную память и лимит сервиса/контейнера.
  3. Замените существующие Xms/Xmx в команде запуска; не оставляйте две пары аргументов.
  4. Повторите обычную нагрузку: вход игроков, телепорт в новые чанки, запуск мини-игры.
  5. Выполните /spark tps, сравните паузы и использование всей машины, затем решите, нужен ли другой объём.
java -Xms2G -Xmx4G -jar paper.jar --nogui

Как отличить нехватку памяти от другого ограничения

В установленном spark выполните /spark health show --memory. В старом выпуске аналогичная команда может называться healthreport; смотрите /spark help и справочник версии автора. Если доступен только обычный health, откройте /spark health и раздел памяти. Сравнивайте снимок во время нагрузки с состоянием после неё, не принимайте один высокий показатель кучи за утечку.

Если процесс завершился, выполните journalctl -u minecraft.service --since "30 minutes ago" --no-pager и ищите OutOfMemoryError, oom-kill, Killed process, код завершения. JVM OutOfMemoryError и убийство системой по лимиту — разные ситуации. Внешний журнал и logs/latest.log сохраните до следующего старта.

Прежде чем менять память, прочитайте разделение причин лагов.

Флаги JVM: используйте понятный набор

Длинная строка из старого гайда может содержать неподходящие для текущей Java опции. Начните с рабочей команды выбранной версии Paper и документированного размера памяти. Если добавляете специальные флаги, запишите их назначение и проверяйте результат на той же нагрузке.

Документация Paper предлагает генератор запуска и объяснение распространённых Aikar-флагов. Это источник для изучения, а не повод копировать чужой объём кучи и все параметры без оценки среды. Не меняйте одновременно Java, ядро, память и флаги: при сбое будет трудно понять причину.

Сохраняйте команду запуска в воспроизводимой конфигурации, например в сервисе или инфраструктурном репозитории. Секреты при этом не должны попадать в публичный файл. Чёткий запуск помогает после переезда сравнить новое окружение со старым и быстро вернуть рабочие значения.

Пример команды запуска, а не готовый бюджет

Здесь 4G — пример размера кучи, а paper.jar — условное имя скачанного файла. Подставьте свой бюджет и имя JAR. Равные Xms и Xmx задают одинаковый начальный и максимальный размер; меньший Xms оставляет возможность роста кучи до Xmx. Сам выбор этих значений не гарантирует ускорения. При запуске через systemd или панель изменяйте предусмотренную команду сервиса, а не создавайте второй сервер рядом.

java -Xms4G -Xmx4G -jar paper.jar --nogui

Когда нужен профиль

Для проблемы во время игры снимите /spark profiler start --timeout 60; повторите действие, дождитесь ссылки и откройте Server thread. Для подозрения на частое создание объектов предусмотрен /spark profiler start --alloc --timeout 60, но поддержка режима зависит от ОС и движка профилирования. Документация spark объясняет параметры; отчёт CPU и отчёт выделений решают разные задачи.

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

Практический порядок диагностики находится в статье разбор профиля spark.

Проверка после изменения

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

Если стало лучше, сохраните рабочий запуск и результат проверки. Если улучшения нет, верните прежний параметр и исследуйте следующую причину. Цель настройки — стабильная работа сервера, а не максимальный объём в Xmx или минимальная свободная память на графике.

Частые вопросы

Сколько RAM нужно серверу Minecraft?

Это зависит от мира, игроков, ядра, плагинов и других служб. Оцените обычную нагрузку и общий бюджет машины. Универсальное число без описания среды не помогает выбрать надёжную настройку.

Можно ли поставить Xmx равным всей памяти хостинга?

Так делать не стоит. Процесс использует ресурсы и за пределами кучи, а системе нужен собственный резерв. В контейнере дополнительно учитывайте его лимит, который может отличаться от объёма хоста.

Какая Java нужна современному Paper?

В таблице требований Paper для 1.20–1.21.11 рекомендуется Java21, для 26.1+ — Java25. Проверьте java -version и исполняемый файл, который реально использует сервис.

Рост памяти всегда означает утечку?

Нет. Создание объектов и сборка мусора меняют занятый объём. Сравнивайте одинаковые сценарии и нижний уровень после очистки. Устойчивый рост требует диагностики, а не одного случайного замера.

Просмотры: … · Один просмотр с браузера за день

Было полезно?Общий счёт: …

Одна реакция с браузера. Нажмите повторно, чтобы снять её, или выберите другую.

Источники и документация

Minecraftоптимизациябезопасность

Читайте дальше

Авторская схема «Защита Minecraft-сервера от лагмашин и перегруженных механизмов»: Доступ, Лимиты, Наблюдение.

Производительность и защита · 6 мин

Защита Minecraft-сервера от лагмашин и перегруженных механизмов

Как найти источник перегрузки, ограничить проблемную область, проверить выключатели и переполнение ферм, а также убрать тяжёлые задачи плагинов.

Minecraft Java, Paper; лимиты зависят от ядра и версии

Авторская схема «Как защитить Minecraft-аккаунт, пароль сервера и модовую сборку»: Секреты, Источники, Доступ.

Производительность и защита · 6 мин

Как защитить Minecraft-аккаунт, пароль сервера и модовую сборку

Отдельные пароли, дополнительное подтверждение Microsoft, проверка модов и фальшивых подарков. Что делать при подозрении на потерю игрового доступа.

Java и Bedrock; серверные настройки зависят от платформы