是否应在生产环境中使用HeapDumpBeforeFullGC?

时间:2018-07-03 12:17:18

标签: garbage-collection heap-dump

发生完整的gc之后,我们可能想知道它是如何发生的。没有堆转储,我认为很难做到这一点,但是在生产环境中,我们通常无法及时得到它。因此,我想在应用程序在线运行时使用 HeapDumpBeforeFullGC

我的问题是 HeapDumpBeforeFullGC 是否应在产品环境中使用?这会带来一些不良影响吗(如果我们不考虑磁盘使用情况)? 还是我们有其他有效的方法来找出在生产环境中导致完全GC的原因?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您认为完整的GC是生产中的问题,那么可以,添加堆转储可能会有所帮助。但这会使完整GC上的暂停时间更加糟糕。

作为替代方案,您可以打开详细的GC日志记录,这通常是识别一般原因(堆大小不足,泄漏,分配高峰,配置错误,交换等)的良好开端。您还可以使用侵入性较小的分析器(例如async-profiler或jmc)来发现过多的分配情况