开发者社区> 问答> 正文

flink的cpu和内存资源分配

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

期待回复,多谢!*来自志愿者整理的flink

展开
收起
雪哥哥 2021-12-05 12:12:49 1743 0
1 条回答
写回答
取消 提交回答
  • 你这里所说的节点,应该指的是 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

    2021-12-05 17:38:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
RDS SQL Server CPU高使用率性能优化 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载