Сервер может показывать 20 TPS ровно до момента, когда несколько игроков улетают в неисследованные земли, включается ферма, а чат заполняется вопросами «лагает?». Этот гайд по производительности сервера Minecraft написан как раз для такого момента. Цель — не заливать каждую проблему оперативкой, а найти настоящее узкое место, аккуратно его устранить и сохранить отзывчивость мира, пока сообщество онлайн.

Начните с TPS, MSPT и типа лага

TPS показывает, сколько игровых тиков сервер успевает выполнить за секунду. Цель Minecraft — 20 TPS. Когда TPS падает, редстоун запаздывает, мобы реагируют медленно, а игроки чувствуют, что мир отстаёт от них.

MSPT, миллисекунды на тик, объясняет, почему так происходит. На каждый тик у сервера 50 миллисекунд, чтобы удерживать 20 TPS. Если MSPT регулярно поднимается выше 50, сервер не успевает. Смотреть на эту цифру нужно во время той самой активности, на которую жалуются игроки, а не только на пустом сервере.

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

Не отлаживайте наугад. Проверьте консоль на ошибки, следите за TPS и MSPT в часы пик и по возможности воспроизведите проблему. Немного фактов экономит часы изменений в настройках, которые ни в чём не виноваты.

TPS прячет предупреждение, MSPT его показывает

TPS не бывает выше 20, поэтому сервер на 45 MSPT и сервер на 10 MSPT на графике TPS выглядят одинаково. Только первому до лагов остаётся одна новая ферма. Смотрите MSPT в часы пик: заметно ниже 50 — есть запас, значение около 50 — игроки вот-вот это почувствуют.

Главное — однопоточная мощность процессора

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

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

Если TPS проседает только при загрузке новой местности, процессорное время, скорее всего, уходит на генерацию мира. Если просадка возникает рядом с конкретной базой, проверьте там энтити, воронки, кучи предметов и редстоун-часы. Если лаг повторяется с одинаковым интервалом — ищите запланированные задачи плагинов или модов.

У памяти должна быть задача, а не просто большая цифра

В оперативной памяти живут загруженные чанки, активные энтити, данные плагинов и куча Java. Недостаток памяти даёт давление на сборщик мусора, фризы, вылеты и плохую работу с чанками. Избыток тоже может навредить, если выделен без причины: огромная куча Java делает паузы сборки мусора заметнее.

Нужный объём зависит от типа сервера. Приватному ванильному SMP на несколько человек нужно совсем не то, что Paper-сети на 100 игроков или Forge-сборке с сотнями модов. Модовым серверам обычно требуется заметно больше памяти: каждый мод добавляет контент, логику, реестры и данные мира. Отправную цифру дадут наш гайд по объёму RAM и калькулятор RAM.

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

Используйте актуальную версию Java, которую поддерживает ваша версия Minecraft, и держите JVM-флаги разумными. Хорошие флаги сокращают лишние паузы, но не починят плагин, который сканирует каждый загруженный чанк, или модпак, собранный без тестов производительности. Флаги — это тонкая настройка, а не чудо-лекарство.

Снизьте нагрузку от чанков раньше, чем её почувствуют игроки

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

Предгенерация области, где будут играть, — одно из лучших улучшений, которые вообще можно сделать. Сгенерируйте Верхний мир, Нижний мир и Край в пределах границ до запуска или перед крупным ивентом. Тогда сервер будет подгружать готовые чанки с быстрого диска, а не строить их на лету, пока игроки двигаются. Подробности — в гайде про снижение нагрузки от чанков.

View distance и simulation distance одинаково важны, и это разные настройки. View distance определяет, насколько далеко видят игроки. Simulation distance — насколько далеко остаются активными блоки, жидкости, редстоун, посевы и многие энтити. Снижение simulation distance часто сильнее сокращает время тика, чем снижение одной дальности прорисовки. Обе настройки живут в server.properties.

Универсально правильной цифры нет. Небольшому SMP для друзей может быть отлично и на высоких значениях. Публичному серверу с активными фермами нужна более консервативная настройка. Меняйте по одному параметру, проверяйте на реальном числе игроков и только потом решайте. Если выкрутить всё в минимум, метрики улучшатся, а мир станет казаться пустым.

Энтити, фермы и редстоун — без вреда для геймплея

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

Прежде чем что-то удалять, соберите данные профайлера. Затем бейте точно в источник: ограничьте накопление предметов, умерьте работу воронок, где уместно, чистите брошенные энтити и просите игроков строить фермы хотя бы с базовой оглядкой на эффективность. Публичным проектам помогают понятные правила про AFK-фермы, чанклоадеры и механизмы, созданные только ради лагов.

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

Проверяйте плагины и моды как код, работающий на вашем сервере

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

Держите набор осознанным. Удаляйте заброшенные плагины, дублирующие функции и всё, что ставилось под разовый ивент. То, что оставляете, обновляйте, но сначала читайте описание изменений и делайте бэкап. Плагин, который нормально работал на старой версии Minecraft, после обновления может вести себя иначе.

На Paper или Purpur запускайте профайлер при просадках TPS и изучайте самые дорогие задачи. На Forge и Fabric профилируйте модпак в реальных условиях: игроки онлайн, базы загружены, машины работают, измерения активны. Тест на спавне с одним администратором не доказывает почти ничего.

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

Диск, бэкапы и рестарты — тоже инструменты производительности

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

Планируйте бэкапы так, чтобы они защищали мир, но не нагружали сервер в самый оживлённый час. Держите больше одной точки восстановления, особенно перед сменой модпака, обновлением версии или крупной правкой конфигов. Бэкап полезен только тогда, когда из него можно восстановиться после неудачного обновления или случайного удаления мира.

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

Стройте сервер под реальное поведение игроков

SMP на 10 человек с вайтлистом, кроссплатформенный сервер сообщества и сеть на BungeeCord требуют разного подхода. Отталкивайтесь от геймплея, который вы хостите, ожидаемого онлайна и самой тяжёлой активности игроков. Уже под это выбирайте ядро сервера и ресурсы.

Vanilla хорошо подходит простым сообществам. Paper и Purpur — сильный выбор для серверов на плагинах, которым нужны практичные рычаги оптимизации. Forge и Fabric — для модового геймплея, но с бо́льшим запасом ресурсов и осторожными обновлениями. Если ждёте роста, оставьте место под пиковую активность, а не подбирайте сервер под пустой будний день. Как это посчитать — в гайде по ёмкости публичного сервера.

Elysium сочетает поддержку, которая разбирается в Minecraft, с высокочастотной инфраструктурой на Ryzen и EPYC, NVMe Gen4, автоматическими бэкапами и панелью Pterodactyl, чтобы хостинг не превращался в ещё один проект, которым нужно управлять. Мир и софт настраивать всё равно придётся вам, но воевать с хостингом за базовую отзывчивость — не должно.

Лучший сервер — не тот, у которого самые громкие характеристики в рекламе. А тот, что держится около 20 TPS, когда игроки по-настоящему развлекаются: исследуют, строят, фармят, сражаются и зовут друзей. Замеряйте именно эти моменты, устраняйте нагрузку за ними — и сообщество получит единственную метрику производительности, которая ему важна: мир, в котором приятно играть.

Хостинг, который не становится узким местом

Elysium запускает серверы на высокочастотных Ryzen и EPYC с NVMe Gen4, автоматическими бэкапами и панелью Pterodactyl, так что время на настройку уходит в мир, а не в борьбу с хостингом. Выберите тариф на странице заказа или закажите перенос сервера, который уже лагает у другого провайдера.