V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
heyyyy
V2EX  ›  问与答

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

  •  
  •   heyyyy · 2022-03-25 17:21:20 +08:00 · 1160 次点击
    这是一个创建于 761 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按照官网的说明:

    • spark.executor.memory 默认值:1g
    • spark.memory.fraction 默认值:0.6
    • spark.memory.storageFraction 默认值:0.5

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

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

    • jvm 可用的最大内存比 spark.executor.memory 小,这项排除,程序中 jvm 可用内存是 3g+。
    • sparkUI 页面的单位换算有 bug,字节换算到 GB 的时候用的是 1000 而不是 1024 ,这项排除,我的 spark 版本是 3.0.0, 这个问题已经被修复: https://issues.apache.org/jira/browse/SPARK-25696
    • 堆外内存被开启使用:spark.memory.offHeap.enabled=true,这项排除,因为默认情况下是关闭的,我没有在 sparkSession 中开启。
    7 条回复    2022-03-25 22:44:50 +08:00
    heyyyy
        1
    heyyyy  
    OP
       2022-03-25 17:33:58 +08:00
    更正一下:storageMemory = (1g-300m) * 0.6 * 0.5 = 217m
    disk
        2
    disk  
       2022-03-25 19:12:26 +08:00
    你这算的有问题,storageMemory < (1g-300m) * 0.6 ,和 spark.memory.storageFraction 没关系。我在 3.2 上是正常的,你看下 Memory per Executor 是不是正确。
    heyyyy
        3
    heyyyy  
    OP
       2022-03-25 19:53:13 +08:00
    @disk (1g-300m) * 0.6 得到的是包括 ExecutionMemory 和 StorageMemory 的内存大小。
    disk
        4
    disk  
       2022-03-25 20:07:42 +08:00   ❤️ 1
    @heyyyy 对的,ExecutionMemory 和 StorageMemory 是共享内存的,spark.memory.storageFraction 只决定其中最大不可驱逐缓存的比例,和实际的 StorageMemory 没有关系。
    heyyyy
        5
    heyyyy  
    OP
       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
        6
    tinkerer  
       2022-03-25 21:28:09 +08:00
    跟踞 > 根据
    disk
        7
    disk  
       2022-03-25 22:44:50 +08:00
    @heyyyy client 模式下,也可以通过 sparkConf 的 spark.executor.memory 设置内存,但是 SparkContext 如果已经创建则设置不会生效。-Xmx 只是设置 spark 节点的内存,worker 内存和 executor 内存各有一套设置。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3250 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:27 · PVG 21:27 · LAX 06:27 · JFK 09:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.