首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >G1GC对于大火花应用是稳定的吗?

G1GC对于大火花应用是稳定的吗?
EN

Stack Overflow用户
提问于 2022-05-09 22:11:27
回答 1查看 75关注 0票数 -4

我们的数据管道目前正在Spark2.4和javaVersion1.8上运行,执行所有ETL步骤大约需要10个小时。

目前,我们注意到驱动程序内存堆被提升,并在管道的末尾造成大量的GCs (堆被赋予70G ),即使所有的GCs都处于最高级别,请记住这是火花驱动程序。

在用-XX:+UseParallelGC进行测试之后,我们目前正在使用-XX:+UseG1GC。我们注意到,完整GC的数量下降了很多,因此考虑改为G1GC。但是我从同事那里听说,几年前G1GC并不稳定,我想知道G1GC现在对于大型星火应用程序是否稳定GC (在我们的例子中,运行10+小时,50G+堆大小)

EN

回答 1

Stack Overflow用户

发布于 2022-05-11 11:48:29

(这是一个不断增长的评论)

首先,听起来好像你有一个记忆leak.Just从你的描述,它听起来像是你没有解放老一代。转移到G1并不能解决这个问题。

请注意,我不熟悉您的特定用例,也不知道是否存在延迟需求。

尽管如此,我们有运行J8的g1和800 GB (有时更大,记录为1.5TB)堆的实例,没有任何重大问题。

请注意,在这种堆大小下,可能会出现奇怪的边缘情况,并且配置可能是脆弱的。但它被用于生产。

有一点值得注意的是,HW线程的数量非常重要。即使大多数时候他们什么也不做,一旦gc进入混合循环,hw线程的数量就变得非常重要。

一般来说,如果这是一个批处理式的应用程序,没有延迟需求,那么请与并行收集器保持在一起,并修复内存泄漏。G1并发地消耗cpu,而并行收集器不消耗cpu。

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

https://stackoverflow.com/questions/72178706

复制
相关文章

相似问题

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