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

embedded/2024/12/26 11:10:58/

一、任务槽(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.ppmy.cn/embedded/148876.html

相关文章

w118共享汽车管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

LightGBM分类算法在医疗数据挖掘中的深度探索与应用创新(上)

一、引言 1.1 医疗数据挖掘的重要性与挑战 在当今数字化医疗时代,医疗数据呈爆炸式增长,这些数据蕴含着丰富的信息,对医疗决策具有极为重要的意义。通过对医疗数据的深入挖掘,可以发现潜在的疾病模式、治疗效果关联以及患者的健康风险因素,从而为精准医疗、个性化治疗方…

Elasticsearch 国产化替代方案之一 Easysearch 的介绍与部署指南

一、前言 在国内数字化转型浪潮和 信创 大背景下&#xff0c;“替代进口”成为许多企业级应用所需要面对的重要课题&#xff0c;搜索领域也不例外。 Elasticsearch&#xff08;简称 ES&#xff09;作为一款业界领先的全文搜索和分析引擎&#xff0c;虽然功能强大&#xff0c;但…

[实战]Docker应用自动重启

场景 Java应用&#xff0c;在凌晨定时任开始时运行一段时间后&#xff0c;会自动重启&#xff0c;导致定时任务失败。该应用使用Docker部署 分析 Docker应用运行一段时间自动重启可能的原因为容器分配的资源&#xff08;如CPU、内存&#xff09;不足&#xff0c;系统可能会杀…

【uni-app】2025最新uni-app一键登录保姆级教程(包含前后端获取手机号方法)(超强避坑指南)

前言&#xff1a; 最近在配置uni-app一键登录时遇到了不少坑&#xff0c;uni-app的配套文档较为混乱&#xff0c;并且有部分更新的内容也没有及时更改在文档上&#xff0c;导致部分开发者跟着uni-app配套文档踩坑&#xff01;而目前市面上的文章质量也层次不齐&#xff0c;有的…

C语言的复习

一、函数 为了不重复写同一段代码&#xff0c;所以需要封装成函数&#xff0c;每次调用时只需要写函数名。 #include<stdio.h> void fun() {int sum 0;for(int i 0; i < 100;i){sum i;} } int main() {fun();return 0; } 1.1 函数的作用&#xff1a; 可以实现某…

【计算机视觉CV-图像分类】06 - VGGNet的鲜花分类实现:从数据预处理到模型优化的完整实战!

目录 引言 VGGNet概述 VGGNet的网络架构 基于预训练VGGNet的五类鲜花分类实现 4.1 数据准备与预处理 4.2 模型实例化与参数调整 4.3 模型训练与保存最优模型 4.4 模型导入与预测 4.5 训练过程的可视化 模型优化与防止过拟合 总结与展望 参考文献 引言 在计算机视觉…

Scratch教学作品 | 鲁道夫与雪人——温馨圣诞动画,享受节日魔法! ✨

今天为大家推荐一款充满圣诞氛围的Scratch动画作品——《鲁道夫与雪人》&#xff01;由SumitraKan制作&#xff0c;这款作品以轻松愉快的节日旋律和童趣动画&#xff0c;为你呈现一个温馨的圣诞世界。跟着鲁道夫和雪人一起踏上奇妙的节日旅程吧&#xff01;✨ 更棒的是&#xf…