Журналы Java Garbage Collector (GC) используются для управления памятью, выделения и продвижения объектов. Журналы GC содержат критически важную информацию, такую ​​как продолжительность процесса GC, количество продвигаемых объектов и многое другое. Он включает подробную информацию обо всем процессе GC и используемых им ресурсах.

Что такое ГК?

При работе с Java или любым другим языком программирования на основе JVM мы получаем определенные функции бесплатно. Одной из таких функций является очистка памяти. Если вы когда-либо использовали такие языки, как C/C++, вы, вероятно, помните такие функции, как malloc, calloc, realloc и free. Нам нужно было позаботиться о назначении каждого байта в памяти и позаботиться об освобождении назначенной памяти, когда она больше не нужна. Без этого мы вскоре столкнулись с нехваткой памяти, что привело к нестабильности и сбоям.

С Java нам не нужно беспокоиться об освобождении памяти, которая была назначена объекту. Нам нужно только прекратить использование объекта. Это так просто. Как только на объект больше не ссылаются внутри нашего кода, память может быть освобождена и повторно использована снова.

Освобождением памяти занимается специализированная часть JVM под названием Сборщик мусора.

Что такое журналы сборки мусора (GC)

Журнал сборщика мусора – это текстовый файл, создаваемый виртуальной машиной Java, в котором описывается работа сборщика мусора. Он содержит всю информацию, которая может вам понадобиться, чтобы увидеть, как работает процесс очистки памяти. Он также показывает, как ведет себя сборщик мусора и сколько ресурсов он использует. Хотя мы можем отслеживать наше приложение с помощью поставщика APM или собственного встроенного инструмента мониторинга, журнал сборщика мусора будет иметь неоценимое значение для быстрого выявления любых потенциальных проблем и узких мест, когда речь идет об использовании памяти кучи.

Мы можем включить журналы GC для приложения JAVA. теперь, когда происходит дросселирование, мы можем проанализировать эти журналы, чтобы выяснить причину.

ваше приложение должно генерировать три журнала: -

  1. журналы приложений
  2. журналы доступа
  3. Журналы сборщика мусора

Теперь, если ваше приложение работает на нескольких машинах (подах Kubernetees), grep регистрирует только одну машину.

Существует несколько сайтов для графического анализа этих журналов GC.

Пример:- https://www.gceasy.io/gc-index.jsp

Вы можете увидеть различные графики, сформированные в журналах GC. увидев их, вы можете определить причину.

Больше подробностей :-