Spark: как найти причину лагов сервера
СерверСервер лагает, TPS падает, а причина непонятна. Spark отвечает на этот вопрос точно: показывает, какой плагин, мод или чанк съедает время тика.
Что это такое
Spark — профилировщик. Он замеряет, на что уходит процессорное время, и строит отчёт с разбивкой. Работает и как мод, и как плагин, на клиенте тоже.
Ключевое отличие от «оптимизаторов»: Spark ничего не ускоряет. Он только измеряет. Но без измерения оптимизация превращается в гадание — вы удаляете случайные моды и надеетесь.
Основные команды
| Команда | Что делает |
|---|---|
/spark profiler start | Начать сбор данных |
/spark profiler stop | Остановить и выдать ссылку на отчёт |
/spark tps | Текущий TPS и загрузка |
/spark health | Сводка: TPS, память, диск |
/spark heapsummary | Что занимает оперативную память |
Отчёт открывается в браузере по ссылке — это дерево вызовов, где видно, какой участок кода сколько времени занял.
Как читать отчёт
Не пугайтесь дерева. Нужно несколько вещей:
- Разверните ветку с наибольшим процентом.
- Спускайтесь вглубь, пока не увидите имя пакета мода или плагина — например, что-то вида
com.название. - Это и есть виновник. Дальше решаете: настроить, обновить или убрать.
Профилировать нужно в момент лагов, а не когда всё хорошо. Запустите сбор, дождитесь просадки, остановите.
Типичные находки
- Автоферма игрока. Сотни сущностей в одном чанке. Отчёт покажет координаты.
- Мод на мобов. Сложный ИИ множества существ, лечится настройкой спавна в конфиге.
- Плагин логирования. При неаккуратной настройке много пишет на диск.
- Генерация чанков. Игроки исследуют новые территории — решается предгенерацией.
- Цифровое хранилище. Большая сеть пересчитывает состояние, о чём в сравнении AE2 и Refined Storage.
Память
Команда heapsummary показывает, что занимает оперативку. Полезно, когда сервер уходит в бесконечную сборку мусора: TPS падает, хотя нагрузка на процессор небольшая.
Если проблема в нехватке памяти, посчитайте нужный объём в калькуляторе RAM. Но помните: выделять больше нужного вредно, избыточная куча удлиняет паузы сборщика.
На клиенте
Spark работает и в одиночной игре: помогает понять, какой мод роняет FPS. Особенно полезен на слабом железе, где каждый кадр на счету — остальные советы в статье про слабый ПК.
Кому нужен
Всем, у кого есть сервер со сборкой. Ставится один раз, лежит без нагрузки и пригождается в тот день, когда TPS уходит в пол. Без него остаётся только удалять моды наугад.
Частые вопросы
Как найти причину лагов сервера?
Запустить /spark profiler start в момент просадки, дождаться лагов, остановить командой stop и открыть отчёт по ссылке. В дереве вызовов разворачивайте ветку с наибольшим процентом до имени пакета мода или плагина.
Ускоряет ли Spark сервер?
Нет, он только измеряет. Но без измерения оптимизация превращается в удаление модов наугад.
Что показывает heapsummary?
Что занимает оперативную память. Полезно, когда сервер уходит в бесконечную сборку мусора: TPS падает при небольшой нагрузке на процессор.
Работает ли Spark в одиночной игре?
Да, на клиенте он помогает понять, какой мод роняет FPS.