TeaHost

Minecraftобновлено 6 мин чтения

Как оптимизировать Minecraft сервер: полное руководство 2026

Оптимизация сервера Minecraft по слоям: ядро, память и флаги JVM, server.properties, bukkit.yml, spigot.yml и конфиги Paper, предгенерация мира и контроль TPS через spark

Кратко

Оптимизация сервера Minecraft идёт по слоям: ядро Paper или Purpur вместо Vanilla, view-distance 6–8 и simulation-distance 5–6, лимиты мобов в bukkit.yml и entity-activation-range в spigot.yml, затем конфиги Paper и предгенерация мира через Chunky. Результат проверяется командой /spark tps: норма — 20 TPS, для поиска виновника — /spark profiler.

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

Пошаговая инструкция с готовыми значениями для каждого файла — в базе знаний: оптимизация сервера Minecraft. Если сервер уже тормозит прямо сейчас, начните с диагностики по статье как поднять низкий TPS.

Что вообще оптимизируем: TPS

Сервер Minecraft обрабатывает мир 20 раз в секунду, на каждый тик у него 50 миллисекунд. Если мобы, редстоун, чанки и плагины не укладываются в это время, TPS падает, и игра идёт как в замедленной съёмке: блоки ломаются с задержкой, мобы дёргаются. Норма — 20 TPS, ниже 18 игроки уже замечают.

Важно отличать это от пинга. Если лагает у одного игрока, а у остальных всё в порядке, дело в его канале, а не в настройках сервера.

Слой 1. Ядро

Самый дешёвый и самый большой выигрыш — правильное ядро:

  • Paper — оптимизированный форк Spigot, поддерживает плагины Bukkit и Spigot. Выбор по умолчанию.
  • Purpur — форк Paper с дополнительными настройками геймплея, совместим с плагинами Paper.
  • Fabric с модами-оптимизаторами вроде Lithium — если нужен ванильный геймплей с модами, а не плагины.

Ванильное ядро и чистый Spigot для публичного сервера не подходят: в них нет большинства оптимизаций, о которых речь ниже. Сравнение ядер — в статье Paper, Spigot или Purpur.

Слой 2. Память и флаги JVM

Памяти нужно столько, чтобы хватало под онлайн, но не «с запасом на всякий случай». Ориентир на ванильной сборке: 4 ГБ — до 15 игроков, 6 ГБ — до 25, 8 ГБ — до 40. Плагины и моды примерно вдвое увеличивают расход. Подробнее — в статье сколько RAM нужно серверу Minecraft.

Если -Xmx задаётся вручную в параметрах запуска, оставляйте 1–1,5 ГБ сверх него процессу Java и системе — так советует документация PaperMC по флагам Aikar. Там же готовая строка с G1GC: -Xms равен -Xmx, -XX:+UseG1GC, -XX:MaxGCPauseMillis=200, -XX:+DisableExplicitGC и остальные. Эти флаги сглаживают паузы сборщика мусора, но не лечат лаги от ферм и плагинов. Разбор под разные объёмы памяти — в заметке флаги JVM Aikar.

Слой 3. Дистанции в server.properties

Два параметра дают больше, чем все остальные конфиги вместе:

код
view-distance=8
simulation-distance=6

view-distance — сколько чанков сервер отправляет игроку, simulation-distance — в каком радиусе обсчитываются мобы, редстоун и рост растений. По умолчанию оба равны 10. На людном сервере ставьте view-distance 6–8 и simulation-distance 5–6. Ниже 5 опускать не стоит: у игроков перестанут работать фермы рядом с базой. Как выбрать значение под свой онлайн, разобрано в статье про view-distance.

Слой 4. Мобы и сущности: bukkit.yml и spigot.yml

Сущности — самая частая причина просадок на выживании: стада у ферм, мобы в пещерах, тысячи выпавших предметов. Основные рычаги:

ПараметрФайлЧто делаетОриентир
spawn-limits.monstersbukkit.ymlЛимит враждебных мобов50 вместо 70
spawn-limits.animalsbukkit.ymlЛимит животных8–10
mob-spawn-rangespigot.ymlРадиус спавна вокруг игрока в чанках6
entity-activation-rangespigot.ymlС какого расстояния мобы «засыпают»animals 16, monsters 24, misc 8
merge-radiusspigot.ymlСлияние лежащих предметов и опытаitem 3.5, exp 4.0 вместо 2.5 и 3.0
despawn-rangespaper-world-defaults.ymlКогда мобы исчезают вдали от игроковhard 96 вместо 128

Меняйте по одному-два значения и смотрите эффект. Слишком агрессивные лимиты ломают фермы, и игроки заметят это раньше, чем рост TPS. Подробно по каждому файлу — настройка bukkit.yml и настройка spigot.yml.

Слой 5. Конфиги Paper

С версии 1.19 настройки Paper лежат в папке config: paper-global.yml на весь сервер и paper-world-defaults.yml для миров. Что даёт реальный прирост:

код
misc:
  redstone-implementation: ALTERNATE_CURRENT
hopper:
  cooldown-when-full: true
environment:
  optimize-explosions: true
chunks:
  max-auto-save-chunks-per-tick: 8
  prevent-moving-into-unloaded-chunks: true
tick-rates:
  mob-spawner: 2

ALTERNATE_CURRENT — быстрый алгоритм редстоуна, совместимый с ванильным поведением почти во всех схемах; на техническом сервере с точными таймингами оставьте VANILLA. Меньшее значение max-auto-save-chunks-per-tick превращает «лаг по расписанию» от автосохранения в ровную фоновую нагрузку. prevent-moving-into-unloaded-chunks нужен на серверах с элитрами. Описание всех ключей — в справочнике конфигурации миров Paper, разбор на русском — в заметке про paper-world-defaults.yml.

Правьте Paper-конфиги на остановленном сервере: /reload их не перечитывает. И не копируйте чужой конфиг целиком: значения сильно зависят от того, что происходит именно на вашем сервере.

Слой 6. Предгенерация мира

Генерация новых чанков — одна из самых тяжёлых операций. Когда несколько игроков разлетаются на элитрах в разные стороны, сервер генерирует мир на лету, и TPS проседает. Решение — сгенерировать мир заранее плагином Chunky:

код
chunky world world
chunky radius 3000
chunky start

Задачу можно приостановить командой chunky pause и продолжить через chunky continue, поэтому её удобно запускать ночью без игроков. Все команды — в вики Chunky на GitHub. После предгенерации поставьте границу мира того же радиуса, иначе игроки уйдут дальше и проблема вернётся. Чем больше радиус, тем больше места на диске займёт мир, это стоит учесть при выборе тарифа.

Слой 7. Плагины и мониторинг

Один плохо написанный плагин способен съесть половину тика. Начиная с 1.21 Paper поставляется со встроенным профилировщиком spark, а старый Timings устарел и выключен по умолчанию. Основные команды:

  • /spark tps — текущий TPS и время тика;
  • /spark health — общее состояние сервера, включая память;
  • /spark profiler start --timeout 300 — профиль на 5 минут, по ссылке видно, какой плагин или механика съедает время.

Снимайте профиль в вечерний пик, а не на пустом сервере. Как читать отчёт — в заметке анализ лагов через spark.

Порядок работы

  1. Ядро Paper или Purpur.
  2. Память по онлайну и флаги Aikar.
  3. view-distance и simulation-distance.
  4. Лимиты мобов и активация сущностей.
  5. Конфиги Paper.
  6. Предгенерация и граница мира.
  7. Профиль spark в пиковые часы и разбор плагинов.

Только если после всего этого TPS проседает при разумном онлайне, упираетесь в процессор или память, и тогда пора смотреть на тариф помощнее.

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

Какой TPS считается нормальным?

20 — это максимум и норма. 19–20 игроки не замечают, ниже 18 начинаются видимые задержки, ниже 15 играть уже некомфортно.

Что даёт самый большой прирост производительности?

Переход на Paper и снижение view-distance и simulation-distance. Эти два шага обычно дают больше, чем вся тонкая настройка конфигов вместе.

Поможет ли просто добавить памяти?

Только если сервер действительно упирается в память: это видно в /spark health и по ошибкам OutOfMemoryError. Если тик съедают фермы или плагин, лишние гигабайты TPS не поднимут, а слишком большой -Xmx без запаса для системы может привести к остановке процесса.

Нужен ли Timings на Paper?

Нет. Timings устарел и в 1.21 выключен по умолчанию, вместо него используйте встроенный spark.

Как часто перезапускать сервер?

Ежедневный рестарт в часы минимального онлайна освобождает память и сбрасывает накопившиеся сущности. Настроить его можно по расписанию в панели — см. заметку настройка авторестарта.

Коротко

Оптимизируйте по слоям: ядро Paper, память по онлайну с флагами Aikar, view-distance 6–8 и simulation-distance 5–6, лимиты мобов в bukkit.yml и spigot.yml, конфиги Paper, предгенерация через Chunky. Проверяйте эффект командой /spark tps и профилем spark в пиковые часы, меняя по одному параметру за раз.

Нужна помощь с настройкой — напишите в поддержку TeaHost в Telegram.

Пошаговая инструкция в базе знанийОптимизация Minecraft сервера
ПоделитьсяTelegramVK
Все статьи рубрики