spark — это профилировщик производительности для клиентов, серверов и прокси Minecraft.
(Версия здесь, на CurseForge, предназначена только для Forge/Fabric!)
Полезные ссылки
- Веб-сайт — посетите домашнюю страницу проекта
- Документация — ознакомьтесь с документацией и руководствами по использованию
- Загрузки — последние версии плагинов/модов для загрузки
Что он делает?
spark состоит из нескольких компонентов, каждый из которых подробно описан ниже.
⚡ CPU Profiler
Профилировщик spark может использоваться для диагностики проблем с производительностью: «лага», низкого тикрейта, высокого использования CPU и т.д.
Он:
- Легковесный — может работать в production-среде с минимальным воздействием.
- Простой в использовании — не требует настройки, просто установите плагин/мод.
- Быстро предоставляет результаты — работы всего ~30 секунд достаточно для получения полезной информации о проблемных областях производительности.
- Настраиваемый — может быть настроен для целевых потоков, выборки с определенным интервалом, записи только «лаггичных» периодов и т.д.
- Легко читаемый — простая древовидная структура способствует легкому анализу и интерпретации. Средство просмотра также может применять маппинги деобфускации.
Он работает путем сбора статистических данных об активности сервера и построения на их основе графа вызовов. Этот граф вызовов затем отображается в онлайн-средстве просмотра для дальнейшего анализа пользователем.
⚡ Memory Inspection
spark включает ряд инструментов, полезных для диагностики проблем с памятью на сервере.
Heap Summary — создание и анализ базового снимка памяти сервера
- Простое представление кучи JVM, показывающее использование памяти и количество экземпляров для каждого класса.
- Не предназначен для полной замены специализированных инструментов анализа памяти. (см. ниже)
Heap Dump — создание полного (HPROF) снимка памяти сервера
- Создает (и опционально сжимает) полный снимок кучи JVM.
- Этот снимок затем можно анализировать с помощью традиционных инструментов анализа.
GC Monitoring — мониторинг активности сборщика мусора на сервере
- Позволяет пользователю соотносить активность GC с зависаниями игрового сервера и легко видеть, сколько времени они занимают и какой объем памяти освобождается.
- Наблюдение за частотой/длительностью сборок мусора молодого/старого поколения для информирования о том, какие флаги настройки GC использовать.
⚡ Server Health Reporting
spark может сообщать о ряде метрик, обобщающих общее состояние сервера.
Эти метрики включают:
- TPS — тиков в секунду, с более высокой точностью, чем указывает команда /tps.
- Tick Durations — продолжительность каждого тика (мин., макс. и средняя).
- CPU Usage — какая часть CPU используется процессом сервера и всей системой в целом.
- Memory Usage — какой объем памяти используется процессом.
- Disk Usage — сколько свободного места на диске и сколько используется системой.
Помимо предоставления средних значений тикрейта, spark также может мониторить отдельные тики — отправляя отчет всякий раз, когда продолжительность одного тика превышает определенный порог. Это можно использовать для выявления тенденций и характера проблем с производительностью относительно других системных или игровых событий.
Использование
Для установки просто добавьте файл .jar в директорию mods.
Информацию о том, как использовать команды, можно найти в документации.
Руководства
В документации доступно несколько небольших «руководств», охватывающих следующие темы.