我们的应用程序显示在加载大约24小时后频繁出现Full GC。强制重新启动。
当我们分析GC日志时,表明20GB MaxHeap中只有1GB用于年轻一代,而19GB被OLD一代使用。
命令选项为-Xms2g -Xmx20g
-Xms2g
应该增加到10GB还是等于20GB,以便NewRatio
的默认比率2可以让年轻一代使用更多的JVM?
答案 0 :(得分:0)
使用jmap -histo
监视JVM堆,并在堆大小达到峰值时找到一种模式。
还尝试使用http://gceasy.io
实际上,一些休眠实体堆积在事务中,这是代码中的问题。
在代码中对其进行了更正,它确实有助于使堆处于受控状态,而不是使堆峰值。
另一方面,有人指出,虽然未指定新旧比率,所以JVM应该使用1:2比率,但事实并非如此。 因此,专门为NewSize和MaxNewSize提供了值,它有助于获得更好的结果。