细粒度资源管理的背景
目的
Flink 目前采用粗粒度的资源管理方法,其中task被部署到预定义的、通常相同的slot中,而不需要每个包含多少资源的概念。使用slot共享,可以将同一slot共享组 (SSG)中的task部署到一个slot中,而不管每个task/operator需要多少资源。在FLIP-56中,我们提出了细粒度资源管理,它根据工作负载的资源需求,利用具有不同资源的slot来执行task。
对于许多job来说,使用粗粒度的资源管理并将所有task简单地放在一个 SSG 中就足够了,无论是在资源利用率还是可用性方面。
- 对于所有task都具有相同并行度的许多流式job,每个slot将包含一个完整的pipeline。理想情况下,所有pipeline应该使用大致相同的资源,这可以通过调整相同slot的资源轻松满足。
- task的资源消耗随时间而变化。当一个task的消耗减少时,额外的资源可以被另一个消耗增加的task使用。这被称为削峰填谷效应,减少了所需的整体资源。
但是,在某些情况下,粗粒度的资源管理不能很好地工作。
- task可能有不同的并行度。有时,无法避免这种不同的并行性。例如,source/sink/lookup task的并行性可能会受到外部上游/下游系统的分区和 IO 负载的限制。在这种情况下,具有较少task的slot将比具有整个task pipeline的slot需要更少的资源。
- 有时,整个pipeline所需的资源可能太多,无法放入单个slot/task管理器中。在这种情况下,pipeline需要拆分为多个 SSG,它们可能并不总是具有相同的资源需求。
- 对于批处理job,并非所有task都可以同时执行。因此,pipeline的瞬时资源需求随时间而变化。
尝试使用相同的slot执行所有task可能会导致非最佳资源利用率。相同slot位的资源必须能够满足最高资源要求,这对于其他要求将是浪费的。当涉及到 GPU 等昂贵的外部资源时,这种浪费会变得更加难以承受。
因此,需要细粒度的资源管理,利用不同资源的slot来提高这种场景下的资源利用率。
相关文章
docker 学习(一)镜像和镜像的构建Dockerfile
诞生时间:2013年 编写语言:go 目标:实现轻量级操作系统虚拟化解决方案。 基础是Linux容器(LXC)等技术。 与传统虚拟化的区别: Docker是一款针对程序开发人员和系统管理员来开发、部署...
macOS Monterey 12.5 (21G72) Boot ISO 原版可引导镜像
今日(2022-07-21)凌晨,Apple 终于发布了 macOS Monterey 12.5,包括功能增强、错误修复和安全性更新。macOS Monterey 12.5 自 2022 年 5 月 ...
Nacos 是如何同时实现AP与CP的
两种一致性策略如何在nacos中共存 或许会有疑问,为什么早先的 cp模式的 Zookeeper或者 AP模式的 Eureka,都只有支持 CAP理论下大家常用的 AP实现或者 CP实现,而nacos...
eureka服务端启动流程
现在开始看eureka服务端是怎么启动的。首先从主类上标记的注解@EnableEurekaServer开始分析,其实没啥,就是@Import导入了EurekaServerMarkerConfigura...
【数据分析师-数据分析项目案例】大数据预处理
大数据预处理 0 前言 1 数据标准化 1.1 标准化定义 1.2 为什么要进行数据标准化? 1.3 实例操作 2 数据缩放化 2.1 0-1缩放...
【论文推荐】了解《多模态处理》必看的6篇论文(附打包下载地址)
论文推荐 " SFFAI126期来自北京大学信息科学技术学院计算语言学研究所二年级博士生任抒怀 推荐的文章主要关注于 基础研究的多模态处理领域,你可以认真阅读讲者推荐的论文,来与讲者及同行线上交流哦。...
[随记]-我安装 arch linux 的记录
一、概述 二、Hive优点与使用场景 1)优点 2)使用场景 三、Hive架构 1)服务端组件 1、Driver组件 2、Metastore组件 3、Thrift服务 2)客户端组件 1、CLI 2、...
6.4向量空间模型,余弦相似度计算
提示: 信息检索:文档评分-词项权重计算-向量空间模型 第四部分:向量空间模型 文章目录 向量空间模型 * 关联矩阵 文档表示成向量 Queries表示成向量 向量相似度计算 - 欧式距离? 利用夹角...
alpakka-kafka(2)-consumer
alpakka-kafka-consumer的功能描述很简单:向kafka订阅某些topic然后把读到的消息传给akka-streams做业务处理。在kafka-consumer的实现细节上,为了达到...
Eureka快速入门篇(三)Eureka 集群
目录 一、Eureka 集群 二、本文用到的工程名列表 三、修改eurekaserver(注册中心)项目 1. 修改application.properties配置文件,如图: 2. 复制eureka...
【云原生】Hadoop HA on k8s 环境部署
一、概述 二、开始部署 1)添加 journalNode 编排 1、控制器Statefulset 2、service 2)修改配置 1、修改values.yaml 2、修改hadoop/templat...
435. Non-overlapping Intervals
435. Non-overlapping Intervals 原创 wx62ea2466cca9a2022-08-03 21:38:58博主文章分类:leetcode ©著作权 文章标签 LeetCo...
docker修改端口映射
docker修改端口 一、修改端口步骤 1、查询hash docker inspect 容器 # 查询容器信息,获取容器的hash值 2、关闭容器 docker stop 容器 3、关闭docker ...
『NLP学习笔记』Pytorch模型转onnx使用onnx runtime加速&Triton加速
Pytorch模型转onnx使用onnx runtime加速&Triton加速! 文章目录 一. ONNX简要介绍 二. 从PyTorch到ONNX的实战 * 2.1. 例子1: Alexne...
java IO流、集合类部分小知识点总结
在Java中,以下三个类经常用于处理数据流,下面介绍一下三个类的不同之处以及各自的用法。 InputStream : 是所有字节输入流的超类,一般使用它的子类:FileInputStream等,它能输...