监视Spark中不同的内存使用块,并了解OOM上的内存耗尽情况?

时间:2014-06-12 16:49:20

标签: scala memory monitoring apache-spark

Apache Spark有3块内存:

  • 缓存 - 这是您拨打cachepersist
  • 时放置RDD的地方
  • 随机播放。这是用于随机操作的内存块(分组,重新分区和reduceByKey
  • 堆。这是保存普通JVM对象的地方。

现在我想通过一个作业监视每个块的%使用的内存量,这样我就可以知道我应该调整这些数字,以便Cache和Shuffle不会溢出到磁盘并使堆不是OOM。例如。每隔几秒我就得到一次更新:

Cache: 40% use (40/100 GB)
Shuffle: 90% use (45/50 GB)
Heap: 10% use (1/10 GB)

我知道我可以尝试使用其他技术找到最佳点,但我发现这非常费力,只是能够监控使用情况会使编写和调优Spark工作变得更加容易。

0 个答案:

没有答案