Как оптимизировать Minecraft-сервер без потери игровых механик
Оптимизация начинается с измерения и резервной копии. Ниже: изменения с понятным эффектом и способы проверить их пользу. Универсального «магического конфига» для всех версий и проектов нет.
Сначала сохраните исходные показатели
Запишите ядро и сборку, Java, CPU limit, RAM, онлайн, TPS/MSPT и сценарий нагрузки. Снимите профиль spark в момент лагов. Сохраните конфиги, чтобы можно было отменить каждое изменение.
- Оценивайте пиковые условия, а не пустой сервер после перезапуска.
- Меняйте один параметр или один связанный блок за раз.
- Сравнивайте не только средний MSPT, но и длинные пики, ошибки и отзывы игроков.
- Если причина в сети или клиентском FPS, серверные настройки тиков её не исправят.
Снизьте дистанции осознанно
view-distance влияет на доступный игроку радиус чанков, а simulation-distance: на расстояние, где выполняется часть симуляции. Уменьшение может снизить нагрузку, но меняет видимость и поведение игрового мира. Реальные эффекты зависят от версии и ядра.
view-distance=8
simulation-distance=6Разберите генерацию и постоянно загруженные чанки
Лаги при перемещении часто связаны с генерацией нового мира. Предварительная генерация может убрать эту работу из игрового пика, но занимает CPU, время и диск. Сначала выберите границу мира и оцените объём. Не запускайте большую генерацию на загруженном сервере.
- Согласуйте лимиты мира и отдельные настройки измерений.
- Проверьте плагины загрузки чанков и механизмы, которые поддерживают их активность.
- После предварительной генерации проверьте свободный диск и размер резервной копии.
- Не удаляйте чанки в надежде «сделать быстрее» без карты построек и резервной копии.
Ограничивайте то, что показал профиль
Проблемные скопления мобов, воронок и block entities ищите по профилю и конкретной локации. Уменьшение радиусов активации, спавна или лимитов может помочь, но влияет на фермы и игровой баланс. Объясните изменения игрокам и проверьте механизмы на копии.
| Наблюдение | Проверяемое изменение | Побочный эффект |
|---|---|---|
| Много сущностей в одном месте | Настройки спавна, лимиты ферм или активности | Может измениться выход ресурсов |
| Дорогие задачи плагина | Его интервалы обновления и синхронные операции | Реже обновляются карты, табло и данные |
| Лаги по расписанию | Разнести бэкап, генерацию и другие тяжёлые задания | Меняется время выполнения работ |
| Загрузка новых чанков | Ограничить мир, провести предварительную генерацию | Требуются место и время вне пика |
Таблицу можно прокрутить по горизонтали →
Плагины, Java и память
Удалите только действительно неиспользуемые расширения, сохранив их данные. Обновления тестируйте на копии. Проверьте рекомендованную Java и параметры запуска; не собирайте случайные GC-флаги из разных руководств. Больше -Xmx не всегда означает меньше пауз или выше TPS.
- Разделяйте Java heap и общий лимит контейнера.
- Не ставьте плагин «чистильщик» вместо поиска причины: массовое удаление сущностей способно навредить игрокам.
- Не используйте /reload как штатный способ безопасного обновления набора плагинов.
Проверьте, что стало лучше
Повторите тот же сценарий и профиль spark после изменения. Зафиксируйте результат: MSPT, характер пиков, использование CPU/RAM и работу важных игровых механик. Если улучшения нет или появились побочные эффекты, верните исходное значение. Список проверенных изменений станет полезнее любого готового чужого конфига.
Документация и источники
Названия файлов и параметры могут отличаться между версиями. Перед изменением сверяйте документацию своей сборки.