Все статьи

Как читать отчёт spark и находить причину лагов

Разбираем spark по шагам: как снять профиль, что значат цифры в отчёте и как найти плагин или механику, которая съедает TPS.

Автор: Команда LumeX2 ноября 2026 г.5 мин2

«Сервер лагает» - самая частая жалоба и самая бесполезная, если не знать причину. Гадать можно бесконечно: отключать плагины по одному, чистить мир, менять ядро, покупать более дорогой тариф. Иногда это даже помогает, но чаще вы тратите дни на эксперименты и так и не понимаете, что было не так. А можно за пять минут снять профиль и увидеть, что именно нагружает сервер. Для этого есть spark.

Что такое spark

spark - плагин-профайлер. Он записывает, на что сервер тратит время каждого тика, и собирает это в наглядный отчёт, который открывается в браузере. Если упростить, spark показывает, какие части сервера и какие плагины «съедают» больше всего ресурсов.

В Paper и производных ядрах spark уже встроен, поэтому ничего устанавливать не нужно. На других платформах его можно поставить отдельно как обычный плагин или мод.

Чтобы понять, зачем он нужен, вспомним, как работает сервер. Двадцать раз в секунду он выполняет тик: двигает мобов, растит растения, обрабатывает действия игроков, работу плагинов. На каждый тик у него есть 50 миллисекунд. Если тик занимает больше, сервер не успевает, и TPS падает ниже 20. spark как раз показывает, куда уходят эти миллисекунды.

Как снять профиль

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

Дальше запустите профайлер командой /spark profiler start. Подождите три-пять минут, пока игроки играют как обычно. Не нужно ничего специально делать - spark просто наблюдает. Потом остановите запись командой /spark profiler stop, и spark выдаст ссылку на отчёт.

Рядом есть ещё несколько полезных команд, которые помогают быстро оценить состояние сервера:

/spark tps      - TPS и время тика за последние минуты
/spark health   - память, процессор, диск
/spark gc       - как часто работает сборщик мусора

Команда /spark tps полезна, чтобы понять масштаб проблемы: падает ли TPS постоянно или лаги случаются короткими всплесками. А /spark health быстро покажет, не заканчивается ли память или место на диске.

Как читать отчёт

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

Начните с ветки Server thread - это основной поток, где и происходят лаги. Раскрывайте её шаг за шагом, каждый раз выбирая ветку с самым большим процентом времени. Рано или поздно вы дойдёте до чего-то узнаваемого.

Если в названии ветки есть пакет плагина, вы нашли подозреваемого. Обычно имя плагина легко узнать по названию пакета.

Если в топе оказываются entity и tickEntity, проблема в сущностях: слишком много мобов, предметов на земле, стоек для брони или рамок.

Если много времени уходит на chunk и генерацию мира, значит, игроки исследуют новые территории, и мир генерируется на лету.

А если наверху редстоун и воронки, причина в фермах игроков, которые работают без остановки.

🔎 Частые находки

Из опыта, чаще всего в отчётах spark находятся одни и те же вещи.

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

Тысячи предметов на земле в одном чанке. Обычно это результат поломанной фермы или игрока, который выбросил содержимое сундуков.

Фермы мобов без лимитов. Игроки строят ферму, она работает часами, и количество мобов в одной точке растёт до сотен.

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

И, наконец, слишком частая работа сборщика мусора. Это говорит о проблеме с памятью или неправильных флагах запуска Java.

Что делать с результатом

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

Нашли сущности - поставьте лимиты на количество мобов в чанке и настройте автоматическую очистку предметов на земле. Нашли генерацию - прогенерируйте мир заранее и поставьте границу мира. Нашли сборщик мусора - проверьте выделенную память и флаги запуска.

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

Пример

На сервере выживания каждый вечер TPS падал до 12. Владелец уже собирался переезжать на более дорогой тариф, но сначала снял профиль. Оказалось, что почти треть времени тика уходит на плагин статистики, который сохранял данные игроков в базу прямо в основном потоке. После обновления плагина и переноса сохранения в асинхронный режим TPS вернулся к 20 - без смены хостинга и лишних расходов.

Профиль как привычка

spark полезен не только в момент аварии. Хорошая привычка - снимать короткий профиль после каждого крупного обновления сборки, даже если лагов нет. Так у вас появится «эталон» нормальной работы, и при следующих проблемах будет с чем сравнить.

Наш взгляд

spark экономит часы и нервы. Профиль за пять минут показывает больше, чем неделя экспериментов «вслепую». Возьмите за правило: сначала отчёт, потом выводы. И не стесняйтесь показывать отчёты другим - на форумах и в сообществах админов по ссылке на spark вам помогут гораздо быстрее, чем по фразе «сервер лагает».

Что чаще всего находили в своих отчётах spark?

Читайте также

#техничка#оптимизация#гайды

Сеть и пинг: почему у игроков «лагает» при 20 TPS

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

2 ноября 2026 г.5 мин1
#техничка#гайды

Как читать консоль и ошибки плагинов

Объясняем простыми словами, как понять ошибку в консоли сервера: что такое стек вызовов, как найти виновный плагин и что написать разработчику, чтобы он быстро помог.

1 ноября 2026 г.5 мин8
#техничка#гайды#развитие

Docker для Minecraft-сервера: зачем, когда стоит и когда нет

Объясняем, что такое Docker простыми словами, какие плюсы он даёт Minecraft-проекту - одинаковое окружение, простое развёртывание, порядок с несколькими серверами - и в каких случаях он только усложнит жизнь.

31 октября 2026 г.5 мин17