Использование памяти с G1GC вводит в заблуждение - PullRequest
0 голосов
/ 10 мая 2019

Мы перенесли наше приложение из CMS в G1GC и сообщаем, что система мониторинга кучи вызывает оповещения об использовании высокой кучи.Максимальное использование кучи составляет более 80% от общей кучи и почти вдвое больше, чем мы привыкли получать с CMS.График памяти имеет зигзагообразный характер с высоким и низким уровнем использования.

Просматривая журнал GC, мы заметили, что для уменьшения частоты цикла GC G1GC выделяет около 50% кучи в пространство Eden.Большинство объектов в Eden являются временными объектами, которые очищаются в следующем GC.Поскольку G1GC задерживает цикл GC, большая часть сообщаемой высокой кучи состоит из временных объектов.

Система мониторинга в основном захватывает MBean Memory_HeapMemoryUsage, чтобы получить снимок памяти.Но из-за того, как работает G1GC, эти данные вводят в заблуждение.Мы можем изменить способ, которым система мониторинга собирает данные, но тогда они станут специфичными для G1GC?

Есть ли лучший подход, который не зависит от реализации GC?

...