>
> 现在比如一个节点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. <bxwhfh...@126.com> wrote:

> 得知flink的内存是隔离的,cpu不能隔离;
> 现在比如一个节点16核cpu 16g内存,4个slot;
> 通过调试和日志,发现每个slot拥有1个cpu,那么4个slot就占用4个cpu核心。且堆内存为512M。
> 这样的话其他12个cpu核心以及那么大的内存是没有被使用然后浪费了吗?
>
>
> 期待回复,多谢!

回复