Добро пожаловать на Craft‑Bukkit

Всё о Minecraft серверах: гайды, команды, скачивание сборок и полезные советы для администраторов и игроков.

Spark: профайлинг и мониторинг сервера — как читать отчёты и находить лаги

wergio 25.07.2026 13:21 5
Spark: профайлинг сервера Minecraft — как читать отчёты, находить лаги и мониторить TPS.

Введение: ваш рентген для сервера

Spark — это бесплатный профайлер и мониторинг для серверов Minecraft. Он показывает, КУДА уходит процессорное время, СКОЛЬКО памяти потребляет каждый плагин и КАКИЕ чанки нагружают сервер. Spark — must have для любого администратора, который хочет понимать, что происходит с его сервером. В этом гайде я научу вас запускать профайлинг, читать отчёты и находить виновников лагов за 5 минут.

Установка

  1. Скачайте Spark с официального сайта spark.lucko.me (бесплатный).
  2. Поместите JAR-файл в папку plugins на ВСЕХ серверах (бекенды + прокси, если используете BungeeCord/Velocity).
  3. Перезапустите серверы. Spark готов к работе.

Команды для быстрой диагностики

Проверка TPS и памяти:

/spark tps
/spark health

/spark tps показывает тики в секунду с разбивкой по мирам. /spark health — общий отчёт: TPS, память, количество мобов, загруженные чанки, скорость диска.

Проверка использования памяти:

/spark health --memory

Показывает, сколько памяти потребляет КАЖДЫЙ плагин. Сортируйте по убыванию и смотрите, какой плагин жрёт больше всего.

Запуск профайлера (CPU Profiling)

Когда сервер лагает, запустите профайлер на 2-3 минуты, чтобы записать, ЧТО ИМЕННО вызывает лаги:

/spark profiler start --timeout 180

Через 3 минуты Spark выдаст ссылку на веб-отчёт. Откройте её в браузере.

Как читать отчёт Spark (Call Tree)

Отчёт представляет собой дерево вызовов (Call Tree). Это иерархический список ВСЕХ задач, которые выполнял сервер, с указанием % процессорного времени.

Пример расшифровки отчёта:

Server thread — 100% CPU
├── Tick — 95%
│   ├── Entity tick — 45%           ← МОБЫ ЖРУТ CPU!
│   │   ├── Zombie AI — 15%
│   │   ├── Chicken AI — 12%
│   │   └── Creeper AI — 8%
│   ├── Block entity tick — 25%      ← ВОРОНКИ И ПЕЧИ!
│   │   ├── Hopper tick — 20%
│   │   └── Furnace tick — 5%
│   ├── Chunk loading — 10%
│   └── Plugin: EssentialsX — 8%     ← ПЛАГИН ЖРЁТ CPU!
└── GC pause — 5%

Вывод: 45% времени уходит на мобов (Entity tick). Нужно найти, где скопились мобы (куриная ферма?) и сократить поголовье. 25% — воронки. Нужно найти гигантскую сортировочную систему и попросить игрока выключать её.

Поиск проблемных чанков

/spark health --chunks

Показывает список САМЫХ НАГРУЖЕННЫХ чанков с координатами. Телепортируйтесь туда (/tp X Y Z) и устраните причину.

Мониторинг GC-пауз

/spark gc

Показывает статистику сборщика мусора: как часто происходят паузы, их длительность. Если паузы длиннее 500 мс — проблема с памятью (см. статью «Ошибка Java Heap Space»).

Интеграция с Discord (Webhook)

Spark может отправлять отчёты о здоровье сервера прямо в Discord-канал. Настройка в config.yml:

discord:
  enabled: true
  webhook-url: "https://discord.com/api/webhooks/ВАШ_ВЕБХУК"
  report-interval: 30m

Каждые 30 минут Spark будет отправлять в Discord сообщение с TPS, памятью, количеством игроков и мобов.

Типичные ошибки

  • Не запускают профайлер ВОВРЕМЯ. Если сервер лагает, а вы запустили профайлер через 10 минут, когда лаги прошли — отчёт покажет «всё в порядке». Запускайте профайлер В МОМЕНТ лагов.
  • Не умеют читать отчёт. Смотрите на САМЫЕ БОЛЬШИЕ проценты в дереве вызовов. Это и есть виновники. Игнорируйте мелочи (< 1%).
  • Запускают профайлер на 10 минут. Это слишком долго — отчёт будет огромным и нечитаемым. 2-3 минуты — оптимально.

💡 Совет профи

Используйте /spark profiler start --thread * для профайлинга ВСЕХ потоков, а не только главного. Иногда проблема не в главном потоке, а в асинхронных задачах (загрузка чанков, сохранение мира, запросы к базе данных). Полный профайлинг покажет и их. А для постоянного мониторинга используйте интеграцию Spark с Grafana (через InfluxDB) — это даст красивые графики TPS, памяти и нагрузки за недели и месяцы.
← К списку статей

💬 Комментарии (0)

⏳ Все комментарии проходят модерацию

🔒 Войдите, чтобы оставить комментарий

😊 Пока нет комментариев. Будьте первым!