Анализ GC Log дополняет APM
Недавно умный технический менеджер из крупного финансового учреждения задал вопрос: «Мы уже используем инструмент APM (AppDynamics), зачем нам использовать инструмент анализа журнала GC (GCeasy)?». Справедливый вопрос, который заслуживает подробного ответа. Есть точки зрения на этот вопрос:
(а). Цель
(б). Метрики
Рассмотрим их в этой статье.
(а). Цель
Инструменты APM — это фантастические инструменты для мониторинга производительности и работоспособности ваших приложений в производственной среде. Они дают полную картину доступности и производительности приложения в производственной среде. Однако они не предназначены для оптимизации и настройки сборки мусора вашего приложения и настроек памяти.
Инструменты APM обычно предназначены для использования в производственной среде. С другой стороны, инструменты анализа журнала GC можно использовать в средах разработки, тестирования и производства.
(б). Метрики
Инструменты анализа GC Log предоставляют богатый набор сборщика мусора, микрометрики, связанные с памятью (которые не предоставляются инструментами APM). Вот обзор таких метрик, которые предоставляет только GCeasy.
1. KPI сбора мусора
Когда дело доходит до анализа сборки мусора, есть 3 ключевых показателя эффективности:
- пропускная способность
- Задержка (т.е. время паузы GC)
- След
Инструменты APM сообщают только о посадочном месте, но не о двух других критических KPI. Подробнее о каждом KPI сборки мусора описано в этой статье.
Рис. KPI GC, о которых сообщает GCeasy
2. Фазовые метрики
В рамках одного события GC есть несколько фаз. Пример Алгоритм G1 GC имеет следующие фазы: начальная маркировка, сканирование корневой области, параллельная маркировка, примечание, очистка. Алгоритм CMS GC имеет следующие этапы: начальная маркировка, параллельная маркировка, параллельная предварительная очистка, одновременная прерванная предварительная очистка, финальное замечание, одновременная очистка, одновременный сброс.
Инструменты APM не дают метрик по этим отдельным фазам, тогда как GCeasy предоставляет подробные метрики по каждой фазе. Эти показатели имеют решающее значение, когда вы настраиваете, оптимизируете настройки GC/памяти вашего приложения.
Рис. Метрики отдельных фаз GC, сгенерированные GCeasy
3. Причины ГК
Сборка мусора сама по себе не повышает ценность обработки транзакций клиентов. Это необходимое зло для очистки объектов, на которые нет ссылок, и освобождения места для обработки новых входящих запросов. Однако сборка мусора потребляет значительное количество ресурсов ЦП и приводит к приостановке работы приложения. Таким образом, следует попытаться сократить количество времени запуска событий GC и количество времени, которое требуется для запуска.
GCeasy сообщает о причинах, вызывающих события сборки мусора. Если эти причины могут быть устранены, количество событий GC и вызванные ими паузы могут быть сведены к минимуму. Эти «причины GC» не сообщаются инструментами APM.
Рис. Причины, вызывающие события GC
4. Алгоритмы машинного обучения для обнаружения проблем
GCeasy использует алгоритмы машинного обучения для обнаружения различных проблем, связанных с памятью/GC. Об обнаруженных проблемах сообщается в отчете. GCeasy не только обнаруживает проблемы, но также рекомендует решения для устранения обнаруженных проблем. Ниже приведены несколько таких проблем и решений, о которых сообщил инструмент GCeasy:
Рис. GCeasy автоматически обнаруживает проблемы, связанные с GC/памятью
5. Алгоритмы машинного обучения — рекомендации по настройке памяти
Алгоритмы машинного обучения GCeasy предоставляют советы по оптимизации и настройке параметров сборщика мусора и памяти в JVM.
Рис. Советы по настройке GC, рекомендованные GCeasy
6. REST API — для интеграции CI/CD
GCeasy предоставляет JSON на основе REST API для анализа журналов сбора мусора. Вместо ручной загрузки и анализа журналов сборщика мусора вы можете использовать этот API для автоматического анализа сотен/тысяч журналов сборщика мусора. API предоставляет подробные микрометрики по различным аспектам использования памяти приложения и GC. Эти API используются предприятиями в конвейере CI/CD. Это облегчает обнаружение различных проблем с производительностью, связанных с GC и памятью, прямо во время фиксации кода.
7. Количество потерянной памяти
Сегодня предприятия тратят впустую от 30 до 80% памяти из-за неэффективных методов программирования, таких как: дублирование строк, неэффективная реализация структуры данных, неоптимальные определения типов данных, чрезмерное выделение и недостаточное использование размеров генерации…. Родственный продукт GCeasy HeapHero — это первый в отрасли инструмент, сообщающий о количестве памяти, потраченной впустую из-за неэффективного программирования.
Рис. HeapHero сообщает об объеме памяти, потраченной впустую из-за неэффективных методов программирования.
Вывод
Инструменты анализа журнала сбора мусора, такие как GCeasy, Garbage Cat, HP Jmeter, не заменяют инструменты APM, такие как AppDynamics, NewRelic, Dynatrace, Wily Introscope. Инструмент анализа журнала сбора мусора дополняет инструменты APM, предоставляя дополнительные показатели и цели.
Биография автора:
Рам Лакшманан
Каждый божий день миллионы и миллионы людей в Северной Америке — банки, туристы и коммерция — используют приложения, разработанные Рамом Лакшмананом. Рам является признанным докладчиком на крупных конференциях по темам масштабируемости, доступности и производительности. Недавно он основал стартап, специализирующийся на устранение проблем с производительностью.