Оптимизация аргументов Java Virtual Machine (JVM) стала неотъемлемой частью настройки серверов Minecraft. Грамотно подобранные параметры позволяют улучшить производительность игры, снизить задержки и оптимизировать использование ресурсов. В этой статье мы подробно рассмотрим, как правильно настраивать JVM-аргументы для запуска серверов Minecraft, избегая распространенных ошибок. А так же новые экспериментальные варанты.
При использовании панели Pterodactyl важно учитывать, что параметр Xms (минимальный объем памяти) не должен равняться максимально доступной памяти (Xmx). Рекомендуется установить Xms на 1–1.5 ГБ меньше Xmx, чтобы избежать вмешательства системы Out Of Memory Killer (OOMKiller), которая может завершить работу вашего сервера.
Вы можете использовать вот этот инструмент для создания уже готового варианта запуска с вашими предпочтениями, он уже учитывает объем памяти:Minecraft Flags Generator - Birdflop (Вам стоит учитывать Pterodactyl)
Пример базовых флагов Aikar:
По умолчанию в Minecraft используется G1GC, но он может вызывать значительные лаги при сборке больших куч. Поэтому рекомендуется использовать Shenandoah вместо G1GC. В моих тестах с выделением 4 ГБ оперативной памяти Shenandoah не вызывал заметных задержек и оказался крайне эффективным в работе со сборками модов 200+.
Активировать Shenandoah можно с помощью параметра:
Но вы можете быстро собрать аргументы на его базе вот тут:Minecraft Flags Generator - Birdflop
Однако не все поставщики JVM поддерживают этот сборщик, проверьте совместимость здесь
Для получения дополнительной информации посетите официальные ресурсы по JVM-аргументам
Oracle docs
OpenJDK Wiki
Eclipse OpenJ9 docs

Я протестировал несколько способов оптимизации Minecraft, чтобы улучшить стандартные настройки Java Edition.
Оптимизация работы Minecraft Java Runtime
Я протестировал несколько методов оптимизации Minecraft и улучшения настроек по умолчанию для версии Java Edition.
Основные рекомендации
Для быстрого понимания, вот мои рекомендованные настройки для Java Edition.
Примечание: Некоторые старые версии Forge не работают из-за несовместимости с OpenJ9 и более новыми версиями Java.
Сравнение производительности:
Аналогичным Shenandoah является ZGC, но он вызывает длительные проседания в Minecraft. Я не тестировал его достаточно для точной оценки производительности после настройки.
Minecraft также использует вне-кучную память, например, для текстур. Это означает, что Minecraft может использовать больше памяти, чем указано в настройках. Например, при загрузке текстурного пакета 256x, несмотря на выделенные 4 ГБ, в диспетчере задач отображается, что игра использует более 12 ГБ.

Примечание: Некоторые данные о памяти не отображаются в процессе Minecraft, как показано на скриншоте. Также важно не выделять слишком много памяти, так как это приведет к более длительным фризам во время сборки мусора.
Таким образом, не стоит выделять больше памяти, чем нужно Minecraft. Для ванильной версии и большинства модов 4 ГБ обычно достаточно. Увеличивайте память только в случае частых ошибок по нехватке памяти или слишком частых сборок мусора.
Сравнение использования памяти HotSpot и OpenJ9:
Если у вашего компьютера достаточно оперативной памяти, лучше использовать HotSpot с Shenandoah для более высокой производительности и эффективности.
Особенности настройки на Pterodactyl
При использовании панели Pterodactyl важно учитывать, что параметр Xms (минимальный объем памяти) не должен равняться максимально доступной памяти (Xmx). Рекомендуется установить Xms на 1–1.5 ГБ меньше Xmx, чтобы избежать вмешательства системы Out Of Memory Killer (OOMKiller), которая может завершить работу вашего сервера.
Флаги Aikar: универсальное решение
Aikar предложил набор JVM-аргументов, которые подходят для серверов любого масштаба. Эти параметры обеспечивают оптимальную производительность и масштабируемость. Важное замечание: если объем памяти превышает 12 ГБ, следует внести дополнительные изменения для оптимизации работы сборщика мусора (GC).Вы можете использовать вот этот инструмент для создания уже готового варианта запуска с вашими предпочтениями, он уже учитывает объем памяти:Minecraft Flags Generator - Birdflop (Вам стоит учитывать Pterodactyl)
Пример базовых флагов Aikar:
Java:
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1
Дополнительные параметры для памяти более 12 ГБ:
- -XX:G1NewSizePercent=40
- -XX:G1MaxNewSizePercent=50
- -XX:G1HeapRegionSize=16M
- -XX:G1ReservePercent=15
- -XX:InitiatingHeapOccupancyPercent=20
Пользовательские флаги JVM
Для более точной настройки вы можете создать собственные флаги JVM, адаптированные под ваш сервер. Наиболее часто изменяемые параметры:- -Xms — минимальный объем памяти. Рекомендуется устанавливать равным Xmx, чтобы минимизировать количество сборок мусора.
- -Xmx — максимальный объем памяти. Обычно рекомендуется выделять около половины доступной оперативной памяти.
Выбор JVM: HotSpot или OpenJ9?
Среди наиболее популярных JVM — HotSpot и OpenJ9.- HotSpot обеспечивает высокую производительность, но требует больше памяти.
- OpenJ9 использует меньше ресурсов, что делает его подходящим для систем с ограниченным объемом ОЗУ.
Оптимизация сборки мусора (Garbage Collection)
По умолчанию в JVM используется G1GC, однако для серверов с большими объемами памяти может быть полезным переход на Shenandoah GC. Этот сборщик минимизирует задержки, обеспечивая низкие паузы даже при больших объемах памяти, использование его на клиентской стороне может значительно уменьшить микро фризы в игре вызванные сборкой мусора, однако нужно учитывать что подбор аргументов может быть для каждого индивидуальным.Shenandoah — это сборщик мусора с низкими паузами, который уменьшает время задержек, выполняя сборку мусора параллельно с работой программы на Java. При использовании Shenandoah время паузы при сборке мусора практически одинаково как для кучи объёмом 200 ГБ, так и для 2 ГБ.
По умолчанию в Minecraft используется G1GC, но он может вызывать значительные лаги при сборке больших куч. Поэтому рекомендуется использовать Shenandoah вместо G1GC. В моих тестах с выделением 4 ГБ оперативной памяти Shenandoah не вызывал заметных задержек и оказался крайне эффективным в работе со сборками модов 200+.
Активировать Shenandoah можно с помощью параметра:
Java:
-XX:+UseShenandoahGC
Но вы можете быстро собрать аргументы на его базе вот тут:Minecraft Flags Generator - Birdflop
Однако не все поставщики JVM поддерживают этот сборщик, проверьте совместимость здесь
Заключение
Правильная настройка JVM-аргументов играет ключевую роль в стабильной работе серверов Minecraft. Используйте рекомендуемые флаги, корректируйте параметры в зависимости от особенностей вашего оборудования и экспериментируйте с пользовательскими настройками. Однако будьте осторожны: некорректные изменения могут привести к сбоям.Для получения дополнительной информации посетите официальные ресурсы по JVM-аргументам
Oracle docs
OpenJDK Wiki
Eclipse OpenJ9 docs
Аргументы JVM для клиента в официальном лаунчере Minecraft
Чтобы настроить JVM-аргументы:- Откройте Minecraft Launcher и перейдите в раздел «Установки» (Installations).
- Выберите нужный профиль и нажмите «Дополнительные настройки» (More Options).
- В разделе «Аргументы JVM» (JVM ARGUMENTS) вы можете изменить существующие параметры или добавить новые.
Исследование UltimateBoomer на клиенте

Я протестировал несколько способов оптимизации Minecraft, чтобы улучшить стандартные настройки Java Edition.
Оптимизация работы Minecraft Java Runtime
Я протестировал несколько методов оптимизации Minecraft и улучшения настроек по умолчанию для версии Java Edition.
Основные рекомендации
Для быстрого понимания, вот мои рекомендованные настройки для Java Edition.
Примечание: Некоторые старые версии Forge не работают из-за несовместимости с OpenJ9 и более новыми версиями Java.
Оптимизация для высокопроизводительных систем — Для тех, у кого Minecraft работает хорошо
- Скачайте JRE от AdoptOpenJDK.
- Выберите OpenJDK 15 и установите HotSpot как JVM.
- Если ваши моды не поддерживают Java 15, выберите Java 11.
- Скачайте версию zip — установщик не требуется.
- Разархивируйте JRE в выбранную вами папку.
- Для удобства распакуйте JRE в ту же папку, что и встроенный JRE, который находится по адресу: C:/Program Files (x86)/Minecraft Launcher/runtime.
- В профиле лаунчера измените путь к исполняемому файлу Java на: (Путь к новому JRE)/bin/javaw.exe.
- Измените параметры JVM на:Замените N на количество памяти для выделения.Java:
-XmsNG -XmxNG -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+AlwaysPreTouch
Оптимизация для систем с низким объемом памяти
- Скачайте JRE от AdoptOpenJDK.
- Выберите OpenJDK 15 и установите OpenJ9 как JVM.
- Если ваши моды не поддерживают Java 15, выберите Java 11 или 8.
- Скачайте версию zip — установщик не требуется.
- Разархивируйте JRE в выбранную вами папку.
- Для удобства распакуйте JRE в ту же папку, что и встроенный JRE, который находится по адресу: C:/Program Files (x86)/Minecraft Launcher/runtime.
- В профиле лаунчера измените путь к исполняемому файлу Java на: (Путь к новому JRE)/bin/javaw.exe.
- Измените параметры JVM на:Замените N на количество памяти для выделения.Java:
-XmsNG -XmxNG -Xgcpolicy:gencon
Улучшения сборки мусора с новыми версиями Java
Главное улучшение с новыми версиями Java — это новый сборщик мусора Shenandoah. Shenandoah разработан для коротких пауз с высоким пропуском, что идеально подходит для игр, таких как Minecraft. Паузы GC являются основной причиной рывков в Minecraft, что видно на графике FPS в Optifine. Стандартный сборщик мусора G1GC вызывает заметные рывки. С использованием Shenandoah этот эффект практически исчезает, хотя полностью избавиться от рывков не удастся.Сравнение производительности:
- Стандартная настройка — частые рывки.
- Стандартная настройка, выделено 4 ГБ — реже, но более длительные паузы.
- Java 15 с фиксированным 4 ГБ и Shenandoah GC — рывки почти исчезли.
Аналогичным Shenandoah является ZGC, но он вызывает длительные проседания в Minecraft. Я не тестировал его достаточно для точной оценки производительности после настройки.
Аллокация памяти
Java использует два типа памяти: на-кучу (on-heap) и вне-кучи (off-heap). Вы можете изменить объем памяти, выделенной Minecraft, с помощью параметров JVM -Xms и -Xmx. Это объем на-кучной памяти, которая используется Minecraft, включая мир, встроенный сервер и все, что требуется для работы игры. Эта память подлежит сборке мусора.Minecraft также использует вне-кучную память, например, для текстур. Это означает, что Minecraft может использовать больше памяти, чем указано в настройках. Например, при загрузке текстурного пакета 256x, несмотря на выделенные 4 ГБ, в диспетчере задач отображается, что игра использует более 12 ГБ.

Примечание: Некоторые данные о памяти не отображаются в процессе Minecraft, как показано на скриншоте. Также важно не выделять слишком много памяти, так как это приведет к более длительным фризам во время сборки мусора.
Таким образом, не стоит выделять больше памяти, чем нужно Minecraft. Для ванильной версии и большинства модов 4 ГБ обычно достаточно. Увеличивайте память только в случае частых ошибок по нехватке памяти или слишком частых сборок мусора.
Hotspot против OpenJ9
Есть два варианта JVM: HotSpot и OpenJ9. HotSpot — это традиционный JVM для Java-приложений, таких как Minecraft. OpenJ9 — это более новая JVM, которая заявлена как имеющая более быстрое время старта и меньший объем использования памяти. В новых версиях OpenJ9 устранены проблемы с инициализацией, и теперь он совместим с любыми версиями Minecraft.Сравнение использования памяти HotSpot и OpenJ9:
- HotSpot: использует больше памяти.
- OpenJ9: использует гораздо меньше памяти, даже при аргументе -Xms4G.
Если у вашего компьютера достаточно оперативной памяти, лучше использовать HotSpot с Shenandoah для более высокой производительности и эффективности.
Вложения
Последнее редактирование: