acquireExecutionMemory方法
UnifiedMemoryManager中的accquireExecutionMemory方法:
当前的任务尝试从executor中获取numBytes这么大的内存
该方法直接向ExecutionMemoryPool索要所需内存,索要内存有以下几个关注点:
- 当ExecutionMemory 内存充足,则不会触发向Storage申请内存
- 每个Task能够被使用的内存是被限制的
- 索要内存的大小
我们通过源码来进行分析
ruozedata
Spark 1.6之后引入的统一内存管理机制,与静态内存管理的区别在于Storage和Execution共享同一块内存空间,可以动态占用对方的空闲区域
其中最重要的优化在于动态占用机制,其规则如下: