资源调度|学习笔记

简介: 快速学习资源调度

开发者学堂课程【分布式系统开发调度技术资源调度笔记与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/367/detail/4369


资源调度


内容介绍:

一、最大化集群资源利用率    

二、最小化任务的等待时间    

三、能支持资源的配额    

四、能支持任务抢占


一、最大化集群资源利用率    

资源调度的本质问题是当有一批任务排队时,如何将现有的资源,包括 CPU,memory,磁盘和网络等综合考虑之后分配给某一个 Job。对于这个问题:

1.最大化集群资源利用率,不能出现每个机器的繁忙程度不均衡的情况

2.最小化任务的等待时间,在集群环境下,通常是多个业务部门共享集群。不能出现某些业务部门的任务一直在运行,而另外其他业务部门的任务一直处于等待状态

3.能支持资源的配额,因为在共享集群,要保证各个业务部门之间的资源利用率是比较均衡的。

4.能支持任务抢占

以下以飞天伏羲在这几个方面是如何做到的。在飞天伏羲系统中,参与资源调度的角色有中控节点 FuxiMaster,以及驻留进程 Tubo,以及发起资源请求的AppMaster。


二、最小化任务的等待时间    

1.策略之优先级(Priority)

在在套系统当中,每一个提交上的作业,都会带上一个标签来表明这个作业的优先级,是一个整数值,每一个 Job 有一个 priority 值,值越小,表示优先级越高越靠前。

如下图,横轴是五个Job排好序,而纵轴代表它们的优先级,最左边优先级最低的Job 排在最前面。FuxiMaster 作为资源调度系统,当有了一个空闲资源之后,如何选择在 Job 之间进行调度,准则是优先满足优先级最高的 Job,若有空闲资源之后,依次满足次优先级最高的 Job,是一个递归的过程,按照优先级的顺序依次进行满足。

image.png

但在实际中会出现当一个系统处于运行状态时,有临时性的更高优先级的作业加入的情况,如下图中间插入了一个优先级相对第三的 Job,伏羲的做法是首先抢优先级最低的,即图中最靠右的 Job,抢它的资源会 cancel 正在运行 instance,将资源匀给高优先级插入的作业,如还未满足,继续抢倒数第二个优先级 Job 的作业,直到优先级更高的插入这个作业,它的资源全部满足,整个抢占也是递归的过程,在实现时如何做到高效是一个工程的细节。FuxiMaster 可以做到毫秒级别的完成调度。

image.png


三、能支持资源的配额    

策略之公平调度

如图,实际上是考虑优先级分组的概念,相同优先级的作业如何进行调度,按照启动时间或者提交时间来决定优先级,先到先得当有空闲资源的时候,先分给第一批优先级的作业,如果还有剩余资源,继续分给第二优先级的作业,直到最后资源被分配完。

image.png


四、能支持任务抢占

策略之配额(Quota)

由于是多个业务部门或者多个团队在共享一个物理集群。每个组可能对这个资源进行付费,不同付费的团队或业务部门如何保证资源是可用,所以每个组会分配一个quota,即资源配额。

如下图,横轴是不同的组,每个组的柱状图的高度不一样,意味着每个组能使用的最大资源不一样。

这样 FuxiMaster 在调度时,给这个组所有的 job 分配的资源总和不会超过这个组的配合高度,如图中的第四组的使用的规定可能白天没有计算任务,晚上是使用高峰,则在白天时,上面一段配合资源处于空闲状态。

作为资源调度系统,优化目标是要最大化集群的资源利用度,所以这段空闲资源如何充分的利用。

FuxiMaster 飞天系统在调度时会动态的进行Quota的调节,以实现削峰填谷最大化利用集群的物理资源,所以空闲资源,会按照一定的比例将它分发给其他比较紧张的组,第四组的空闲资源不按照其他三组的付费的比例分摊给一号,二号,三号组,一号,二号,三号组柱状图的顶峰会变大,意味着这片资源可以被一号,二号,三号利用起来,这就是削峰填谷的过程。

若第四组有任务时,资源是否会不够,确实是这样,如到了晚上第四组的资源请求量即底下蓝色的部分会变大,此时 FuxiMaster 接收到资源请求之后知道第四组请求变大,此时会让一号,二号,三号组取消一些作业,收回资源,归还给第四组,从而保证第四组的资源的使用情况,因为它花了更多的钱来买配合情况。

第四组买Quota时,是否存在不公平性,因为买了很多的资源,但实际白天不使用时,实际上给了1号,2号,3号组,所以在做 Quota 调节时,会将黄色可以共享资源定价会便宜,蓝色最低保障的资源售价会更贵,通过这种策略,来平衡不同的组之间的 Quota 购买情况,而一号,二号,三号在使用资源之后,也会对其进行计费,是所使用的资源×时间,如果出现一号,二号,三号,抢占了第四组的配额,也无碍,因为在使用过程中会产生账单。

这就是资源调度系统在做配额管理时要考虑的规则的平衡性。

image.png

相关文章
|
资源调度 Kubernetes Cloud Native
资源调度的最佳实践|学习笔记
快速学习资源调度的最佳实践
670 0
资源调度的最佳实践|学习笔记
|
资源调度 分布式计算 安全
伏羲—阿里云分布式调度系统
在12月12日的云栖社区在线培训上,“飞天”分布式系统核心开发人员陶阳宇分享了《伏羲-阿里云分布式调度系统》。他主要从伏羲系统架构、任务调度、资源调度、容错机制、规模挑战、安全与性能隔离方面介绍了伏羲分布式系统架构和设计理念。
22108 0
|
6月前
|
分布式计算 资源调度 监控
分布式资源管理和调度架构
分布式资源管理和调度架构
|
人工智能 资源调度 Kubernetes
Koordinator 异构资源/任务调度实践
Koordinator 异构资源/任务调度实践
15463 10
|
Kubernetes Cloud Native 应用服务中间件
Koordinator 最佳实践系列:精细化 CPU 编排
Koordinator 最佳实践系列:精细化 CPU 编排
|
存储 资源调度 Kubernetes
Kubernetes 调度和资源管理 | 学习笔记
快速学习 Kubernetes 调度和资源管理
Kubernetes 调度和资源管理 | 学习笔记
|
资源调度 分布式计算 并行计算
分布式调度系统现状|学习笔记
快速学习分布式调度系统现状
分布式调度系统现状|学习笔记
|
消息中间件 SQL 监控
从 0 到 1 搭建大数据平台之调度系统
从 0 到 1 搭建大数据平台之调度系统
873 0
|
存储 资源调度 运维
灵活的资源调度
灵活的资源调度
211 0
|
资源调度 Kubernetes Cloud Native
从零开始入门 K8s | Kubernetes 调度和资源管理
本文简单介绍了一下调度的高级策略,在集群资源紧张的时候也能合理调度资源。
从零开始入门 K8s | Kubernetes 调度和资源管理