文档章节

DRF资源分配算法

纳兰清风
 纳兰清风
发布于 2017/07/25 19:28
字数 589
阅读 129
收藏 0

DRF算法


最近在看yarn的一些东西,看到DRF的时候特别纠结为什么第一个选的是B,查了一些资料,尼玛全是从书上扒下来的,千篇一律,没有任何参考价值。后来从mesos的一篇文章中看到,原来第一个选谁都可以,选A选B的结果是一样的。下面记录下调度器先选择A的调度顺序和资源分配情况是怎样的。

DRF简介

DRF是一种通用的多资源的最大最小公平分配策略,其核心思想是在多环境下一个用户的资源分配应该由用户的主导份额的资源决定。主导份额的资源是在所有已经分配给用户的多种资源中,占据最大份额的一种资源。简而言之,DRF试图最大化所有用户中最小的主导份额。

上面那段话从网上扒的,前面都还好,最后一句绕口令一样的总结也是说蒙了不少人。

算法的完整表述

  1. 初始化系统所拥有的资源总量R
  2. 初始化已经分配出去的资源总量C
  3. 初始化应用的主导份额S
  4. 初始化每个应用所分配到的资源U
  5. 每次选择已经分配给应用的主导资源占这种资源总量的比例最小的那个应用
  6. 更新R,C,S,U的值

可能第五步说的有点绕,举个例子,还是拿书中的例子说把,不过这里我们先选择A进行调度:

调度顺序User A 使用的资源User A主导资源User B使用资源User B主导资源CpuRAM
A(1/9, 4/18)4/18(0,0)01/94/18
A(2/9, 8/18)8/18(0,0)02/98/18
B(2/9, 8/18)8/18(3/9, 1/18)3/95/99/18
B(2/9, 8/18)8/18(6/9, 2/18)6/98/910/18
A(3/9, 12/18)12/18(6/9, 2/18)6/99/914/18

最后是分配了3个A和2个B,可以看到最后资源的使用情况和分配结果和书上是一样的,也就是说第一次调度优先调度谁对结果没有影响。

© 著作权归作者所有

共有 人打赏支持
纳兰清风
粉丝 31
博文 34
码字总数 32526
作品 0
朝阳
程序员
加载中

评论(2)

纳兰清风
纳兰清风

引用来自“如梦似幻梦幻泡影”的评论

经常更新点

@如梦似幻梦幻泡影 ……
如梦似幻梦幻泡影
如梦似幻梦幻泡影
经常更新点
Mesos DRF算法的论文阅读

dominant resource fairness算法是Mesos的灵魂,不同于hadoop基于slot-based实现的fair scheduler和capacity scheduler,学习阅读了一下论文“Dominant Resource Fairness: Fair Allocation......

谈吐鱼
2013/12/12
0
1
Mesos资源调度器的实现分析

1 mesos DRF介绍 mesos调度器是根据DRF(dominant resource fairness)算法实现的。DRF算法背后的直观想法是在多资源类型的环境下,一个用户的资源分配应该由用户的dominant share(主导份额...

谈吐鱼
2013/12/18
0
0
Max-min Fair 和 Dominant Resource Fairness 资源分配策略

1. Max-min Fair 分配过程是每次先把资源平分,如果有用户分到多余的资源就拿出来继续给其他的平分,这样保证申请者都可以公平分到资源。举个例子: Max-min Fair策略的不足是只能使用于一种...

searchworld
2017/11/30
0
0
颠覆大数据分析之Mesos:集群调度及管理系统

正如前面“Mesos:动机”一节中所述,Mesos的主要目标就是去帮助管理不同框架(或者应用栈)间的集群资源。比如说,有一个业务需要在同一个物理集群上同时运行Hadoop,Storm及Spark。这种情况...

douxn
2015/10/26
0
0
yarn fair资源池drf调度策略作业不执行的问题调查和分析

问题背景 yarn的fair类型资源池,是企业级hadoop用户常用的资源池类型。该资源池默认的队列调度策略是fair,即分配资源时只考虑内存限制。 对一个多个团队混合使用的大集群来说,如果想要在分...

鸿初
05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

记一次winserver2003系统,https无法访问,内存占用持续增加,解决办法

先交代一下环境: win server2003系统,系统装在hyper-v虚拟机里 大概2016年底的镜像,距离今天两年左右 病症:大概9月10号左右用这个镜像还可以访问https,但是今天用这个镜像新装的系统,就...

阳阳露
23分钟前
2
0
jdbc连接orcal数据库

import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement;    ......

小橙子的曼曼
48分钟前
0
0
Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
57分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
今天
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部