Модпак, который отлично идёт для двух друзей, может рассыпаться в тот момент, когда шесть игроков начинают исследовать мир в разные стороны, строить автоматизированные фабрики и грузить прожорливые до чанков измерения. Поэтому гайд по оптимизации модового сервера должен начинаться с реальной цели: не с самого большого числа гигабайт, а со стабильного TPS, когда в мир действительно играют.
Игровой цикл Minecraft идёт на 20 тиках в секунду. Когда сервер не успевает закрыть тик за 50 миллисекунд, TPS падает. Игроки чувствуют это как задержку разрушения блоков, замирающих и рывками дёргающихся мобов, медленные механизмы или таймауты у всех во время телепорта. Модовый Minecraft добавляет куда больше работы на каждый тик, поэтому чинить лаги — значит понять, какая именно нагрузка съедает время CPU, память, диск или сеть.
Начни с лагов, которые можно измерить
Не начинай с удаления случайных модов или удвоения оперативки. Сначала воспроизведи проблему и собери полезные данные. Смотри TPS и MSPT, пока игроки онлайн, затем сравни с базой на пустом сервере. TPS говорит, успевает ли сервер. MSPT показывает, насколько близко он к промаху по бюджету тика в 50 мс. Сервер на 19.8 TPS, но со средним MSPT 45, уже в одной загруженной базе от проблем.
Используй профилировщик, поддерживающий твой загрузчик и версию сервера, например spark, где совместим. Снимай профиль во время лаг-спайка, а не через десять минут, когда сервер простаивает. Ищи сущности, блок-сущности, генерацию мира, конкретное событие мода или одно измерение, забирающее непропорционально большую долю времени тика.
Обычные подозреваемые знакомы: большие фермы мобов, тысячи выпавших предметов, бесконтрольные сети труб, системы хранения, сканирующие огромные инвентари, чанклоадеры и механизмы, тикающие каждый игровой тик. Профилировщик превращает «сервер лагает» в полезный ответ вроде «этот карьер создаёт 800 сущностей» или «это измерение генерирует местность сразу для четырёх игроков». Такое различие экономит часы. Наш гайд как поднять TPS подробнее разбирает, как читать профиль.
Считывай паттерны до смены настроек
Лаги, начинающиеся при перемещении игроков, — обычно проблема генерации мира или чтения с диска. Лаги, усиливающиеся у одной базы, — чаще сущности, блок-сущности или автоматизация. Сервер, который работает нормально несколько часов, а потом подвисает или крашится, вероятно, упирается в память или страдает от давления сборки мусора. Лаги только в пиковые часы могут просто означать, что тарифу не хватает быстрого CPU под текущее число активных игроков.
Один битый чанк — тоже не то же самое, что общая проблема производительности. Если TPS обваливается всякий раз, когда кто-то заходит в определённый диапазон координат, проверь это с оператором онлайн, посмотри, что там загружено, и сделай бэкап, прежде чем что-то удалять. Никогда не относись к живому миру как к одноразовой тестовой папке.
Оптимизация модового сервера: сначала чини самую большую нагрузку
Самая быстрая оптимизация — часто ограничение работы, которую серверу вообще не нужно было делать. Начни с сущностей. Задай разумные лимиты мобов в конфиге модпака или сервера, быстро убирай кучи предметов и не оставляй фермы работать, когда их вывод никому не нужен. Фильтры предметов, апгрейды «в пустоту» и обработка переполнения — не просто удобства. Они не дают одной сломанной ферме превратить сервер в слайд-шоу.
Затем разберись с загрузкой чанков. Чанклоадеры мощны тем, что держат механизмы, фермы и измерения активными без игроков рядом. Но это и постоянный счёт за CPU. Задай лимит на игрока, отключи лоадеры в измерениях, где они создают проблемы, и требуй использовать их осознанно. Публичным серверам могут понадобиться правила строже, чем маленькому SMP по вайтлисту, — нельзя рассчитывать, что каждый игрок понимает цену вечно загруженной фабрики.
Автоматизация заслуживает того же внимания. Трубы, кабели, логистические сети и мультиблоки поодиночке дёшевы, но дороги в масштабе. Поощряй игроков использовать апгрейды, пакетную обработку и разумный тайминг редстоуна вместо десятков всегда работающих систем. Если в паке есть известный тяжёлый транспортный или складской мод, настрой его интервалы сканирования и лимиты до запуска, а не после того, как зона спавна забита механизмами.
Здесь есть компромисс. Агрессивная чистка сущностей или жёсткие лимиты чанклоадеров могут расстроить строителей, спроектировавших постройки под задуманную механику мода. Объясняй лимиты, публикуй их понятно и давай игрокам альтернативы. Стабильный геймплей лучше сервера, где каждая амбициозная постройка становится скрытым налогом на TPS.
Предгенерируй мир до открытия дверей
Генерация свежей местности — одна из самых частых причин, почему новый модовый сервер ощущается медленным. Каждый впервые исследованный чанк может запустить расчёты биомов, структуры, руды, объекты, модовые деревья, подземные системы и генерацию, специфичную для измерения. Когда несколько игроков разлетаются в противоположные стороны, эта нагрузка быстро умножается.
Предгенерация обычного мира и любых загруженных измерений выносит эту работу из пиковых часов. Выбирай радиус под своё сообщество. Приватному серверу для пары друзей может хватить скромной границы. Публичному серверу с упором в исследование нужно больше пространства с первого дня. Задай границу мира, чтобы игроки не убегали за пределы сгенерированной зоны и не запускали ту же проблему с лагами заново.
Предгенерация требует времени, CPU и места на диске. Запускай её до старта или в техническое окно, следи за свободным местом и держи бэкапы. NVMe-диск помогает, потому что файлы чанков постоянно читаются и пишутся, но скорость диска не компенсирует безлимитную генерацию из-за плохо настроенной границы мира.
Прежде чем брать тариф побольше, сними профиль spark во время реальных лагов и прочитай первые несколько строк. Большинство модовых лагов сводятся к горстке сущностей, одной вечно загруженной фабрике или одному тикающему чанку — проблемам, которых лишняя оперативка не касается. Наращивай железо только после того, как профиль подтвердил реальную нагрузку.
Подбирай железо под Minecraft, а не под маркетинговые цифры
Модовым серверам нужна память, но производительность Minecraft сильно завязана на частоте одного ядра CPU. Главный серверный поток тянет большую часть работы тика, поэтому перегруженный первичный поток будет лагать, даже когда несколько ядер CPU выглядят почти простаивающими. Больше vCPU помогает с сетью, бэкапами, задачами генерации и вспомогательными процессами, но не решает автоматически проблему слабого главного потока.
Оперативка должна соответствовать модпаку, ожидаемому числу игроков и долгосрочной сложности мира. Лёгкий Fabric-пак для пары друзей может комфортно идти на куда меньшей памяти, чем крупный Forge-пак с техникой, магией, квестами, измерениями и десятками активных механизмов. Оставь место под ОС и накладные расходы панели. Отдать Java каждый доступный гигабайт — способ сделать сам хост нестабильным.
Не считай, что больше выделенной оперативки всегда быстрее. Раздутая куча Java увеличивает паузы сборки мусора, а слишком маленькая даёт постоянное давление памяти и краши. Задай разумный минимум и максимум кучи под пак, держи их близко, где уместно, и используй JVM-флаги под свою версию Java. Современные версии Minecraft обычно требуют Java 17 или Java 21 в зависимости от загрузчика и пака. Сначала приведи рантайм Java в соответствие с требованием пака, а уже потом диагностируй что-либо ещё.
Вот где важна инфраструктура, заточенная под Minecraft. Высокочастотное железо Ryzen или EPYC, быстрый диск NVMe Gen4, надёжные бэкапы и защита от DDoS убирают инфраструктурные узкие места, которые конфиг-файлы не починят. Elysium построен вокруг этой идеи: дай серверу крепкий фундамент, а затем позволь админам заниматься миром, а не борьбой с панелью.
Держи изменения Forge, Fabric и модпака под контролем
Forge и Fabric не взаимозаменяемы, а оптимизационные моды не универсально безопасны. Мод производительности, хорошо работающий на Fabric, может не существовать для Forge, конфликтовать с другим модом или менять поведение, на которое опирается пак. Добавляй только моды производительности, проверенные под твою точную версию Minecraft, версию загрузчика и релиз пака.
Вноси изменения сначала в тестовой копии. Обновляй по одной группе модов за раз, запускай сервер, смотри логи, заходи как игрок и тестируй системы, которыми реально пользуется сообщество. Проверь измерения, приватки, загрузку чанков, магазины, квесты и генерацию мира. Успешно стартовавший сервер не обязательно стабилен.
Держи списки клиентских и серверных модов синхронными, где этого требует пак. Убирай с сервера клиентские моды, которым там не место, но не гадай. Читай документацию каждого мода и сообщения об ошибках. Многие краши при старте — это простое несовпадение версий, недостающие зависимости или версия Java, которая больше не подходит паку.
Собери процедуру обслуживания, которая защищает мир
Оптимизация — процесс постоянный, потому что миры растут. Планируй рестарты в предсказуемое время с малой нагрузкой, чтобы очищать временный мусор и накатывать запланированные обновления. Делай бэкап перед каждым обновлением пака, сменой конфига или крупной чисткой. Иногда проверяй восстановление. Бэкап, который ты ни разу не восстанавливал, — это лишь надежда.
Просматривай данные профилировщика после ивентов сообщества, новых глав модпака или резкого скачка числа игроков. Следи за использованием диска по мере накопления предгенерированных регионов и бэкапов. Обращай внимание на повторяющиеся ошибки в логах, а не игнорируй их потому, что сервер всё ещё стартует.
И самое главное — расскажи игрокам, как помочь. Короткий канал с правилами про чанклоадеры, лимиты ферм, чистку предметов и сообщение координат лагающих зон снимает много конфликтов. Хорошая оптимизация — не про ограничение творчества. Она про то, чтобы фабрика одного игрока не воровала игру у всех остальных.
Когда TPS начинает проседать, сопротивляйся паническому апгрейду. Профилируй сервер, чини главную нагрузку, защищай мир бэкапами, а уже потом наращивай железо, если реальный спрос этого требует. Игроки заметят разницу там, где это важно: их постройки отзываются, приключения грузятся, а сервер держится онлайн, когда заходит вся компания.
Некоторые узкие места живут ниже слоя конфигов. Elysium держит модовые серверы на высокочастотном железе Ryzen и EPYC с дисками NVMe Gen4, автоматическими бэкапами и защитой от DDoS — чтобы оптимизация касалась твоего мира, а не хоста. Выбери тариф на странице заказа или начни с гайда как убрать лаги сервера.