Dominant Resource Fairness 是Mesos默認的資源分配策略
DRF基於“最大—最小”算法設計而成,支持異構環境下多種類型資源的調度。
以公平的方式提供資源,保證每個計算框架可以接受到該框架需要的資源。
Mesos將資源划分為:
* cpus
* gpus
* disk
* mem
* ports
不同的 task 對不同類型的資源有需求,mesos 會根據每一個 task 的需求占集群總資源的比率,為每一個 task 選取一個主導資源,並且計算這個主導資源在集群中所占用的比率,用這個比率給 task 進行優先級排序。每一次新的分配,都會優先選擇把資源給當前所占比率最低的那個 task。
比如現在集群一共有 10 cpus & 20 G mem。
task A 的需求為 4 cpu & 1 mem;
task b 的需求為 1 cpu & 4 mem;
所以我們可以看出 A 的主導資源是 cpu,B 的主導資源是 mem。
假設 A 和 B 都有一份正在運行,那么 A 的比率為 4/10=0.25,B 的比率為 4/20=0.2,下一次資源分配,就會優先滿足 task B。
Dominant Resource Fairness