База знаний / Как пользоваться spark?

🚀 Продвинутое администрирование

Как пользоваться spark?

spark − профилировщик производительности для Minecraft. Он показывает, на что сервер тратит время тика: сущности, чанки, плагины, моды, GC. С профилем оптимизировать становится проще, чем наугад.

Установка

Скачивайте только с официальной страницы или Modrinth − выбирайте сборку под ваше ядро.

  • Paper / Spigot / Purpur − jar в папку plugins. На свежих Paper (примерно 1.21+) и Purpur spark часто уже встроен: отдельный jar не нужен, команды работают сразу.
  • Fabric / NeoForge / Forge − jar в папку mods (на Fabric обычно нужен Fabric API).

После установки перезапустите сервер. Как класть файлы: плагины / моды.

Снять профиль во время лагов

Команды можно вводить в консоли панели или в игре от имени оператора.

  1. Дождитесь момента лагов (или воспроизведите нагрузку).
  2. Запустите профилировщик на 30–60 секунд:
    spark profiler start --timeout 60
    Без --timeout профилирование не остановится автоматически, поэтому нужно остановить вручную:
    spark profiler stop
  3. В консоли появится ссылка на viewer на spark.lucko.me − откройте её в браузере.
  4. Результат работы spark в чате
    Результат работы spark в чате
    Если у плагина не получилось загрузить лог, как на скриншоте выше, он сохранит его в папку /plugins/spark/.
    Ошибка при запуске spark
    Ошибка при запуске spark
    Необходимо его скачать и перейти на сайт spark.lucko.me. Внизу страницы будет поле Viewer для загрузки лога.
    Поле Viewer на сайте spark.lucko.me
    Поле Viewer на сайте spark.lucko.me

Короткий профиль на «пустом» сервере почти ничего не покажет. Снимайте во время реальной нагрузки: игроки онлайн, генерация чанков, работа ферм.

Как читать результат

Результат работы spark в viewer
Результат работы spark в viewer

Первыми во viewer идут виджеты со статистикой по важным параметрам производительности сервера:

  • TPS (тики в секунду);
  • MSPT (миллисекунды на тик);
  • CPU (загрузка процессора);
  • Memory (использование оперативной памяти);

Далее идет дерево вызовов по потокам с пояснениями рядом с ними. Ищите узлы с большим процентом времени. Частые виновники:

  • сущности и AI мобов (фермы, спавнеры);
  • загрузка и генерация чанков;
  • конкретный плагин или мод в стеке (имя пакета/класса часто намекает на автора);
  • сохранение мира или тяжёлые задачи планировщика.

Подробнее о работе viewer и его возможностях можно узнать в официальной документации.

Полезные команды рядом

  • spark tps − TPS и краткая сводка нагрузки.
  • spark health − CPU, память, GC, тики.
  • spark heapsummary − что занимает кучу (если подозреваете утечку памяти).

Полный список флагов профилировщика − Command Usage.

Что делать дальше

  1. Нашли тяжёлый плагин/мод − отключите его на тест и сравните TPS.
  2. Сущности/чанки − снизьте view-distance, почистите фермы, посмотрите конфиги Paper.
  3. CPU забит − возможно, нужен большее мощный тариф: как сменить тариф.

Дополнительно про оптимизацию и лог Can't keep up! − в отдельной статье.