Previous slide
Next slide
Toggle fullscreen
Open presenter view
Мониторинг производительности JVM
Смирнов Вячеслав, 2021
Исследователь артефактов НТ
Много JVM в Kubernetes Pod, Kafka, Elastic Search
100 JVM работающих друг с другом и базой
Сопоставляем входные сигналы метрикам
Метрики JVM — часть метрик
Метрики JVM — утилизация и сборка мусора
Утилизация влияет на стабильность
Утилизация влияет на стабильность
Проблемы стабильности сервисов
Несоотвествие заданных опций фактическим
Несоотвествие заданных опций фактическим
Потребление памяти больше, чем настроено (утечка?)
Настроено памяти больше, чем есть
Настроено подключений к БД больше, чем есть
Настроено подключений к БД меньше, чем нужно
Утечка файловых ресурсов, подключений, ...
Это покажет мониторинг JVM
Используемые JVM
Поддерживают JMX и JavaAgent от Jolokia и Prometheus
Поддерживает JMX, не поддерживает популярные Agent-ы
Популярные JavaAgent-ы
Варианты сбора метрик JVM
Утилита JMC - простой просмотр MBean
Из jolokia через telegraf (jolokia2) в InfluxDB
Для каждого MBean нужно правило jolokia2
Для каждого MBean нужно правило jolokia2
1. Выбираем MBean в JMC
MBean "Runtime", а точнее java.lang:type=Runtime
2. Выбираем аттрибут(ы) MBean в JMC
Обращаем внимание на тип аттрибутов
Выбрали аттрибут "Uptime"
3. Формируем правило jolokia2_agent (Telegraf)
1. Выбираем несколько MBean в JMC
java.lang:type=MemoryPool,name=G1 Survivor ...
java.lang:type=MemoryPool,name=*: маска в name
2. Выбираем аттрибут(ы) MBean в JMC
Выбрали CollectionUsage, PeakUsage, Usage
3. Формируем правило jolokia2_agent (Telegraf)
Для разных сервисов есть готовые конфиги
И готовые доски Grafana для Jolokia
Из jmx_exporter в Prometheus
Настройка jmx_exporter для Prometheus проще
Но гораздо сложнее
из-за RegExp-ов
Накладные расходы на сбор метрик JVM
Jolokia реже ищет MBean-ы
Визуализация метрик в Grafana
Берегите зрение
Сортируйте данные по убыванию
Так проще читать подсказки
Лучше собирать пореже, но хранить подольше
1. Мониторим не только JVM
2. Способ зависит от JVM и хранилища
3. Важно мониторить утечки
4. Метрики достаточно собирать раз в 30 сек
Мониторинг производительности JVM
owasp@ya.ru
,
t.me/qa_load