DRF资源分配算法
DRF资源分配算法
纳兰清风 发表于6个月前
DRF资源分配算法
  • 发表于 6个月前
  • 阅读 24
  • 收藏 0
  • 点赞 1
  • 评论 2

标题:腾讯云 新注册用户域名抢购1元起>>>   

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,可以看到最后资源的使用情况和分配结果和书上是一样的,也就是说第一次调度优先调度谁对结果没有影响。

共有 人打赏支持
粉丝 25
博文 28
码字总数 22655
评论 (2)
如梦似幻梦幻泡影
经常更新点
纳兰清风

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

经常更新点

@如梦似幻梦幻泡影 ……
×
纳兰清风
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: