文档章节

DRF资源分配算法

纳兰清风
 纳兰清风
发布于 2017/07/25 19:28
字数 589
阅读 141
收藏 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
博文 35
码字总数 34337
作品 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
Max-min Fair 和 Dominant Resource Fairness 资源分配策略

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

searchworld
2017/11/30
0
0
Mesos资源调度器的实现分析

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

谈吐鱼
2013/12/18
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

没有更多内容

加载失败,请刷新页面

加载更多

Supplier函数式接口

Supplier接口的不传入参数,返回一个值。真是一个无私奉献的接口,还没有default方法。 下面就想用一个接口试试,其实我本来用的是IntSupplier,但是发现在使用方法引用的时候,不好把Math....

woshixin
12分钟前
0
0
MyBaties一级缓存

一、一级缓存简介 在系统代码的运行中,我们可能会在一个数据库会话中,执行多次查询条件完全相同的Sql,鉴于日常应用的大部分场景都是读多写少,这重复的查询会带来一定的网络开销,同时sel...

嘴角轻扬30
19分钟前
0
0
jquery

语法 描述 实例 $("*") 选取所有元素 在线实例 $(this) 选取当前 HTML 元素 在线实例 $("p.intro") 选取 class 为 intro 的 <p> 元素 在线实例 $("p:first") 选取第一个 <p> 元素 在线实例 ...

mskk
24分钟前
1
0
微信红包设计方案

前言 微信红包一经推出,春节期间微信用户红包总发送量达80.8亿,红包峰值40.9w/秒,在如此量级下,系统设计存在各种变数,稍有闪失会功亏一篑。 红包系统 红包系统有三部分组成:信息流,业...

春哥大魔王的博客
34分钟前
1
0
微信开发-正式号的配置

1、设置相关 业务域名的设置(不设置的话,相关页面会显示防欺诈盗号信息提示) JS接口安全域名设置 网页授权域名设置 注意:以上三个设置中都有下载文件的提示,此文件内容一样,下载一个即可...

Code辉
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部