得知flink的内存是隔离的,cpu不能隔离; 现在比如一个节点16核cpu 16g内存,4个slot; 通过调试和日志,发现每个slot拥有1个cpu,那么4个slot就占用4个cpu核心。且堆内存为512M。 这样的话其他12个cpu核心以及那么大的内存是没有被使用然后浪费了吗?
期待回复,多谢!*来自志愿者整理的flink
你这里所说的节点,应该指的是 Flink TM 所在的物理机或虚拟机吧。
你这里混淆了好几个概念
节点、TM、slot 是三个不同层次的概念。16c16g 是针对节点的,4 slot 是针对 TM 的。一个节点是可以有多个 TM的。
TM 的内存不仅包括堆内存,还包括其他内存类型,因此 512M 不代表 TM 的内存大小。
TM 的 cpu 和内存是否会超用,很大程度上取决于你的运行环境。从 Flink 自身来看,Heap、Direct、Mataspace 这几种内存都是不会超用的,但是 Native 内存有一部分是有可能超用的,另外 CPU 也是有可能超用的。但是通常 K8s/Yarn 运行环境中都提供外围的资源限制,比如不允许资源超用或只允许一定比例的资源超用,这个要看具体的环境配置。
可以看一下内存模型与配置相关的几篇官方文档 [1]。 [1] https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/deployment/memory/mem_setup.html*来自志愿者整理的flink
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。