首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调优G1GC参数以进行积极的垃圾收集?

调优G1GC参数以进行积极的垃圾收集?
EN

Stack Overflow用户
提问于 2018-12-25 10:34:22
回答 1查看 1.7K关注 0票数 3

我的JVM基本上是一个火花执行器,它一个接一个地运行任务。任务需要内存,在其生命周期内需要大量内存。

JConsole和JVisualVM并排报告

上面的JVM运行在具有默认参数的G1GC上。正如您在右侧的VisualVM报告中所看到的,下午4:25到4:32之间的尖峰是由执行器运行的每个任务造成的(本质上,每个尖峰都是由于执行者在完成上一个任务之后选择了新任务)。当我在4:35触发手动GC时,我看到堆使用量急剧下降。另外,正如您在JConsole报告的左侧所看到的那样,G1GC从未收集过旧的gen空间( 16:35之前,旧的gen空间急剧下降是由于手动GC)。

因为我的应用程序是一个火花批次作业申请,所以如果JVM花费了大量的时间来执行GC,我是可以的。但是,我的记忆力有点不足。因此,我想知道如何调优我的JVM G1GC参数,以便有更频繁的GC (旧的gen空间也被收集),并且我可以使用相当多的堆空间(XMX)来完成工作。

EN

回答 1

Stack Overflow用户

发布于 2019-01-06 12:20:36

对于G1,及时将未使用的内存返回到操作系统是OpenJDK 12的一个特性:

如果内存不足,很可能需要控制RSS (从操作系统分配的总内存),而不仅仅是Java堆中使用的内存。在当前的G1中,(半)手动触发完整的OpenJDK似乎是触发RSS减少的唯一方法。(如果您更改完整GC频繁发生的人机工程学,G1的性能将很差。)

如果您的OpenJDK构建包含神农多收藏家,那么如果您需要节省内存,特别是通过一些调优(例如使用-XX:ShenandoahGCHeuristics=compact ),这可能是一个更好的选择。

ZGC最终也应该支持返回内存,但是它目前没有选项还没有被合并。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53921518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档