# 公平调度（DRF）
DRF（Dominant Resource Fairness）是主资源公平调度策略，应用于大批量提交AI训练和大数据作业的场景，可增强集群业务的吞吐量，整体缩短业务执行时间，提高训练性能。
#### 前提条件
- 已创建v1.19及以上版本的集群，详情请参见[购买Standard/Turbo集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0028.html)。
- 已安装Volcano插件，详情请参见[Volcano调度器](https://support.huaweicloud.com/usermanual-cce/cce_10_0193.html)。
 
#### 公平调度介绍
在实际业务中，经常会遇到将集群稀缺资源分配给多个用户的情况，每个用户获得资源的权利都相同，但是需求数却可能不同，如何公平地将资源分配给每个用户是一项非常有意义的事情。调度层面有一种常用的方法为最大最小化公平分配算法（max-min fairness share），尽量满足用户中的最小的需求，然后将剩余的资源公平分配给剩下的用户。形式化定义如下：
1. 资源分配以需求递增的方式进行分配
2. 每个用户获得的资源不超过其需求
3. 未得到满足的用户等价平分剩下的资源
 
max-min fairness算法的最大问题是认为资源是单一的，但是现实情况中资源却不是单一的，例如CPU、Memory、GPU等资源在分配时都需要考虑。这个时候DRF应运而生，简单来说DRF就是 max-min fairness 算法的泛化版本，可以支持多种类型资源的公平分配， 即每个用户的主资源满足 max-min fairness 要求。
每个Job资源的Share值计算如下：
**Share = Total Request / Cluster Resources**
当Job具有多个资源时，将Share值最大的资源作为主资源，在进行优先级调度时，仅根据主资源的Share值进行优先级调度。
例如，Job 1和Job 2分别为两个工作负载，其请求的资源量如图所示， 通过DRF计算之后，Job 1的主资源为Memory，对应的Share值为0.4，Job 2的主资源为CPU，对应的Share值为0.5，根据Share值对比，Job 1的资源请求量小于Job 2，按照最大最小公平算法分配策略，Job 1的优先级高于Job 2。
图1DRF调度示意图   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001672665778.png "点击放大")
#### 配置公平调度策略
安装Volcano后，您可通过"配置中心 \> 调度配置"选择开启或关闭DRF调度能力，默认开启。
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"配置中心"，在右侧选择"调度配置"页签。
3. 在"AI任务性能增强调度"配置中，选择是否开启"公平调度 (drf) "。 
   启用该能力后，可增强集群业务的吞吐量，提高业务运行性能。
   
   
4. 修改完成后，单击"确认配置"。
 
