Следует ли использовать HeapDumpBeforeFullGC в производственной среде? - PullRequest
0 голосов
/ 03 июля 2018

После того, как полный gc произойдет, мы можем захотеть узнать, как это происходит. Я думаю, что без дампов кучи это сделать сложно, но в производственной среде мы обычно не можем получить его вовремя Поэтому я хочу использовать HeapDumpBeforeFullGC в моем приложении, когда оно работает в режиме онлайн.

Мой вопрос: HeapDumpBeforeFullGC должен использоваться в среде продукта? Принесет ли это плохие результаты (если мы не будем рассматривать использование диска)? Или у нас есть другой эффективный способ найти причину полного gc в производственной среде?

Спасибо!

1 Ответ

0 голосов
/ 04 июля 2018

Если вы считаете, что полный сборщик мусора является проблемой при работе, то да, добавление дампа кучи может помочь. Но это сделает время паузы на полном GC еще хуже.

В качестве альтернативы вы можете включить детальное ведение журнала GC, которое часто является хорошим началом для определения общей причины (недостаточный размер кучи, утечки, скачки выделения, неправильная конфигурация, замена, ...). Вы также можете использовать менее инвазивные профилировщики (например, async-profiler или jmc) для определения чрезмерных выделений

...