Плагин для серверов Майнкрафт, который следит за производительностью и помогает найти причины лагов. Он собирает данные о TPS, MSPT, памяти, чанках, сущностях, игроках и плагинах в момент просадки, чтобы администратор мог разобраться с проблемой.
Возможности
- Показывает текущие и сохранённые значения TPS, MSPT и использования памяти, а также историю с графиком в чате.
- При падении TPS или скачке MSPT сохраняет снимок состояния сервера: загруженные чанки, сущности, память и расположение игроков.
- Ищет вероятные источники лагов: активных игроков, плагины, перегруженные редстоуном и блоками-сущностями чанки, а также чанки с частой загрузкой и выгрузкой.
- Добавляет графическое меню с панелью производительности, списком просадок, анализом лагов и настройками.
- Ведёт статистику по мирам, сущностям и чанкам.
- Может автоматически удалять лишние сущности с приоритетом для предметов, снарядов, монстров и животных. Именные, приручённые сущности, жители и боссы защищены; доступны ограничения для мира и чанка, белый список миров и пробный режим без удаления.
- Сохраняет метрики в SQLite или MySQL. Если база данных недоступна, запись продолжается в файл.
- Отправляет настраиваемые уведомления в Discord о просадках TPS, высоком MSPT, заполнении памяти и потоке пакетов.
- Предоставляет JSON API для Grafana и Prometheus, а также API
PerformanceAPIдля других плагинов.
Команды
/perfstatus— текущие TPS, MSPT и использование памяти./perfhistory [min]— история MSPT и статистика./perfgui— открыть графическое меню./perfreload— перезагрузить конфигурацию./perfsilent [type]— отключить уведомления;/perfsilent listпоказывает выбранные настройки,/perfsilent resetвозвращает все уведомления./perfdrops [#]— открыть список и подробности просадок производительности./worldstats [world]или/ws— статистика мира./entitystats [world]или/es— анализ сущностей и мест их скопления./chunkstats [sub]или/cs— статистика загрузки чанков и поиск проблемных.
Права
performance.status—/perfstatus.performance.history—/perfhistory.performance.gui—/perfgui.performance.admin— административные команды и уведомления.performance.silent— отключение уведомлений.
Настройка
В config.yml можно выбрать базу данных и срок хранения данных через database.type, database.sqlite_file, database.retention_days и database.fallback_file_logging. Пороговые значения предупреждений задаются в thresholds: mspt, heap_usage_percent, tps_drop и packet_flood_per_tick.
Раздел lag_analysis управляет анализом игроков, плагинов и чанков, включая лимиты сущностей, редстоуна и блоков-сущностей. Автоочистка настраивается в entity_cleaner; для проверки используйте dry_run: true. В разделе discord выбираются типы уведомлений, а REST API включается через api.enabled; для него необходимо задать защищённый api.key.
Требования
Для работы нужны Java 21 и Paper. Плагин работает самостоятельно. Необязательные дополнения: spark для более точных данных TPS, MSPT и процессора; ProtocolLib для анализа пакетов и обнаружения их потока. При установленном BSAntiCheat меню показывает его состояние.
