在 JBoss 上使用 Liferay 时出现 Java 垃圾收集问题 : GC executed many times

标签 java jboss garbage-collection liferay-6

我们在由 Liferay 6.2 和 JBoss 6.4.5 组成的环境中遇到垃圾收集问题。

服务器运行平稳,GC 进程正常执行良好,但在某一时刻 GC 进程开始执行多次:

GC Duration time

我们在 16GB 内存服务器中运行,内存配置如下: Memory distribution

JAVA_OPTS="$JAVA_OPTS -Xms6144m -Xmx6144m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=2048m"

未检测到内存泄漏。

谁能帮我们解释一下为什么 GC 会这样吗?

提前非常感谢您。

最佳答案

查看图表,我假设您正在 HotSpot JVM 中使用 ParallelGC。

如果实时数据集不适合旧空间大小,ParallelGC 将从分代(年轻/旧)切换到单空间操作模式。

在单个空间中,每个收集都是 Full GC。

解决办法是增加旧空间。可以通过增加堆大小或减少新大小(例如 -Xmn1g 选项)来完成。

关于在 JBoss 上使用 Liferay 时出现 Java 垃圾收集问题 : GC executed many times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60282418/

相关文章:

java - 为什么 JBoss Web 应用程序在没有 web.xml 的情况下也能正常工作?

java - JBOSS 库不在类路径中

java - JVM 中的类加载器

java - 可以用不同的 Number 返回类型覆盖接口(interface)方法吗?

java - 根据值拆分值列表

C# 手动删除对象指针

java - 使用 logrotate 的垃圾收集器日志 (loggc) 文件轮换无法正常工作

java - 在 XML 中发送非标准字符

java - a4j : outputPanel ReRender does not work

c - 如何从基于 C 的扩展中安全地使用指向 Ruby 对象的指针?