当前位置: 首页 > 知识库问答 >
问题:

旧一代堆内存的逐渐增加

公西良骏
2023-03-14

我在spark streaming中面临一个非常奇怪的问题。我使用的是spark 2.0.2、节点数3、执行器数3{1个接收器和2个处理器}、每个执行器的内存2GB、每个执行器的内核1。批次间隔为10秒。我的批量大小约为1000条记录(约150KB)。

流转时长从最初的2秒逐渐增加到几分钟,但在最初的40-50小时内运行良好。之后,调度延迟和流转时长开始上升。

我试过查看GC,发现驱动程序的旧一代堆内存容量不断增加。这可能是原因吗?我使用jstat监控堆内存。容量在六小时内从1161216字节增加到1397760字节。

驱动程序运行的机器有8个物理内核,经过40-50小时的流式处理后,机器上的CPU使用率在所有8个内核上都是100%,旧一代堆使用率已满,FullGC非常频繁。

我还看到了jira的一个问题,它说spark streaming中存在内存泄漏,但它也说spark 1.5之后解决了这个问题。这有关系吗?

编辑:

我也采取了堆转储大约50小时后应用程序启动。

共有1个答案

吕天逸
2023-03-14

这个问题现在已经解决了。请看一下这个,升级你的spark。

 类似资料:
  • 我们面临的问题是,Java进程的驻留内存逐渐增长。我们将Xmx定义为4096 MB,并且XX:MaxPermSize=1536m。活动线程的数量约为1500,定义了256K的Xss。 当应用服务器(JBoss 6.1)启动时,使用的驻留内存约为5.6GB(一直在使用top命令对其进行监视);它逐渐增长(每天约0.3到0.5 Gb),直到增长到约7.4 Gb,这时内核的OOM杀手由于RAM空间不足而

  • 我正在centos 6上运行java应用程序,使用G1GC运行openjdk版本“1.8.0_232”。我看到堆的总使用量逐渐增加,导致应用程序崩溃。当我对活动对象进行堆转储时,转储大小仅为1.6GB,但我使用的总堆容量为32GB。 用于获取dump:jmap-dump:live、format=b、file=/tmp/dump的命令。hprof 从某个地方读到,jmap dump命令会触发一个完整

  • 本文向大家介绍eclipse 增加Eclipse的最大堆内存,包括了eclipse 增加Eclipse的最大堆内存的使用技巧和注意事项,需要的朋友参考一下 示例 要增加Eclipse使用的最大堆内存量,请编辑eclipse.iniEclipse安装目录中的文件。 该文件指定用于启动Eclipse的选项,例如要使用的JVM,以及JVM的选项。具体来说,您需要编辑-XmxJVM选项的值(如果不存在,请

  • 问题内容: 我对Java堆内存有一个问题。我用Java开发了一个客户端服务器应用程序,该应用程序作为Windows服务运行,需要超过512MB的内存。我有2GB的RAM,但是运行应用程序时会引发异常 内存不足错误:java堆空间 但是我已经在Java控制面板中设置了堆大小(最大512MB),但仍然收到相同的错误。我无法通过命令行设置堆大小,因为我的应用程序作为Windows服务运行,因此如何增加默

  • 我在java堆内存方面有一个问题。我用java开发了一个客户机服务器应用程序,作为windows服务运行,它需要超过512MB的内存。我有2GB的RAM,但当我运行我的应用程序时,它抛出一个异常 内存不足错误:Java堆空间 但是我已经在java控制面板中设置了堆大小(最大值为512MB),我仍然得到相同的错误。我不能通过命令行设置堆大小,因为我的应用程序是作为windows服务运行的,所以如何增

  • 主要内容:on-heap 堆内内存是什么?,JVM 堆内存是如何去划分的?,JVM 堆内存满了后会怎么样?,基于堆外内存解决系统 GC 卡顿问题今天给大家聊一个很有意思的知识,就是 off-heap 堆外内存,平时出去面试,或者研究一些技术的时候,经常可能会遇到 off-heap 堆外内存这个东西,但是很多人可能还不知道 off-heap 堆外内存到底是什么,所以今天就给大家来深入的分析一下。 on-heap 堆内内存是什么? 要说这个 off-heap 堆外内存,就得先说 on-heap 也就