【问题标题】:Gradual Increase in old generation heap memory老年代堆内存逐渐增加
【发布时间】:2017-02-14 13:11:58
【问题描述】:

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

我的批处理时间从最初的 2 秒逐渐增加到几分钟,但在前 40-50 小时内运行良好。之后,调度延迟和处理时间开始增加。

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

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

我还看到了jira issue,它说 spark 流中存在内存泄漏,但它也说它在 spark 1.5 之后得到了解决。这相关吗?

编辑

我还在应用程序启动大约 50 小时后进行了堆转储。

为什么scala.collection.immutable.$colon$colon的实例这么多?

【问题讨论】:

  • 你在Dstream上做了哪些操作?
  • 一些聚合,加入 cassandra 并存储回 cassandra
  • 我的批处理间隔是 20 秒

标签: apache-spark garbage-collection spark-streaming


【解决方案1】:

问题已修复now。请看看这个并升级你的火花。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多