当前位置: 首页 > news >正文

GC overhead limit exceeded---Java 虚拟机 (JVM) 在进行垃圾回收内存量非常少解决

背景:

        我正在跑一个数据处理较为复杂的程序。然后调试了很多遍,出现了GC问题,如下图bug.        

        GC overhead limit exceeded-这个bug错误通常表示 Java 虚拟机 (JVM) 在进行垃圾回收时花费了过多的时间,并且回收的内存量非常少。这通常是由于内存不足或数据量过大导致的,如下图,我自己跑的程序出现错误。

尝试以下解决方案

1. 增加 Executor 内存

增加 Spark Executor 的内存在创建 SparkSes,sion 时设置 spark.executor.memory 参数:

val spark = SparkSession.builder() 
.appName("xxxxx") 
.config("spark.executor.memory", "20g") 
.config("spark.kryoserializer.buffer.max", "512m") 
.config("spark.serializer", "org.20apache.spark.serializer.KryoSerializer") 
.getOrCreate()

2. 增加 Driver 内存

增加 Driver 的内存:

val spark = SparkSession.builder() .appName("xxxxx") 
.config("spark.driver.memory", "8g") 
.config("spark.executor.memory", "20g") 
.config("spark.kryoserializer.buffer.max", "512m") 
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") 
.getOrCreate()

3. 调整分区数量

增加数据的分区数量可以帮助分散数据处理的负担,从而减少每个分区的内存消耗。

使用 repartition()coalesce() 方法来调整 DataFrame 的分区:

val numPartitions = 200 // 我差不多几十个G数据, 
val repartitionedDF = userInfoDF.repartition(numPartitions)

4. 调整 Spark 配置参数

调整以下 Spark 配置参数:

  .config("spark.memory.fraction", "0.7") // 调整内存比例
  .config("spark.memory.storageFraction", "0.5") // 调整存储比例

基本就这几种方案,一个一个试出来的,然后解决了,遇事不决调整资源,然后调整比例。最重要的是内存!!内存,还是TMD内存!!!

非常完美!

http://www.dtcms.com/a/88744.html

相关文章:

  • 【机器人】复现 GrainGrasp 精细指导的灵巧手抓取
  • Android开发检查是否是各大厂商手机的工具类
  • Redis 服务搭建
  • Spring MVC的请求和响应
  • JavaScript 函数基础
  • IoTDB看门狗配置后不生效
  • 算法 | 小龙虾优化算法原理,引言,公式,算法改进综述,应用场景及matlab完整代码
  • ISIS-2 邻居建立关系
  • 4.1 C#获取目录的3个方法的区别
  • 【考研政治】2026考研政治马原部分关键词带背 导论
  • Mysql基本查询(上)
  • 情绪分析和深度强化学习确实能够在一定程度上增强股市预测
  • 实战-MySQL5.7升级8.0遇到的四个问题
  • 解决安卓so库异常无法打印堆栈的问题
  • 网络拓扑图
  • 区块链驱动金融第九章——解锁比特币 “平台” 的多元潜力
  • vue中ts引入组件,无法找到模块xxx的声明文件。xxx隐式拥有 “any“ 类型。
  • HTTP长连接与短连接的前世今生
  • 【商城实战(63)】配送区域与运费设置全解析
  • Python字典
  • Flume-试题
  • TCP/IP 协议栈深度解析
  • 在我的电脑上构建ollama+deepseek-r1-7b运行环境;
  • C++相关
  • 泛目录:无极智能SEO 流量引擎
  • 【Qt】常用控件
  • python3面试题23个(设计模式、面向对象、正则)
  • 特殊行车记录仪DAT视频丢失的恢复方法
  • 吴恩达机器学习笔记复盘(十一)逻辑回归的代价和损失函数
  • 为什么IE不支持{‘a‘:11,‘b‘:‘s2‘} 单引号的JSON数据