Диагностика лагов через Spark
📉 Почему падает TPS сервера?#
Снижение показателя TPS (тиков в секунду ниже нормальных 20.0) обычно вызвано одной из четырех причин:
- Слишком много сущностей в одном месте (огромные фермы коров, овец или жителей).
- Зависшие или плохо оптимизированные плагины, выполняющие тяжелые расчеты в главном потоке.
- Большое количество воронок, редстоун-схем или механизмов.
- Непрерывная генерация новых чанков при быстром полете игроков на элитрах.
Профайлер Spark — самый точный инструмент для диагностики нагрузки и выявления конкретных источников лагов.
⚡ Быстрая диагностика в реальном времени#
Если Spark установлен на сервере (или встроен в ядро Purpur), вы можете мгновенно проверить здоровье сервера:
1. Проверка общего состояния:#
text
/spark healthКоманда покажет текущий TPS, загрузку процессора, использование оперативной памяти и задержку дисковых операций.
2. Подсчет сущностей в мире:#
text
/spark tpsПоказывает среднюю частоту тиков за последние 10 секунд, 1 минуту и 15 минут.
🔬 Создание полного отчета профайлера#
Способ 1: Запуск через панель Obsy (В 1 клик)#
- В верхнем меню сервера перейдите в раздел «Обслуживание» → «Производительность».
- В карточке Spark Profiler нажмите кнопку запуска профайлера (не нужно вводить команды в чат или консоль).
- На этой же странице доступен мониторинг TPS и MSPT в реальном времени, а также автоматический аудит конфигураций с рекомендациями по оптимизации.
- По завершении записи вы получите прямую ссылку на веб-отчет.
Способ 2: Запуск через команды в игре или консоли#
- Начните запись профайлера во время реальной игры с нагрузкой:text
/spark profiler start - Подождите от 5 до 10 минут, пока сервер работает в стандартном игровом режиме.
- Остановите запись и сгенерируйте ссылку на отчет:text
/spark profiler stop - Плагин выведет в консоль защищенную ссылку на веб-страницу с анализом.
🧐 Как читать веб-отчет Spark?#
Открыв ссылку отчета в браузере, обратите внимание на дерево вызовов:
- Разверните главную ветку тика сервера (
Server thread). - Ищите строки, выделенные красным цветом с высоким процентом нагрузки (от 15% и выше).
- Если нагрузку создает плагин (например,
CustomEnchantsилиTowny), вы увидите его название прямо в названии вызова. - Если нагрузка приходится на мобов (
entityTick), используйте команду поиска скоплений мобов/spark tickmonitoringили ограничьте лимиты в файле конфигурации мира.