当前位置: 首页 > news >正文

Flink中并行度和slot的关系——任务和任务槽

一、任务槽(task slots)

        Flink的每一个TaskManager是一个JVM进程,在其上可以运行多个线程(任务task),那么每个线程可以拥有多少进程资源呢?任务槽就是这样一个概念,对taskManager上每个任务运行所占用的资源做出明确的划分,即每个任务槽就表示了TaskManager拥有计算资源的一个固定大小的子集。

二、任务槽数量的设置

        一个slot独享taskManager意味着更高的隔离级别,任务彼此之间影响降低;多个slot则能共享TCP连接、心跳信息、数据集等,  减少了每个任务的运行开销,在降低隔离级别时提高了性能。

        可以通过taskmanager.numberOfTaskSlots参数来设置slot数量,最好设置为Cpu核数,因为slot仅仅用来隔离内存,避免不同任务对cpu的竞争。

三、共享slot

        对于不同任务节点的子任务,Flink允许它们共享slot。即每个任务节点的子任务一字排开,占据不同的slot, 不同任务节点的子任务可以共享slot

        那么为什么要共享slot呢?引文不同任务节点所需资源是不同的,有些是资源密集型,有些是资源非密集型。设想这样一种情况:在不共享时,有三个任务节点:source/map(这里由于并行度一致,所以合并算子链了)、widdow、sink,其中window是资源密集型的,那么当大量数据到来时,source/map和sink都可以很快完成,但window任务耗时很久,于是下游的sink任务所占据的slot就会因为等待而闲置,而上游的source/map任务也会因为数据积压而产生背压,从而资源开始等待,这样资源的利用效率就会大大降低。

        解决这一问题的思路就是共享slot,在一个slot上同时存在资源密集型和非密集型任务,它们自由分配对资源的占用比例(即将资源密集型任务平均分配到每一个slot)从而提升资源利用率。

        默认情况下,由于同一任务节点的并行子任务不能共享slot,所以slot的数量就取决于所有算子并行度的最大值。当然,也可以通过slotSharingGroup手动指定共享slot。

四、并行度和slot的关系

        slot是静态的概念,指taskManager所拥有的并发执行能力;并行度是动态的概念,指实际运行中的并发能力。因此,并行度应当<=slot数,一旦超出也只能等待。因此,所有算子并行度中最大的那个就代表所需的slot数。

        

http://www.lryc.cn/news/512402.html

相关文章:

  • 基于西湖大学强化学习课程的笔记
  • 瀚高数据库 问题: ERROR: operator does not exist: character varying = integer
  • 冷链温度记录仪蓝牙应用案例
  • LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)
  • 深入理解Redis:从理论到实践的Java之旅
  • LabVIEW故障诊断中的无故障数据怎么办
  • 基于DIODES AP43781+PI3USB31531+PI3DPX1207C的USB-C PD Video 之全功能显示器连接端口方案
  • MySQL配置my.ini文件
  • JVM常见排查问题的命令及可视化工具
  • 【python】matplotlib(moon cake)
  • Pytorch使用手册-空间变换网络指南(专题十五)
  • Vue 中el-table-column 进行循环,页面没渲染成功
  • 基于单片机的温湿度采集系统(论文+源码)
  • 使用envoyfilter添加请求头
  • kafka开机自启失败问题处理
  • 优化站群SEO:使用苹果CMS泛目录插件实现泛目录页面刷新不变
  • git clone 和 conda 换源
  • 人工智能及深度学习的一些题目(二)
  • 怎么在VMware Workstation上安装Win11虚拟机?
  • 协程原理 函数栈 有栈协程
  • SpringBoot整合springmvc、扩展springmvc
  • 免费部署本地AI大语言模型聊天系统:Chatbox AI + 马斯克grok2.0大模型(简单5步实现,免费且比GPT4.0更好用)
  • 音视频入门基础:MPEG2-TS专题(22)——FFmpeg源码中,获取TS流的音频信息的实现
  • 从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用
  • 修改表字段属性,SQL总结
  • go-xorm连接
  • Excel 面试 04 查找函数 XLOOKUP
  • Flannel和Calico之对比(Comparison between Flannel and Calico)
  • Spring Boot + Redisson 封装分布式锁
  • QWEN2 模型架构配置;GGUF的概念:实现量化存储