首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么spark MEMORY_AND_DISK比MEMORY_ONLY慢?

为什么spark MEMORY_AND_DISK比MEMORY_ONLY慢?
EN

Stack Overflow用户
提问于 2017-08-17 23:52:17
回答 2查看 756关注 0票数 0

我有一个非常典型的RDD场景,我收集一些数据,持久化它,然后多次使用持久化的RDD进行各种转换。持久化的速度要快上一个数量级,所以持久化是绝对必要的。

但我对不同坚持方法的相对速度感到惊讶。如果我坚持使用MEMORY_AND_DISK,那么每次后续使用持久化的RDD所需的时间比我使用MEMORY_ONLY多10%左右。为什么会这样呢?如果数据可以放入内存,我会期望它们具有相同的速度;如果某些分区无法放入内存,我希望MEMORY_AND_DISK会更快。为什么我的计时总是不能证明这是真的?

EN

回答 2

Stack Overflow用户

发布于 2017-08-18 00:43:53

您的CPU通常以大约10 Gb/s的速度访问内存,而对固态硬盘的访问需要600Mb/s,当选择MEMORY_ONLY时,不适合内存的分区将使用父rdds分区重新计算。如果您没有广泛的依赖,这应该是可以的

票数 0
EN

Stack Overflow用户

发布于 2017-08-18 01:51:03

没有上下文是不可能判断的,但至少有两种情况下MEMORY_AND_DISK

  • 数据大于可用内存-对于不适合内存的MEMORY_AND_DISK分区将存储在disk.
  • Partitions上已从内存中逐出-对于MEMORY_AND_DISK,将存储在磁盘上,对于MEMORY_ONLY,将丢失,必须重新计算,并且逐出可能会触发大型GC扫描。

最后,您必须记住,_DISK可以使用不同级别的硬件和软件缓存,因此访问不同块的速度可能与主内存相当。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45739781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档