Почему падает TPS в Minecraft: диагностика по MSPT и spark
TPS показывает, успевает ли сервер обрабатывать игровые тики. Если мир зависает, а FPS клиента нормальный, начните с длительности тика и профиля нагрузки: покупка RAM без диагностики может ничего не изменить.
TPS, MSPT, ping и FPS: что означает каждое число
При целевых 20 TPS на один тик отводится около 50 мс. Если основной тик систематически длится дольше, сервер отстаёт. MSPT показывает длительность тиков; при нормальном TPS запас производительности виднее именно по MSPT. Короткие отдельные пики не равны постоянной перегрузке.
| Метрика | Что измеряет | Типичная проблема |
|---|---|---|
| TPS | Частоту обработки тиков сервером | Замедление мобов, редстоуна и мира |
| MSPT | Время обработки тика | Недостаточный запас или длинные пики |
| Ping | Задержку обмена по сети | Поздние ответы при нормальном TPS |
| FPS | Частоту кадров клиента | Слабая видеокарта, шейдеры, перегруженный клиент |
Таблицу можно прокрутить по горизонтали →
Снимите профиль в момент проблемы
На современных Paper spark входит в состав сервера; в других окружениях может требоваться установка совместимого плагина или мода. Убедитесь, что команда доступна, и используйте инструкцию вашей версии. Не устанавливайте второй экземпляр без необходимости.
- Профиль пустого сервера не объясняет лаги вечернего пика.
- Запишите время, онлайн, действия игроков и недавние обновления.
- Отчёт может раскрывать названия плагинов и сведения об окружении. Делитесь им с теми, кому доверяете.
spark tps
spark profiler start --timeout 120
# Воспроизведите лаг или дождитесь обычного проблемного события.
# После окончания spark выдаст ссылку на отчёт.Читайте результат, а не только самый большой процент
Сначала проверьте главный серверный поток и участки, занимающие время тика. Большой блок в отчёте не всегда означает виновный плагин: смотрите вложенные вызовы, тип работы и момент записи. Процент одного метода: не то же самое, что процент от мощности всей машины.
| Что преобладает | Что проверить дальше |
|---|---|
| Генерация и загрузка чанков | Исследование мира, телепорты, world border, предварительная генерация |
| Entity ticking / block entities | Скопления мобов, воронки, фермы и механизмы в загруженных чанках |
| Задачи конкретного плагина | Версию, настройки, синхронные запросы и воспроизводимость на копии |
| Сборка мусора | Размер heap, утечки, частоту пауз и общий лимит памяти |
| Ожидание I/O / сохранения | Свободный диск, сохранение миров, бэкапы и внешние базы |
Таблицу можно прокрутить по горизонтали →
Проверьте лимит CPU и конкурирующие задачи
Minecraft часто упирается в основной поток. Общая загрузка машины 20% не доказывает наличие свободного времени на нужном ядре. Посмотрите CPU limit услуги и не запускаются ли одновременно бэкап, генерация карты, архивирование или тяжёлые задания планировщика.
- Сравнивайте лаги при одинаковом числе игроков и схожих действиях.
- Не запускайте тяжёлый профилировщик бесконечно; ограничьте время записи.
- Проверяйте свободное место на диске: его заполнение вызывает другие ошибки, которые выглядят как лаги.
Исправляйте по одной причине
Сделайте копию конфигурации. Выберите одну проверяемую гипотезу, измените параметр и повторите профиль в тех же условиях. Не удаляйте все сущности и не отключайте набор плагинов на рабочем сервере без оценки последствий. Если проблему не удалось локализовать, отправьте поддержке время, лог, профиль spark, версию ядра и описание действий, вызывающих лаг.
Документация и источники
Названия файлов и параметры могут отличаться между версиями. Перед изменением сверяйте документацию своей сборки.