Оптимизация сервера Майнкрафт — как убрать лаги и поднять TPS
Чтобы убрать лаги сервера Майнкрафт, измерьте TPS и MSPT и найдите нагрузку через spark. Настройки чанков, моды для Forge и Fabric, плагины и Bedrock.
Обновлено 16 октября 2026 г.
Чтобы убрать лаги сервера Майнкрафт, измерьте TPS и MSPT во время тормозов, найдите источник нагрузки через spark и измените настройки под него. Обычно проверять нужно загруженные чанки, сущности, фермы, плагины и генерацию мира. Если TPS нормальный, ищите причину в соединении или FPS клиента: увеличение памяти сервера здесь может ничего не изменить.
Как отличить низкий TPS от высокого пинга и низкого FPS
| Показатель | Что означает | Как понимать результат |
|---|---|---|
| TPS | Количество игровых тиков в секунду | При стандартной скорости цель — 20 TPS. Устойчивое падение замедляет работу мира |
| MSPT | Время обработки одного тика | Для стабильных 20 TPS тик должен в среднем укладываться в 50 мс. Чем меньше время, тем больше запас |
| Пинг | Задержка обмена данными между игроком и сервером | Высокий пинг возможен при нормальном TPS |
| FPS | Количество кадров в секунду на устройстве игрока | Низкий FPS исправляют настройками и оптимизацией клиента |
При низком TPS мобы двигаются рывками, блоки ломаются с задержкой, механизмы работают медленнее. Но похожие задержки бывают из-за сети, поэтому сначала сравните показатели и жалобы нескольких игроков. Подробная диагностика отдельных случаев есть в инструкции про низкий TPS.
Среднее значение скрывает короткие зависания. Даже при нормальном среднем TPS смотрите максимальное время тика и 95-й процентиль MSPT: он показывает границу, в которую укладывается большинство измеренных тиков.
Как найти причину лагов через spark
spark — профилировщик: он показывает, на что сервер тратит время. В Paper он встроен начиная с выпуска 1.21; на других ядрах и загрузчиках может потребоваться отдельный совместимый плагин или мод. Запускайте диагностику из консоли либо с правами администратора.
- Дождитесь лагов. Проверка пустого сервера после перезапуска не покажет нагрузку, которая возникает вечером при игре.
- Проверьте показатели:
/spark tps. В Paper также доступны/tpsи/mspt. - Запишите профиль:
/spark profiler start --timeout 300. Во время записи воспроизведите проблему: посетите ферму, полетайте по новым территориям или запустите проблемную операцию. - Откройте полученный отчёт. В дереве главного потока сервера ищите затратные операции: обработку сущностей, генерацию чанков, задачи конкретного плагина или мода. Раскрывайте вложенные вызовы: название общего раздела ещё не объясняет причину.
- Измените одну настройку и повторите проверку. Сравнивайте MSPT при похожем числе игроков и тех же действиях.
Для редких подвисаний используйте /spark profiler start --only-ticks-over 100 --timeout 300: запись будет учитывать тики, длительность которых превышает указанный порог в миллисекундах. Историю сборки мусора можно проверить командой /spark gc. Если зависание заканчивается аварийной остановкой сервера, обратитесь к инструкции по ошибке Server crashed.
В обычной Java 26.3 команда /tick query показывает целевую частоту тиков и сведения о времени их обработки. Целевая частота сама по себе не доказывает, что сервер успевает её выдерживать. Команда появилась в выпуске 1.20.3; на более старых версиях её нет.
/timings paste из старых руководств не стоит делать основой диагностики: Paper рекомендует spark, а Timings устарел.
Какие настройки чанков уменьшить в первую очередь
Сохраните копию конфигурации, остановите сервер и откройте server.properties. Для первого теста можно использовать такие значения — это отправная точка, а не обязательный пресет.
| Настройка | Пример для проверки | Что изменится |
|---|---|---|
view-distance | view-distance=8 | Сервер будет отправлять игрокам меньше окружающих чанков. Снизятся затраты на их загрузку, передачу и хранение в памяти |
simulation-distance | simulation-distance=6 | Уменьшится область симуляции вокруг игроков. Часть удалённых сущностей и процессов мира перестанет обновляться |
Сохраните файл и запустите сервер заново. Если результат не изменился, проверьте настройки отдельных миров и плагины, которые управляют дистанцией: они могут переопределять значения из server.properties.
simulation-distance появилась в Java 1.18 и есть в обычном сервере, а не только в Paper. В версиях 1.12.2 и 1.16.5 такого параметра нет. При уменьшении дистанции проверяйте фермы: загрузчики чанков и другие источники загрузки могут продолжать держать отдельные участки активными.
Чем дальше игроки расходятся друг от друга, тем больше разных участков мира приходится обслуживать. Поэтому настройки, подходящие для общей базы, могут оказаться тяжёлыми для сервера с постоянными путешествиями.
Что делать с мобами, жителями, воронками и фермами
Уменьшайте нагрузку там, где её подтвердил профиль. Количество сущностей само по себе не даёт универсального предела: разные мобы и механизмы требуют разного времени обработки.
- Скопления мобов и жителей. Проверьте крупные загоны, торговые залы, поиск пути и столкновения. Ограничьте бесконтрольное размножение и размер скоплений.
- Выпавшие предметы. Найдите переполненные накопители и фермы, которые продолжают выбрасывать добычу на землю. Добавьте отключение фермы при заполнении хранилища.
- Воронки и сортировщики. Проверьте большие постоянно работающие линии. Меняйте интервалы переноса только после теста: сортировщик может перестать работать правильно.
- Редстоун и модовые механизмы. Отключайте установки, когда они не нужны. Постоянно работающие часы и огромные производственные линии стоит проверять отдельно.
- Постоянно загруженные участки. Проверьте загрузчики чанков из модов, плагинов и механизмов игроков. Уход с базы не всегда прекращает её обработку.
Уменьшение лимитов появления мобов влияет на игровой процесс и производительность ферм, но не удаляет уже существующие скопления животных или жителей. Меняйте лимиты постепенно и проверяйте последствия.
Автоматическая очистка предметов может убрать последствия переполнения фермы, но оставит причину. Массовое удаление всех сущностей опасно для жителей, транспорта и других объектов игроков.
Как убрать лаги при генерации новых чанков
Если сервер тормозит именно при исследовании мира, заранее сгенерируйте выбранную область через Chunky. Сначала проверьте свободное место на диске: предгенерация увеличивает размер мира и сама создаёт нагрузку.
- Выберите нужный мир. Например, в Paper команда
/chunky world worldвыбирает мир с именемworld; замените его своим именем. - Задайте область отдельными командами:
/chunky shape square,/chunky center 0 0,/chunky radius 1000. Радиус задаётся в блоках. - Проверьте выбор командой
/chunky selection, затем запустите/chunky start. Выберите время без активной игры. - Если предгенерация мешает игрокам, приостановите её командой
/chunky pause. Для продолжения используйте/chunky continue.
Предгенерация не устанавливает границу мира. Если игроки выйдут за подготовленную область, генерация новых чанков возобновится. Операцию нужно планировать отдельно для каждого нужного измерения; уже готовые чанки всё равно требуют загрузки и обработки.
Какие плагины помогают оптимизировать сервер
Для сервера с плагинами рассмотрите Paper. Purpur добавляет настройки и игровые возможности поверх Paper, но название ядра не гарантирует меньший MSPT. Перед сменой ядра проверьте копию мира: поведение отдельных механизмов может отличаться от Vanilla.
| Инструмент | Для чего нужен | Ограничение |
|---|---|---|
| spark | Находит источник нагрузки | Сам по себе не ускоряет обработку мира |
| Chunky | Генерирует выбранную область заранее | Помогает против нагрузки от генерации, но не исправляет тяжёлые фермы |
| ViewDistanceTweaks | Автоматически регулирует дистанции по нагрузке | Может менять дальность видимости и работу удалённых ферм; нужен совместимый выпуск |
Не определяйте «тяжёлый плагин» только по названию. Причиной может быть отдельная задача, частое обращение к базе данных, построение карты или ошибка в журнале. Проверяйте отчёт, обновляйте проблемный компонент и тестируйте его настройки. Основы совместимости описаны в руководстве про плагины для сервера.
Какие моды выбрать для Fabric, Forge и NeoForge
Выбирайте мод по версии игры, загрузчику и поддержке выделенного сервера. Клиентская оптимизация графики не заменяет серверную: Sodium и Entity Culling помогают FPS игрока, а Entity Culling не отключает серверную симуляцию невидимых мобов.
| Сервер | Что рассмотреть | Ожидаемая задача |
|---|---|---|
| Fabric на Java 26.3 | Lithium, FerriteCore | Lithium оптимизирует игровую логику; FerriteCore уменьшает использование памяти |
| NeoForge | Lithium, FerriteCore при наличии выпуска под вашу версию | Оптимизация логики и памяти; файлы Fabric сюда не подходят |
| Forge 1.20.1 | ModernFix, FerriteCore | ModernFix улучшает загрузку и исправляет ряд проблем; FerriteCore уменьшает потребление памяти |
| Forge 1.16.5 | Совместимые выпуски ModernFix и FerriteCore | Оптимизация старой сборки без переноса файлов от новых версий |
Экономия памяти и ускорение запуска не обязательно повысят TPS уже работающего сервера. После каждого изменения проверяйте профиль и работу сборки. Для 1.12.2 нужен отдельный набор совместимых инструментов: перечисленные современные моды нельзя переносить туда напрямую.
Paper не заменяет загрузчик Forge для существующей модовой сборки. Если мир зависит от модовых блоков и предметов, оптимизируйте его в рамках того же загрузчика. Порядок работы с такой сборкой описан в руководстве про Forge-сервер.
Когда добавлять память и менять хостинг
- Проверьте паузы сборки мусора. Рост и последующее снижение занятой памяти — обычная работа Java. Сам по себе высокий показатель в панели не доказывает утечку.
- Оставьте память за пределами
-Xmx. Этот параметр ограничивает кучу Java, а процесс и операционная система используют дополнительную память. Нельзя отдавать куче весь лимит контейнера. - Не копируйте флаги запуска без проверки. Используйте версию Java, которую требует ваш выпуск ядра или загрузчика.
-Xmsзадаёт начальный размер кучи,-Xmx— максимальный; их равенство не является обязательным условием нормальной работы. - Проверьте процессор и ограничения тарифа. Основной цикл обычного сервера обрабатывается одним главным потоком, хотя другие задачи используют дополнительные потоки. Поэтому низкая общая загрузка процессора не исключает упор в одно ядро.
- Проверьте диск. Если задержки совпадают с загрузкой чанков, сохранением или резервным копированием, выясните, хватает ли производительности накопителя.
Апгрейд оправдан, когда профиль подтверждает нехватку ресурсов после устранения лишней нагрузки. Объём RAM, частота процессора и число игроков по отдельности не позволяют обещать стабильный TPS.
Как оптимизировать сервер Bedrock
В Bedrock Dedicated Server тоже есть server.properties, но область обработки мира задаётся параметром tick-distance, а дальность видимости — view-distance. Уменьшайте их постепенно, проверяя поведение мобов и ферм: правила загрузки мира отличаются от Java.
Проверьте скопления сущностей, постоянно работающие механизмы, скрипты и дополнения. Плагины Paper и моды Forge или Fabric не подходят для Bedrock Dedicated Server. Если игрок Bedrock подключается через Geyser к серверу Java, серверную нагрузку нужно диагностировать на стороне Java.
Играть интереснее на сервере — выбирайте в рейтинге серверов Майнкрафт и заходите прямо сейчас.
