开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

任务运行器中的Memory资源有几种,分别是做什么的?

任务运行器中的Memory资源有几种,分别是做什么的?

展开
收起
詹姆斯邦德00 2021-11-17 17:08:19 1178 0
1 条回答
写回答
取消 提交回答
  • 有Process Memory、Task Heap Memory、Task Off-Heap Memory、Netork Memory 等等。

    TaskManager 也对它们的配置进行了分层的管理,最外层是 Process Memory,对应的是整个 TaskExecutor JVM 的总资源。这份内存又包含了 JVM 自身占有的内存以及 Flink 占有内存。而 Flink 占用内存又包含了框架占有的内存和任务的内存。

    任务占用内存包括了 Task Heap Memory,即任务的 Java 对象占有的内存;Task Off-Heap Memory 一般用于 native 的第三方库;Network Memory 是用来创建Network Buffer 用来服务于任务的输入和输出; Managed Memory 则是受管控的Off-Heap Memory,它会被一些组件用到,比如算子和 StateBackend。这些 Task资源会被它分成一个一个的 Slot,Slot 是任务运行的逻辑容器。当前,Slot 大小是直接把 整个 TasExecutor 的资源,按照 Slot 的数量进行均分得到的。

    资料来源:《Apache Flink 必知必会》,下载链接:https://developer.aliyun.com/topic/download?id=1189 

    2021-11-17 19:17:16
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
Android内存泄漏自动化链路分析组件--Probe 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载