1

我们有一个在 OpenJDK8 上运行的应用程序,它一整天的分配率都很高(大约 80 MB/秒)。

我们注意到整体young generation gc时间直接参考old generation的占用,并且越来越慢。这怎么可能?此外,在强制 FullGC 之后,平均 GC 时间再次变快,之后又缓慢增加

工作量没有太大变化,并且有大量的 OldGen 可用空间。是的,有对 OldGen 的推广,但这是有意的,无法优化。

这里有两张图作为证据: OldGen YoungGen

请忽略 OldGen 的尖峰,这只是一个测量错误。红线代表 GC。

我们使用这些启动参数:

-server -Xms8g -Xmx15g -XX:MaxPermSize=2048m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -verbose:gc

提前致谢。

4

0 回答 0