我们在由Liferay 6.2和JBoss 6.4.5组成的环境中遇到垃圾收集问题。
服务器运行平稳,GC进程接缝通常执行良好,但是在某一时刻,GC进程开始执行了很多次:
JAVA_OPTS =“ $ JAVA_OPTS -Xms6144m -Xmx6144m -XX:MetaspaceSize = 512m -XX:MaxMetaspaceSize = 2048m”]
未检测到内存泄漏。
任何人都可以帮助我们解释为什么这样的GC行为吗?
非常感谢。
查看图表,我假设您正在HotSpot JVM中使用ParallelGC。
如果实时数据集不适合旧空间大小,则ParallelGC从世代(年轻/旧)切换到单空间操作模式。
在单个空间中,每个集合都是完整GC。
解决方案是增加旧空间。可以通过增加堆大小或减小新大小来完成此操作(例如-Xmn1g
选项)。