Добавляйте мод под измеренную серверную нагрузку, затем сравнивайте одинаковый сценарий до и после изменения. Если установить сразу три известных проекта, будет трудно понять, какой помог и какой вызвал регрессию.
Инструкция рассчитана на работающий выделенный сервер Minecraft Java с Fabric. Она не переносит плагины Paper, не чинит несовместимую сборку и не обещает определённое число игроков. Оставайтесь на используемой ветке игры, пока отдельный план обновления не требует её сменить.
Определите, что именно тормозит#
Низкий FPS клиента, запаздывание симуляции и плохое соединение могут ощущаться похоже, но требуют разных данных. Если камера дёргается у одного игрока, а остальные играют нормально, начните с его рендеринга и оборудования. Серверный мод не заменяет клиентскую оптимизацию отрисовки, например Sodium.
Для симуляции запишите TPS и MSPT в момент проблемы. При обычной цели 20 тиков в секунду на тик приходится 50 мс; среднее скрывает отдельные скачки, поэтому смотрите распределение времени. Одновременно оцените память процесса и хоста, использование swap, загрузку CPU и сценарий: генерация новой территории, работа ферм или нахождение на обжитой базе.
Длинные повторяющиеся паузы при исчерпании памяти хоста требуют другой проверки, чем постоянно дорогая обработка сущностей. Если симуляция здорова, а задержку замечают удалённые игроки, сначала нужны измерения соединения, а не предположение о перегрузке основного тика.
Выберите кандидата по этим данным#
| Кандидат | На какую работу влияет | Чего сама установка не подтверждает |
|---|---|---|
| Lithium | Игровая логика и внутренние механизмы симуляции | Что любая ферма, мод или перегруженный мир станет лёгким |
| FerriteCore | Удерживаемая память игровых структур данных | Гарантированное уменьшение RSS процесса или ускорение тиков |
| Krypton | Реализация сетевой обработки, включая пакеты и сжатие | Снижение географического пинга или исправление потерь пакетов |
Проекты решают разные задачи. В документации FerriteCore рядом описаны клиентские изменения моделей и рендеринга и оптимизации, применимые на обеих сторонах. Не переносите цифры клиентского потребления памяти на выделенный сервер. Уменьшение занятой кучи может быть полезным и без заметного изменения TPS.
Krypton оптимизирует работу сетевого стека Minecraft Java. Игровое соединение использует TCP: установка мода не требует открывать игровой порт UDP или менять правила проброса. Насыщенный исходящий канал, нестабильный маршрут и затраты CPU на сетевую обработку остаются разными проблемами.
Lithium может работать на сервере без обязательной установки Lithium у игроков. Krypton тоже допускает независимое серверное использование. Это не делает остальную сборку исключительно серверной: игровые моды могут требовать соответствующие компоненты на клиентах.
Проверяйте конкретный файл релиза#
Запишите версии Minecraft и Fabric Loader, Java из команды запуска службы, имена существующих модов и важные настройки. По текущей документации Fabric для Minecraft 26.1 и новее нужна Java 25; у старых веток свои требования. Команда из вашей пользовательской оболочки может использовать другую Java, чем серверная служба.
Свежий релиз проекта не обязательно подходит вашему миру. На 4 ноября в публикациях разработчиков есть файлы для Minecraft 26.3 у всех трёх проектов, но более ранним веткам нужны соответствующие сборки. Пользуйтесь выбором версии, а не обновляйте рабочий мир только ради основной кнопки скачивания.
Для каждого кандидата проверьте:
- Точную поддерживаемую версию Minecraft и файл для Fabric, а не сборку NeoForge.
- Обязательные зависимости и совместимые версии. Fabric API и Fabric Loader — разные компоненты; API нужен, когда его требует выбранный мод.
- Поддержку выделенного сервера и примечания именно к выбранному релизу.
- Известные конфликты с вашим набором модов, включая ошибки, уже исправленные в более новом совместимом релизе.
Берите поддерживаемые релизы по ссылкам проекта. Ошибка архива вроде zip END header not found указывает на повреждённый или неверный файл и сама по себе не обосновывает массовую смену загрузчика. Повторно скачайте проблемный файл из настоящего источника релиза и проверьте журнал.
Сравнивайте одно изменение за раз#
Подготовьте отдельную тестовую копию с собственным рабочим каталогом и портом. Перед полной резервной копией корректно остановите исходный сервер; сохраните мир, mods, настройки и сведения о загрузчике и версиях. Защитите резервную копию: даже проверка производительности записывает изменения мира.
Если используете spark, установите совместимый серверный мод Fabric в тестовое окружение до исходных измерений. В сравнительном запуске оставьте тот же профилировщик. Следующие команды в серверной консоли показывают состояние профилировщика и запускают трёхминутную запись:
spark profiler info
spark profiler start --timeout 180
В игре используйте /spark с соответствующими аргументами, если у аккаунта есть права. Профиль содержит эксплуатационные сведения: просмотрите отчёт, прежде чем публиковать его. Сравнивайте примерно одинаковое число игроков, загруженную область, дистанции обзора и симуляции и действия. Генерация территории в одном запуске и пустующая база в другом не образуют одинаковую нагрузку.
Остановите тестовый сервер, добавьте в mods одного совместимого кандидата, затем запустите сервер и проверьте logs/latest.log на ошибки запуска и mixin. Подключитесь настоящей игровой сборкой, проверьте важные механики, сохранитесь и перезапустите сервер. Повторите измеряемый сценарий и сравните распределение времени тиков, давление на память или сетевую обработку — в зависимости от исходной проблемы. Сохраните оба отчёта и точные имена файлов модов.
Оставляйте изменение, если оно решает измеренную проблему и не ломает работу игры. При неоднозначном результате продлите сопоставимые измерения либо откатите мод. Один более спокойный интервал не доказывает ускорение. Перед разбором неудачного кандидата восстановите защищённое тестовое состояние.
Настраивайте Java отдельно от проверки модов#
Одновременная смена сборщика мусора, кучи, Java и нескольких модов лишает сравнение смысла. Начните с поддерживаемой среды и разумной существующей команды запуска. -Xmx ограничивает кучу Java, а не память всего процесса; оставляйте ресурсы хоста для нативных выделений, ОС и других служб. Большой скопированный блок JVM-флагов не определит дорогую работу, которую показывает профиль.
Если хостов несколько, храните вместе сведения об их версиях и ресурсах. Nexardo можно использовать для управления собственной инфраструктурой; подбор совместимых модов и проверка нагрузки остаются частью обслуживания игрового сервера.




