集群调度器中的调度算法
- 贪心调度:分成两个步骤,(1)过滤:根据用户的需求过滤掉一部分的节点。(2)优选:对过滤后的节点进行打分,选择分数最大的节点。
这种调度方式对于一个作业来说是最优解,但是对于对于整体来说一般不是最优解。
典型使用这种算法的调度有:k8s、openstack 中的nova调度器 - 公平性调度:
min-max fair:考虑用户集合1, …, n分别有资源需求x1, x2, …, xn.不失一般性,令资源需求满足x1 <= x2 <= … <= xn.令服务器具有能力C.那么,我们初始把C/n资源给需求最小的用户.这可能会超过用户1的需求,继续处理.该过程结束时,每个用户得到的没有比自己要求更多,而且,如果其需求得不到满足,得到的资源也不会比其他用户得到的最多的资源还少.我们之所以称之为最大最小公平分配是因为我们最大化了资源得不到满足的用户最小分配的资源.
Domain Resource Fair:min-max fair的进化版本,户被分配的资源中占比总资源比重最大的资源就是 Dominant Resource。调度算法可以写为:x,y表示两种作业可以执行的数目,3,4这里分别代表x,y对ram和cpu资源的敏感数量。