java - 在 JBoss 上使用 Liferay 的 Java 垃圾收集问题:GC 执行了多次
问题描述
我们在由 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 将从分代(年轻/旧)操作模式切换到单空间操作模式。
在单个空间中,每个集合都是 Full GC。
解决方法是增加旧空间。它可以通过增加堆大小或减少新大小(例如-Xmn1g
选项)来完成。
推荐阅读
- reactjs - ant Design Carousel:如何访问 goto()、next() 和 prev() 方法
- matlab - Simulink 中查找表的断点是什么?
- html - 用瓷砖包围的侧边栏
- php - PHP 计算 AgrregateRating 满分 5 星
- html - CSS 在桌面和 android 上的 chrome 上运行良好,但在 safari 上不起作用
- javascript - 如何通过javascript更改HTML输入字段/复选框的边框颜色?
- asp.net-core - 将主体从 ASP.NET Web API 2 迁移到 ASP.NET Core (AuthenticationFilter)
- svelte -
创建时没有预期的道具“段” - javascript - Jquery控制菜单在所有菜单上显示箭头,即使是没有子菜单的菜单
- rust - 压扁和收集切片的效率