开发者社区> 问答> 正文

实时计算 Flink 内存相关介绍

已解决

实时计算 Flink 内存相关介绍

展开
收起
提个问题 2024-06-11 19:11:57 15 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    • 如何查看Taskmanager内存使用情况
      • 作业运维->点击作业名称->作业探查->点击Taskmanager查看内存使用情况
      • 作业运维->数据曲线->Memory->选择时间查看Taskmanager内存使用情况
    • 是否支持配置额外的内存参数
    • JobManager Memory配置有什么建议
      • 最小值为1GiB,推荐值为2GiB。单位建议使用GiB或MiB,例如,1024MiB或1.5GiB。JobManager推荐配置包含JobManager资源以及心跳相关参数。具体内容如下:
        • 由于JobManager上承载TaskManager心跳、作业Task序列化和资源调度等功能。因此建议JobManager资源不小于默认配置,请根据集群负载情况进行处理。
        • 为了集群稳定,避免JobManager主线程繁忙导致心跳超时。因此建议心跳间隔(heartbeat.interval)不小于10秒,同时心跳超时(heartbeat.timeout)不小于50秒。请根据TaskManager个数与作业量上涨情况而上调。
    • Managed Memory作用是什么
      • Flink Managed Memory的工作机制是算子初始化的时候先把内存申请好,然后运行的过程中再去使用,并不会在运行过程中再频繁向系统申请和释放。尽管没有数据,但只要算子都拉起来了,那么Managed Memory在不同算子之间如何分配就已经确定了,这部分内存就会被认为已经分配出去了,所以显示100%。只有两种情况这个数值不是100%,一种是TM上存在未被占用的slot,另一种就是整个slot中所有task都没有需要使用managed memory的。详情参考开源 Managed Memory文档。
    • 内存什么时候会释放
      • Flink自行管理内存,意味着内存的管理和释放均由Flink负责,触发Java堆外内存释放行为有两种:
        • 内存使用完毕
        • Task 停止执行
    • 内存结构如何划分
      • 与操作系统管理内存一样,将内存划分为内存段、内存页等结构。
        • 内存段:在Flink内部叫做MemorySegment,是Flink的内存抽象的最小分配单元,默认情况一个内存段对应一个32KB大小的内存块。
    2024-06-11 19:11:58
    赞同 3 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载