[发明专利]一种多用户多队列调度方法有效
申请号: | 201410302274.6 | 申请日: | 2014-06-27 |
公开(公告)号: | CN104079502B | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 刘欣然;沈时军;朱春鸽 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心 |
主分类号: | H04L12/865 | 分类号: | H04L12/865 |
代理公司: | 北京安博达知识产权代理有限公司11271 | 代理人: | 徐国文 |
地址: | 100193*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多用户 队列 调度 方法 | ||
技术领域
本发明涉及一种调度方法,具体涉及一种多用户多队列调度方法。
背景技术
目前云计算或分布式计算领域中使用最广泛的是Hadoop中的三类调度算法:先入先出算法FIFO(First In First Out)、公平份额调度算法(Fair Scheduler)和计算能力调度算法(Capacity Scheduler)。
1)FIFO算法的主要思想是:所有用户的作业都被提交到一个队列中,作业按照优先级高低、提交时间先后进行排序;若作业的优先级不同,优先级较高的作业总是优先执行;若作业的优先级相同,提交时间较早的作业总是优先执行。该方法具有如下的缺点:1)无法避免用户间的调度抢占。若某用户提交了大量的作业,则该用户可以得到更多的调度时间;2)无法照顾低优先级作业的调度。在高优先级的作业存在时,低优先级的作业将一直得不到调度。
2)公平份额调度算法(Fair Scheduler)的主要思想是:为每一个用户建立一个作业队列,并为每个队列分配额定的调度时间,在每个队列内部按照上述FIFO的算法进行调度。该方法具有如下的缺点:无法保证优先级高的作业被调度的机率更高。由于用户被分配的调度时间是确定的,当某用户提交的作业较少时,其低优先级的作业可能比其它用户的高优先级的作业更容易被调度。
3)计算能力调度算法(Capacity Scheduler)的主要思想是:建立多个作业队列,并为每个队列分配一定的调度时间;在调度时,总是优先选择实际调度时间与预期相差最大的作业队列;在每个队列内部按照上述FIFO的算法进行调度。该方法具有如下的缺点:由于每个作业队列的调度时间是额定的,当不同队列的作业数量差别较大时,存在优先级低的作业被优先调度的情况。
发明内容
为了克服上述现有技术的不足,本发明提供一种多用户多队列调度方法,在任何调度场景下,它既可以避免用户间的调度抢占,又能在兼顾作业优先级的前提下,保证低优先级作业一定的调度机率。
为了实现上述发明目的,本发明采取如下技术方案:
本发明提供一种多用户多队列调度方法,所述方法具体包括以下步骤:
步骤1:建立多用户多队列调度模型;
步骤2:调度服务器接收用户提交的作业,并对作业进行缓存;
步骤3:调度服务器对作业进行周期性循环调度,并将作业下发给资源对应的服务器。
所述步骤1中,多用户多队列调度模型如下:
定义资源集合Φ={ri|i=1,2,…,n},其中ri表示资源集合中第i个资源,n表示资源集合中资源总数;作业集合Ψ={tj|j=1,2,…,m},其中tj表示作业集合中第j个作业,m表示作业集合中作业总数;函数U(tj)表示作业tj所属的用户,函数K(tj)表示作业tj的优先级;作业队列Ψu,k={tj|U(tj)}=u^K(tj)=k}表示所属用户为u、优先级为k的所有作业的集合,其中u∈(1,υ),k∈(1,κ),υ为用户总数,κ为最高优先级;定义wu,k表示作业集合Ψu,k上一次被调度的时间,pk为优先级为k的作业的被调度概率,且有
所述步骤2包括以下步骤:
步骤2-1:当调度服务器接收到用户提交的作业时,根据U(tj)、K(tj)查找作业tj对应的作业队列Ψu,k;
步骤2-2:当Ψu,k尚未创建,则创建该作业队列,并设置wu,k=0;
步骤2-3:将作业tj按照先入先出顺序放入作业队列Ψu,k。
所述步骤3包括以下步骤:
步骤3-1:记录当前时间w;
步骤3-2:计算每个非空的作业队列Ψu,k的调度权重fu,k=(w-wu,k)pk,并选出fu,k最大的作业队列Ψ′u,k;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410302274.6/2.html,转载请声明来源钻瓜专利网。