Практическое руководство

Найти лаги через spark

Прочитать отчёт spark: отличить пинг от нагрузки сервера, измерить TPS/MSPT, записать проблемные тики и найти дорогую ветвь вызовов.

На странице 11 разделов

Коротко

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

Пример предназначен для серверного spark. На сервере с поддерживаемым встроенным spark отдельный плагин может не требоваться. Команды проверяйте по версии установленного профайлера.

Схема примера

Повторить лаг → Записать профиль → Разобрать ветвь → Проверить изменение

Поясняющая схема последовательности действий; это не снимок интерфейса игры.

Отличить TPS, MSPT и пинг

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

  1. Посмотрите TPS и MSPT во время нормальной работы и во время проблемы.
  2. При целевых 20 TPS у тика есть бюджет около 50 мс. Длительные превышения этого бюджета связаны с замедлением симуляции.
  3. Высокий пинг при нормальном времени тика исследуйте как сетевую проблему; снижение дальности рендера клиента не исправляет маршрут пакетов.
  4. Запишите онлайн, место игроков, включённые фермы и действия, после которых возникает лаг.

Записать обычный профиль

  1. Запустите серверный профайлер до воспроизведения проблемы.
  2. Воспроизведите конкретное действие: переход в новые чанки, работа механизма или появление большого числа сущностей.
  3. Остановите профайлер и сохраните ссылку на отчёт вместе со временем и условиями замера.
  4. Снимите второй профиль без проблемного действия для сравнения.

Начать и завершить профиль

/spark profiler start
/spark profiler stop

Поймать редкий медленный тик

  1. Включите наблюдение за тиками и дождитесь повторения скачка.
  2. По наблюдению выберите порог длительности для медленных тиков.
  3. Для записи используйте поддерживаемый вашей версией фильтр only-ticks-over с этим порогом.
  4. Остановите запись после нескольких повторов и сравните результат с обычным профилем.

Наблюдение и профиль тиков дольше 100 мс

/spark tickmonitor
/spark profiler start --only-ticks-over 100
/spark profiler stop

Число 100 мс в примере — выбранный порог, а не универсальная граница всех проблем.

Прочитать дерево отчёта

  1. Откройте отчёт и выберите нужный поток. Для лагов игровых тиков начните с серверного потока.
  2. Раскрывайте дорогую ветвь вызовов до конкретного действия: сущности, генерация чанков, задача плагина или работа с файлами.
  3. Различайте время самой функции и её дочерних вызовов. Родитель может выглядеть дорогим только из-за ребёнка.
  4. Смотрите соседние ветви и условия записи. Имя плагина в стеке ещё не доказывает, что виноват только он.
  5. Для памяти используйте отдельные показатели и инструменты spark, а не один процент из CPU-профиля.

Проверить исправление

  1. Сохраните исходную конфигурацию и измените одну причину, которую подтверждает профиль.
  2. Повторите тот же сценарий при сопоставимом онлайне и длительности.
  3. Сравните MSPT, скачки и ту же ветвь отчёта.
  4. Если улучшения нет, верните неподтверждённое изменение и продолжайте диагностику.
  5. Не отключайте наугад все плагины на рабочем сервере: воспроизведение удобнее вести на его отдельной тестовой копии.

Если не работает

ПроблемаЧто проверить
Ссылка открывается, но причины не видноПроверьте поток, время записи и наличие самого лага в выбранной выборке.
Среднее нормальное, а сервер дёргаетсяИспользуйте tickmonitor и запись только медленных тиков: средняя выборка может скрывать редкие скачки.
Все игроки жалуются, TPS нормальныйПроверьте пинг, потери пакетов и клиентский FPS отдельно от серверной симуляции.
После настройки стало хужеВерните сохранённый вариант и сравните при тех же условиях. Изменение без повторного замера не подтверждает улучшение.

Источники и версии

Порядок и смысл показателей сверены по документации spark: TPS and MSPT, Finding lag spikes и Using the viewer. Проценты в дереве отчёта относятся к выборке профилирования, а не напрямую к доле всего процессора машины.

Справка сверена 31 октября 2026 года. Перед установкой выбирайте файл для своей версии игры и загрузчика.

Частые вопросы

Каким должен быть MSPT для 20 TPS?

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

Нужно ли ставить spark поверх встроенного?

Сначала проверьте наличие и версию серверного spark. Дублировать профайлер без необходимости не нужно.

Высокий процент у плагина означает, что его надо удалить?

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

Связанные руководства

Сверено по официальной документации авторов. Совместимость указана для примера на странице.