VCAnalyser
PluginApache-2.0

VCAnalyser

An intelligent system that analyzes the causes of MSPT and TPS drawdowns, as well as RAM and CPU consumption.

21
Downloads
0
Followers
1 months ago
Updated
📦
1
Versions

📖About VCAnalyser

En
Problem What VCAnalyser does
"Server is lagging, unclear why" Summary report: TPS/MSPT, memory, CPU, entities, chunks, list of possible causes
"TPS drops, but don't know the culprit" Stack sampling: share of main thread time by plugins under normal conditions and during MSPT spikes
"Where is the farm with a thousand mobs?" Top chunks by entity count; click on a row — teleport to the problematic chunk
"Memory hog / GC" Heap, fill percentage, GC count and time
"Many chunks in memory" Number of loaded chunks per world

How it works

  1. Monitoring (/vca enable) — periodic collection of metrics (interval set in config.yml, default ~5 seconds). When disabled (/vca disable), collection stops; state is saved in state.yml and restored after a restart.
  2. Profiling (/vca profile start) — separate mode: asynchronously takes stack snapshots of the main thread. Samples are divided into "MSPT spike" and "normal" for comparison. Does not start automatically with monitoring.
  3. Analysis (/vca report) — based on accumulated data and thresholds from the config, builds a report: OK / warning / critical statuses, causes and recommendations.

By default, upon first installation, monitoring is disabled to avoid impacting performance until an admin explicitly enables it.

Features

TPS and MSPT

  • TPS for 1, 5 and 15 minutes; current MSPT (milliseconds per tick).
  • Comparison with tps-warning / tps-critical and mspt-warning / mspt-critical thresholds.

Entities

  • Count by world and by type (top 5 types in brief report).
  • Top overloaded chunks (entities-per-chunk-warning / critical thresholds).
  • Counts ground items (ITEM) when total entities > 5000.

Chunks

  • Number of loaded chunks overall and per world.
  • Counting hoppers and redstone blocks is disabled in code for performance.

Memory and CPU

  • Heap usage (MB and %), GC statistics.
  • Process load average (if available on OS) and number of cores.

Plugin Profiling

Separate stack sampling mode: /vca report shows what was running on the main thread during lag spikes and in calm moments.

Recommendations

Automatic hints when problems are detected: clearing dropped items, checking farms in hot chunks, lowering view-distance, increasing RAM, etc.

Permissions

Permission Default Purpose
vcanalyser.admin op All plugin commands

Commands

Aliases: /vcanalyser, /vca.

Command Description
/vca Help
/vca enable / on Enable monitoring
/vca disable / off Disable monitoring (profiling also stops)
/vca status Monitoring and profiling status
/vca report Full report (requires monitoring enabled)
/vca tps TPS and MSPT only
/vca entities Entities by world and top 10 chunks
/vca chunks Loaded chunks by world
/vca memory Memory and GC
/vca profile start Start stack sampling
/vca profile stop Stop profiling and reset collected samples
/vca tp <world> <chunkX> <chunkZ> Teleport to chunk center (player only)
/vca language <ru|en> Change message language
/vca language Show current language
/vca reload Reload config.yml and localization files
Ru
Проблема Что делает VCAnalyser
«Сервер лагает, непонятно почему» Сводный отчёт: TPS/MSPT, память, CPU, сущности, чанки, список возможных причин
«TPS падает, но не знаю виновника» Stack sampling: доля времени главного потока по плагинам при норме и при просадках MSPT
«Где ферма с тысячей мобов?» Топ чанков по числу сущностей; клик по строке — телепорт в проблемный чанк
«Жрёт память / GC» Heap, процент заполнения, счётчик и время сборок мусора
«Много чанков в памяти» Число загруженных чанков по мирам

Как это устроено

  1. Мониторинг (/vca enable) — периодический сбор метрик (интервал задаётся в config.yml, по умолчанию раз в ~5 секунд). При выключении (/vca disable) сбор останавливается; состояние сохраняется в state.yml и восстанавливается после рестарта.
  2. Профилирование (/vca profile start) — отдельный режим: асинхронно снимаются снимки стека главного потока. Сэмплы делятся на «просадка MSPT» и «норма» для сравнения. Не включается автоматически вместе с мониторингом.
  3. Анализ (/vca report) — на основе накопленных данных и порогов из конфига строит отчёт: статусы OK / предупреждение / критично, причины и рекомендации.

По умолчанию при первой установке мониторинг выключен, чтобы не влиять на производительность, пока админ явно не включит его.

Возможности

TPS и MSPT

  • TPS за 1, 5 и 15 минут; текущий MSPT (миллисекунды на тик).
  • Сравнение с порогами tps-warning / tps-critical и mspt-warning / mspt-critical.

Сущности

  • Подсчёт по мирам и по типам (топ-5 типов в кратком отчёте).
  • Топ перегруженных чанков (пороги entities-per-chunk-warning / critical).
  • Учёт дропа на земле (ITEM) при общем числе сущностей > 5000.

Чанки

  • Количество загруженных чанков всего и по мирам.
  • Подсчёт хопперов и редстоун-блоков отключён в коде ради производительности.

Память и CPU

  • Использование heap (МБ и %), статистика GC.
  • Load average процесса (если доступен на ОС) и число ядер.

Профилирование плагинов

Отдельный режим stack sampling: в /vca report показывается, что выполнялось на главном потоке во время лагов и в спокойные моменты..

Рекомендации

Автоматические подсказки при обнаружении проблем: очистка дропа, проверка ферм в горячих чанках, снижение view-distance, увеличение RAM и т.д.

Права и доступ

Право По умолчанию Назначение
vcanalyser.admin op Все команды плагина

Команды

Алиасы: /vcanalyser, /vca.

Команда Описание
/vca Справка
/vca enable / on Включить мониторинг
/vca disable / off Выключить мониторинг (профилирование тоже останавливается)
/vca status Статус мониторинга и профилирования
/vca report Полный отчёт (нужен включённый мониторинг)
/vca tps Только TPS и MSPT
/vca entities Сущности по мирам и топ-10 чанков
/vca chunks Загруженные чанки по мирам
/vca memory Память и GC
/vca profile start Запустить stack sampling
/vca profile stop Остановить профилирование и сбросить накопленные сэмплы
/vca tp <мир> <chunkX> <chunkZ> Телепорт в центр чанка (только игрок)
/vca language <ru|en> Сменить язык сообщений
/vca language Показать текущий язык
/vca reload Перезагрузить config.yml и файлы локализации