spark调优-GC

1、什么是GC

垃圾收集 Garbage Collection 通常被称为“GC”,回收没用的对象以释放空间。

  GC 主要回收的是虚拟机堆内存的空间,因为new 的对象主要是在堆内存。

 

2、频繁GC的影响及优化方法

(1)频繁的GC影响

task运行期间动态创建的对象使用的Jvm堆内存的情况

当给spark任务分配的内存少了,会频繁发生minor gc(年轻代gc),如果存活时间长的对象特别多,就会发生full gc(老年代gc)。

当频繁的new对象时,导致很快进入老年代,这样也可能发生full gc。

频繁gc 会影响 工作任务线程的正常执行,从而降低spark 应用程序的性能。可以增加executor-memory内存数量。

(2)优化方案

a)优化代码,避免频繁new 同一个对象,导致的频繁gc。

b)调节可用存储内存和执行内存的比例,以减少gc 发生的频率。

c)对应存储内存,可以考虑存储序列化后的对象,调节序列化级别为MEMORY_DISK_SER或MEMORY_ONLY_SER,这样占用内存空间小。

d)还可以使用Kryo序列化类库,进行序列化,因为kryo序列化方法可以进一步的降低RDD的parition的内存占用量。

 

posted @   所向披靡zz  阅读(1000)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示