不懂就问:跟据官网说明算的 StorageMemory 和 SparkUI 显示的对不上

2022-03-25 17:21:20 +08:00
 heyyyy

按照官网的说明:

storageMemory = 1g * 0.6 * 0.5 = 217m, 但是 sparkUI 上显示的是 2GiB.

网上有些文档记录了这个情况,理解可能原因有以下几个:

1356 次点击
所在节点    问与答
7 条回复
heyyyy
2022-03-25 17:33:58 +08:00
更正一下:storageMemory = (1g-300m) * 0.6 * 0.5 = 217m
disk
2022-03-25 19:12:26 +08:00
你这算的有问题,storageMemory < (1g-300m) * 0.6 ,和 spark.memory.storageFraction 没关系。我在 3.2 上是正常的,你看下 Memory per Executor 是不是正确。
heyyyy
2022-03-25 19:53:13 +08:00
@disk (1g-300m) * 0.6 得到的是包括 ExecutionMemory 和 StorageMemory 的内存大小。
disk
2022-03-25 20:07:42 +08:00
@heyyyy 对的,ExecutionMemory 和 StorageMemory 是共享内存的,spark.memory.storageFraction 只决定其中最大不可驱逐缓存的比例,和实际的 StorageMemory 没有关系。
heyyyy
2022-03-25 21:14:44 +08:00
@disk 谢谢大佬,client 模式下,sparkConf 中的 spark.executor.memory 不会生效,因为执行到那行的时候 jvm 已经启动过了。我的 jvm 参数是-Xmx4g ,spark 拿到的是 3.6g ,减去 ReservedMemory 的 300m 再乘以 0.6 跟 sparkUI 是一致的。
tinkerer
2022-03-25 21:28:09 +08:00
跟踞 > 根据
disk
2022-03-25 22:44:50 +08:00
@heyyyy client 模式下,也可以通过 sparkConf 的 spark.executor.memory 设置内存,但是 SparkContext 如果已经创建则设置不会生效。-Xmx 只是设置 spark 节点的内存,worker 内存和 executor 内存各有一套设置。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/842893

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX