На странице 11 разделов
Коротко
Снимайте профиль во время повторяемого лага и смотрите, чем занят серверный поток. Средняя загрузка процессора компьютера не объясняет сама по себе, почему задерживаются игровые тики.
Пример предназначен для серверного spark. На сервере с поддерживаемым встроенным spark отдельный плагин может не требоваться. Команды проверяйте по версии установленного профайлера.
Поясняющая схема последовательности действий; это не снимок интерфейса игры.
Короткий одиночный скачок может скрыться в среднем значении. Поэтому полезно исследовать именно медленные тики, а не случайный профиль спокойного сервера.
- Посмотрите TPS и MSPT во время нормальной работы и во время проблемы.
- При целевых 20 TPS у тика есть бюджет около 50 мс. Длительные превышения этого бюджета связаны с замедлением симуляции.
- Высокий пинг при нормальном времени тика исследуйте как сетевую проблему; снижение дальности рендера клиента не исправляет маршрут пакетов.
- Запишите онлайн, место игроков, включённые фермы и действия, после которых возникает лаг.
- Запустите серверный профайлер до воспроизведения проблемы.
- Воспроизведите конкретное действие: переход в новые чанки, работа механизма или появление большого числа сущностей.
- Остановите профайлер и сохраните ссылку на отчёт вместе со временем и условиями замера.
- Снимите второй профиль без проблемного действия для сравнения.
Начать и завершить профиль
/spark profiler start
/spark profiler stop- Включите наблюдение за тиками и дождитесь повторения скачка.
- По наблюдению выберите порог длительности для медленных тиков.
- Для записи используйте поддерживаемый вашей версией фильтр only-ticks-over с этим порогом.
- Остановите запись после нескольких повторов и сравните результат с обычным профилем.
Наблюдение и профиль тиков дольше 100 мс
/spark tickmonitor
/spark profiler start --only-ticks-over 100
/spark profiler stopЧисло 100 мс в примере — выбранный порог, а не универсальная граница всех проблем.
- Откройте отчёт и выберите нужный поток. Для лагов игровых тиков начните с серверного потока.
- Раскрывайте дорогую ветвь вызовов до конкретного действия: сущности, генерация чанков, задача плагина или работа с файлами.
- Различайте время самой функции и её дочерних вызовов. Родитель может выглядеть дорогим только из-за ребёнка.
- Смотрите соседние ветви и условия записи. Имя плагина в стеке ещё не доказывает, что виноват только он.
- Для памяти используйте отдельные показатели и инструменты spark, а не один процент из CPU-профиля.
- Сохраните исходную конфигурацию и измените одну причину, которую подтверждает профиль.
- Повторите тот же сценарий при сопоставимом онлайне и длительности.
- Сравните MSPT, скачки и ту же ветвь отчёта.
- Если улучшения нет, верните неподтверждённое изменение и продолжайте диагностику.
- Не отключайте наугад все плагины на рабочем сервере: воспроизведение удобнее вести на его отдельной тестовой копии.
| Проблема | Что проверить |
|---|---|
| Ссылка открывается, но причины не видно | Проверьте поток, время записи и наличие самого лага в выбранной выборке. |
| Среднее нормальное, а сервер дёргается | Используйте tickmonitor и запись только медленных тиков: средняя выборка может скрывать редкие скачки. |
| Все игроки жалуются, TPS нормальный | Проверьте пинг, потери пакетов и клиентский FPS отдельно от серверной симуляции. |
| После настройки стало хуже | Верните сохранённый вариант и сравните при тех же условиях. Изменение без повторного замера не подтверждает улучшение. |
Порядок и смысл показателей сверены по документации spark: TPS and MSPT, Finding lag spikes и Using the viewer. Проценты в дереве отчёта относятся к выборке профилирования, а не напрямую к доле всего процессора машины.
Справка сверена 31 октября 2026 года. Перед установкой выбирайте файл для своей версии игры и загрузчика.
Каким должен быть MSPT для 20 TPS?
При 20 игровых тиках в секунду бюджет составляет около 50 мс на тик. Для устойчивой работы важны также пики и запас, а не только среднее.
Нужно ли ставить spark поверх встроенного?
Сначала проверьте наличие и версию серверного spark. Дублировать профайлер без необходимости не нужно.
Высокий процент у плагина означает, что его надо удалить?
Нет. Разберите ветвь до конкретной операции и проверьте условия записи. Причина может зависеть от нагрузки, конфигурации или вызванной им чужой работы.
Сверено по официальной документации авторов. Совместимость указана для примера на странице.