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 徐涛 <xutao_u...@163.com> wrote: > Hi All, > 在官方文档里面,有介绍说多个Slot之间可以平均划分TM内存。 > > 但是我在Flink的源代码里面并没有找到Slot平均划分TM内存的代码。而且不太明白的是,同一个JVM内,不同Slot平均划分内存的实现原理是什么? > 非常感谢! > > > 谢谢 > 徐涛