> > 现在比如一个节点16核cpu 16g内存,4个slot;
你这里所说的节点,应该指的是 Flink TM 所在的物理机或虚拟机吧。 你这里混淆了好几个概念 - 节点、TM、slot 是三个不同层次的概念。16c16g 是针对节点的,4 slot 是针对 TM 的。一个节点是可以有多个 TM的。 - TM 的内存不仅包括堆内存,还包括其他内存类型,因此 512M 不代表 TM 的内存大小。 - TM 的 cpu 和内存是否会超用,很大程度上取决于你的运行环境。从 Flink 自身来看,Heap、Direct、Mataspace 这几种内存都是不会超用的,但是 Native 内存有一部分是有可能超用的,另外 CPU 也是有可能超用的。但是通常 K8s/Yarn 运行环境中都提供外围的资源限制,比如不允许资源超用或只允许一定比例的资源超用,这个要看具体的环境配置。 可以看一下内存模型与配置相关的几篇官方文档 [1]。 Thank you~ Xintong Song [1] https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/deployment/memory/mem_setup.html On Sun, Apr 11, 2021 at 9:16 PM penguin. <[email protected]> wrote: > 得知flink的内存是隔离的,cpu不能隔离; > 现在比如一个节点16核cpu 16g内存,4个slot; > 通过调试和日志,发现每个slot拥有1个cpu,那么4个slot就占用4个cpu核心。且堆内存为512M。 > 这样的话其他12个cpu核心以及那么大的内存是没有被使用然后浪费了吗? > > > 期待回复,多谢!
