美文网首页
Max-min Fair 和 Dominant Resource

Max-min Fair 和 Dominant Resource

作者: searchworld | 来源:发表于2017-11-30 15:47 被阅读229次

    1. Max-min Fair

    分配过程是每次先把资源平分,如果有用户分到多余的资源就拿出来继续给其他的平分,这样保证申请者都可以公平分到资源。举个例子:

    假设有10G内存,四个用户要申请的资源为:<u1, 1G> <u2, 2G> <u3, 4G> <u4, 6G>
    - 先把10G内存平分,每个用户分到2.5内存,即<u1, 2.5G> <u2, 2.5G> <u3, 2.5G> <u4, 2.5G>
    - u1只要1G,剩下的1.5G给u2 u3 u4平分,各分到0.5G,这个时候变成:<u1, 1G> <u2, 3G> <u3, 3G> <u4, 3G>
    - u2只需要2G,多出来的1G给u3 u4分,各分到0.5G,变成<u1, 1G> <u2, 2G> <u3, 3.5G> <u4, 3.5G>
    - 这个时候u3 u4都资源都不够,分配到此结束,最终结果:<u1, 1G> <u2, 2G> <u3, 3.5G> <u4, 3.5G>
    

    Max-min Fair策略的不足是只能使用于一种资源的场景,对于有多种资源的场景无能为力。参考 http://www.ece.rutgers.edu/~marsic/Teaching/CCN/minmax-fairsh.html

    2. Dominant Resource Fairness (DRF)

    DRF可以看到多资源分配的Max-min,如果将DRF应用到一种资源,那就等价于Max-min。其主要概念是Dominant Resource

     比如有CPU和内存两种资源需要分配,总共有<20, 100>(这里单位都是1,即有20单位CPU,100单位内存,分配的最小单位是1单位),假如一个用户的要申请<2,5>的资源,这个时候CPU占总量的0.1,内存占总量的0.05,因此对这个用户来说CPU就是主资源。
    

    DRF要求各个用户分配到的主资源占总量的比例相等,举个例子:

    CPU和内存资源总量为<10, 100>,3个用户资源申请量为:<u1, <1,2>> <u2, <1,20>> <u3, <4,25>>,则u1 u2 u3的主资源分别为CPU 内存 CPU,假设分配的量分别为x y z则要满足下面的条件:
    x + y + 4z <= 10
    2x + 20y + 25z <= 100
    x/10 = 20y/100 = 4z/10
    满足这个条件的最大值为x=4, y=2, z=1。如果没有用户的每次申请都是用来运行任务,则u1可以运行4个任务,u2可以运行2个,u3可以运行1个。
    

    参考 https://stackoverflow.com/questions/39347670/explanation-of-yarns-drf

    相关文章

      网友评论

          本文标题:Max-min Fair 和 Dominant Resource

          本文链接:https://www.haomeiwen.com/subject/glmvbxtx.html