Hi 徐涛,
Flink并不能保证TM的资源是严格平分给所有slot的。正如你所言,JVM中不同线程的资源并无严格隔离。所谓的平均划分更多的是调度上的考虑,可以理解为在调度时认为一个slot的资源相当于TM资源的1/n
(n为slot数)。
有一个特例,对于DataSet作业使用到的managed memory,Flink目前是保证了TM的managed
memory平均划分给所有slot的。Managed
memory由TM上的MemoryManager管理,task在运行期间向MemoryManager申请内存,因此可以控制每个slot中task申请的内存上限。
Thank you~
Xintong Song
On Mon, Jul 1, 2019 at 8:59 PM 徐涛 <
[hidden email]> wrote:
> Hi All,
> 在官方文档里面,有介绍说多个Slot之间可以平均划分TM内存。
>
> 但是我在Flink的源代码里面并没有找到Slot平均划分TM内存的代码。而且不太明白的是,同一个JVM内,不同Slot平均划分内存的实现原理是什么?
> 非常感谢!
>
>
> 谢谢
> 徐涛