Производительность · MINECRAFT JAVA EDITION

Как оптимизировать Minecraft-сервер без потери игровых механик

Оптимизация начинается с измерения и резервной копии. Ниже: изменения с понятным эффектом и способы проверить их пользу. Универсального «магического конфига» для всех версий и проектов нет.

Обновлено 3 мин чтения
При 20 TPS на тик есть около 50 мс
Есть запас · 32 мс
Дольше бюджета · 70 мс
Условный пример, не замер сервера. Продолжительная перегрузка тика приводит к отставанию.

Сначала сохраните исходные показатели

Запишите ядро и сборку, Java, CPU limit, RAM, онлайн, TPS/MSPT и сценарий нагрузки. Снимите профиль spark в момент лагов. Сохраните конфиги, чтобы можно было отменить каждое изменение.

  • Оценивайте пиковые условия, а не пустой сервер после перезапуска.
  • Меняйте один параметр или один связанный блок за раз.
  • Сравнивайте не только средний MSPT, но и длинные пики, ошибки и отзывы игроков.
  • Если причина в сети или клиентском FPS, серверные настройки тиков её не исправят.

Снизьте дистанции осознанно

view-distance влияет на доступный игроку радиус чанков, а simulation-distance: на расстояние, где выполняется часть симуляции. Уменьшение может снизить нагрузку, но меняет видимость и поведение игрового мира. Реальные эффекты зависят от версии и ядра.

Стартовая точка для теста в server.properties, не обязательные значения
view-distance=8
simulation-distance=6

Разберите генерацию и постоянно загруженные чанки

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

  • Согласуйте лимиты мира и отдельные настройки измерений.
  • Проверьте плагины загрузки чанков и механизмы, которые поддерживают их активность.
  • После предварительной генерации проверьте свободный диск и размер резервной копии.
  • Не удаляйте чанки в надежде «сделать быстрее» без карты построек и резервной копии.

Ограничивайте то, что показал профиль

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

НаблюдениеПроверяемое изменениеПобочный эффект
Много сущностей в одном местеНастройки спавна, лимиты ферм или активностиМожет измениться выход ресурсов
Дорогие задачи плагинаЕго интервалы обновления и синхронные операцииРеже обновляются карты, табло и данные
Лаги по расписаниюРазнести бэкап, генерацию и другие тяжёлые заданияМеняется время выполнения работ
Загрузка новых чанковОграничить мир, провести предварительную генерациюТребуются место и время вне пика

Таблицу можно прокрутить по горизонтали →

Плагины, Java и память

Удалите только действительно неиспользуемые расширения, сохранив их данные. Обновления тестируйте на копии. Проверьте рекомендованную Java и параметры запуска; не собирайте случайные GC-флаги из разных руководств. Больше -Xmx не всегда означает меньше пауз или выше TPS.

  • Разделяйте Java heap и общий лимит контейнера.
  • Не ставьте плагин «чистильщик» вместо поиска причины: массовое удаление сущностей способно навредить игрокам.
  • Не используйте /reload как штатный способ безопасного обновления набора плагинов.

Проверьте, что стало лучше

Повторите тот же сценарий и профиль spark после изменения. Зафиксируйте результат: MSPT, характер пиков, использование CPU/RAM и работу важных игровых механик. Если улучшения нет или появились побочные эффекты, верните исходное значение. Список проверенных изменений станет полезнее любого готового чужого конфига.

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

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