CN104079502A - 一种多用户多队列调度方法 - Google Patents
一种多用户多队列调度方法 Download PDFInfo
- Publication number
- CN104079502A CN104079502A CN201410302274.6A CN201410302274A CN104079502A CN 104079502 A CN104079502 A CN 104079502A CN 201410302274 A CN201410302274 A CN 201410302274A CN 104079502 A CN104079502 A CN 104079502A
- Authority
- CN
- China
- Prior art keywords
- user
- scheduling
- resource
- queue
- job queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000006870 function Effects 0.000 claims description 6
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种多用户多队列调度方法,具体包括以下步骤:建立多用户多队列调度模型;调度服务器接收用户提交的作业,并对作业进行缓存;调度服务器对作业进行周期性循环调度,并将作业下发给资源对应的服务器。本发明提供一种多用户多队列调度方法,在任何调度场景下,它既可以避免用户间的调度抢占,又能在兼顾作业优先级的前提下,保证低优先级作业一定的调度机率。
Description
技术领域
本发明涉及一种调度方法,具体涉及一种多用户多队列调度方法。
背景技术
目前云计算或分布式计算领域中使用最广泛的是Hadoop中的三类调度算法:先入先出算法FIFO(First In First Out)、公平份额调度算法(Fair Scheduler)和计算能力调度算法(CapacityScheduler)。
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;
步骤3-3:按照先入先出顺序从Ψ′u,k中取出作业t′j,并在资源集合Φ中找到满足t′j条件的资源ri,将t′j下发到资源ri对应的服务器上运行;
步骤3-4:更新Ψ′u,k的上一次被调度时间,使更新后的时间w′u,k等于w;
步骤3-5:检查每个为空的作业队列Ψu,k,若wu,k<w-w0,将Ψu,k删除,其中w0为调度最大记忆时间。
与现有技术相比,本发明的有益效果在于:
1.本发明提供的多用户多队列调度方法,可以在多用户、多优先级的作业调度环境中,使得:(1)若作业的优先级不同,优先级高的作业被调度的机率更高;(2)若作业的优先级相同,不同用户的作业被调度的机率与用户提交的作业数量无关;
2.该方法为每一个用户的每一个优先级的作业建立一个独立的作业队列,并在作业调度时,根据作业队列的优先级、上一次被调度的时间选择需要调度的作业队列
3.与目前广泛使用的Hadoop中公平份额调度算法(Fair Scheduler)与计算能力调度算法(Capacity Scheduler)调度方法相比,该方法可以保证在任何调度场景下的公平性。
附图说明
图1是本发明实施例中作业接收和缓存流程图;
图2是本发明实施例中作业调度与下发流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明提供一种多用户多队列调度方法,所述方法具体包括以下步骤:
步骤1:建立多用户多队列调度模型;
所述步骤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:调度服务器接收用户提交的作业,并对作业进行缓存;
如图1,所述步骤2包括以下步骤:
步骤2-1:当调度服务器接收到用户提交的作业时,根据U(tj)、K(tj)查找作业tj对应的作业队列Ψu,k;
步骤2-2:当Ψu,k尚未创建,则创建该作业队列,并设置wu,k=0;
步骤2-3:将作业tj按照先入先出顺序放入作业队列Ψu,k。
步骤3:调度服务器对作业进行周期性循环调度,并将作业下发给资源对应的服务器。
所述步骤3包括以下步骤:
如图2,步骤3-1:记录当前时间w;
步骤3-2:计算每个非空的作业队列Ψu,k的调度权重fu,k=(w-wu,k)pk,并选出fu,k最大的作业队列Ψ′u,k;
步骤3-3:按照先入先出顺序从Ψ′u,k中取出作业t′j,并在资源集合Φ中找到满足t′j条件的资源ri,将t′j下发到资源ri对应的服务器上运行;
步骤3-4:更新Ψ′u,k的上一次被调度时间,使更新后的时间w′u,k等于w;
步骤3-5:检查每个为空的作业队列Ψu,k,若wu,k<w-w0,将Ψu,k删除,其中w0为调度最大记忆时间。
实施例
在实施例中用到的数据结构伪码为:
/*资源的数据结构*/
struct resource{
int rid;//资源ID
/*other attributes*/
};
/*作业的数据结构*/
struct task{
int tid;//作业ID
string user;//作业所属用户
int k;//作业优先级
/*other attributes*/
};
/*作业队列的数据结构*/
struct queue{
string user;//作业队列所属的用户
int k;//作业队列的优先级
int last_sch_time;//上一次被调度时间
float sch_weight;//调度权重
/*other attributes*/
};
设优先级为1-5,其中1最低、5最高。初始化不同优先级作业的调度概率float pri[5],pri[1]=0.03,pri[2]=0.07,pri[3]=0.15,pri[4]=0.25,pri[5]=0.5。
初始化调度最大记忆时间sch_max_record_time=600秒。
一种公平的多用户多队列调度方法,在收到作业时触发“作业接收与缓存过程”,包含如下步骤:
在步骤10,当收到作业task时,在作业队列集合中查找对应的作业队列queue,要求queue.user==task.user&&queue.k==task.k。
在步骤20,若未找到这样的作业队列,创建该作业队列,记为queue,并初始化queue.user=task.user,queue.k=task.k,queue.last_sch_time=0。
在步骤30,若找到这样的作业队列,记为queue。
在步骤40,将task按照FIFO的顺序,放入queue的队尾。
本发明提供一种公平的多用户多队列调度方法,每隔0.01秒调用“作业调度与下发过程”,包含如下步骤:
在步骤100,记录当前时间now。
在步骤110,遍历每一个作业队列queue,若queue为空则直接忽略,否则计算queue的调度权重,即queue.sch_weight=(now–queue.last_sch_time)*pri[queue.k]。
在步骤120,选出queue.sch_weight最大的作业队列,记为sch_queue。
在步骤130,按照FIFO顺序从sch_queue中取出第一个作业,记为sch_task。
在步骤130,在资源集合中找到满足sch_task条件的资源sch_resource。
在步骤140,将sch_task下发到sch_resource上运行。
在步骤150,更新sch_queue的上一次被调度时间sch_queue.last_sch_time=now。
在步骤160,检查每一个作业队列queue,若queue为空,且queue.last_sch_time<now–sch_max_record_time,则将queue删除。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。
Claims (4)
1.一种多用户多队列调度方法,其特征在于:所述方法具体包括以下步骤:
步骤1:建立多用户多队列调度模型;
步骤2:调度服务器接收用户提交的作业,并对作业进行缓存;
步骤3:调度服务器对作业进行周期性循环调度,并将作业下发给资源对应的服务器。
2.根据权利要求1所述的多用户多队列调度方法,其特征在于:所述步骤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的作业的被调度概率,且有
3.根据权利要求2所述的多用户多队列调度方法,其特征在于:所述步骤2包括以下步骤:
步骤2-1:当调度服务器接收到用户提交的作业时,根据U(tj)、K(tj)查找作业tj对应的作业队列Ψu,k;
步骤2-2:当Ψu,k尚未创建,则创建该作业队列,并设置wu,k=0;
步骤2-3:将作业tj按照先入先出顺序放入作业队列Ψu,k。
4.根据权利要求3所述的多用户多队列调度方法,其特征在于:所述步骤3包括以下步骤:
步骤3-1:记录当前时间w;
步骤3-2:计算每个非空的作业队列Ψu,k的调度权重fu,k=(w-wu,k)pk,并选出fu,k最大的作业队列Ψ′u,k;
步骤3-3:按照先入先出顺序从Ψ′u,k中取出作业t′j,并在资源集合Φ中找到满足t′j条件的资源ri,将t′j下发到资源ri对应的服务器上运行;
步骤3-4:更新Ψ′u,k的上一次被调度时间,使更新后的时间w′u,k等于w;
步骤3-5:检查每个为空的作业队列Ψu,k,若wu,k<w-w0,将Ψu,k删除,其中w0为调度最大记忆时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302274.6A CN104079502B (zh) | 2014-06-27 | 2014-06-27 | 一种多用户多队列调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302274.6A CN104079502B (zh) | 2014-06-27 | 2014-06-27 | 一种多用户多队列调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104079502A true CN104079502A (zh) | 2014-10-01 |
CN104079502B CN104079502B (zh) | 2017-05-10 |
Family
ID=51600554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410302274.6A Expired - Fee Related CN104079502B (zh) | 2014-06-27 | 2014-06-27 | 一种多用户多队列调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104079502B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573829A (zh) * | 2016-02-02 | 2016-05-11 | 沈文策 | 一种快速处理***中高流量数据的方法 |
CN106326003A (zh) * | 2016-08-11 | 2017-01-11 | 中国科学院重庆绿色智能技术研究院 | 一种作业调度和计算资源分配方法 |
CN106528295A (zh) * | 2016-11-07 | 2017-03-22 | 广州华多网络科技有限公司 | ***任务调度方法及装置 |
CN110175073A (zh) * | 2019-05-31 | 2019-08-27 | 杭州数梦工场科技有限公司 | 数据交换作业的调度方法、发送方法、装置及相关设备 |
WO2020134425A1 (zh) * | 2018-12-24 | 2020-07-02 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111950832A (zh) * | 2019-05-17 | 2020-11-17 | 拉扎斯网络科技(上海)有限公司 | 调度方法、装置、服务器、服务器集群和存储介质 |
US10976956B2 (en) | 2016-09-30 | 2021-04-13 | Huawei Technologies Co., Ltd. | Non-volatile memory persistence method and computing device |
CN113132265A (zh) * | 2021-04-16 | 2021-07-16 | 武汉光迅信息技术有限公司 | 一种多路以太网的多级调度方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324525A (zh) * | 2013-07-03 | 2013-09-25 | 东南大学 | 一种云计算环境下的任务调度方法 |
-
2014
- 2014-06-27 CN CN201410302274.6A patent/CN104079502B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324525A (zh) * | 2013-07-03 | 2013-09-25 | 东南大学 | 一种云计算环境下的任务调度方法 |
Non-Patent Citations (3)
Title |
---|
朱春鸽 等: "虚拟计算环境下面向应用的基于信任的资源匹配模型", 《通信学报》 * |
沈时军 等: "云计算中的服务可用性保障机制", 《通信学报》 * |
王凯: "MapReduce 集群多用户作业调度方法的研究与实现", 《国防科技大学硕士学位论文》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573829A (zh) * | 2016-02-02 | 2016-05-11 | 沈文策 | 一种快速处理***中高流量数据的方法 |
CN106326003A (zh) * | 2016-08-11 | 2017-01-11 | 中国科学院重庆绿色智能技术研究院 | 一种作业调度和计算资源分配方法 |
US10976956B2 (en) | 2016-09-30 | 2021-04-13 | Huawei Technologies Co., Ltd. | Non-volatile memory persistence method and computing device |
CN106528295A (zh) * | 2016-11-07 | 2017-03-22 | 广州华多网络科技有限公司 | ***任务调度方法及装置 |
WO2020134425A1 (zh) * | 2018-12-24 | 2020-07-02 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN111950832A (zh) * | 2019-05-17 | 2020-11-17 | 拉扎斯网络科技(上海)有限公司 | 调度方法、装置、服务器、服务器集群和存储介质 |
CN110175073A (zh) * | 2019-05-31 | 2019-08-27 | 杭州数梦工场科技有限公司 | 数据交换作业的调度方法、发送方法、装置及相关设备 |
CN110175073B (zh) * | 2019-05-31 | 2022-05-31 | 杭州数梦工场科技有限公司 | 数据交换作业的调度方法、发送方法、装置及相关设备 |
CN113132265A (zh) * | 2021-04-16 | 2021-07-16 | 武汉光迅信息技术有限公司 | 一种多路以太网的多级调度方法和装置 |
CN113132265B (zh) * | 2021-04-16 | 2022-05-10 | 武汉光迅信息技术有限公司 | 一种多路以太网的多级调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104079502B (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104079502A (zh) | 一种多用户多队列调度方法 | |
CN110275758B (zh) | 一种虚拟网络功能智能迁移方法 | |
TWI510030B (zh) | 用於在客戶端裝置上利用封包服務分類執行封包佇列的系統及方法 | |
CN101557348B (zh) | 一种基于令牌桶的报文转发方法及装置 | |
WO2019179250A1 (zh) | 调度方法、调度器、存储介质及*** | |
CN108762896A (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
CN102170396A (zh) | 一种基于区分服务的云存储***QoS控制方法 | |
CN104168318A (zh) | 一种资源服务***及其资源分配方法 | |
CN107431667A (zh) | 在网络设备中调度数据包 | |
CN103294548A (zh) | 一种基于分布式文件***的io请求调度方法和*** | |
CN115421901A (zh) | 一种面向算力网络的优先感知任务调度方法和*** | |
CN103428883A (zh) | 一种物理下行控制信道资源的调度方法和设备 | |
CN101374109B (zh) | 一种报文调度方法和调度装置 | |
Kettimuthu et al. | An elegant sufficiency: load-aware differentiated scheduling of data transfers | |
CN104360902A (zh) | 一种基于滑动窗口的多优先级元数据任务调度方法 | |
Li et al. | Task scheduling algorithm for heterogeneous real-time systems based on deadline constraints | |
US8797868B2 (en) | Energy-efficient network device with coordinated scheduling and rate control using non-zero base power | |
CN111782627A (zh) | 面向广域高性能计算环境的任务与数据协同调度方法 | |
WO2022002247A1 (zh) | 资源调度方法、电子设备及存储介质 | |
CN109976873A (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
Kumar et al. | Two-Level Priority Task Scheduling Algorithm for Real-Time IoT Based Storage Condition Assessment System | |
Patil et al. | Review on a comparative study of various task scheduling algorithm in cloud computing environment | |
Heidarpour et al. | DeepWFFS: Enhancing Fog Computing Efficiency Through Multi-Queue Architecture and Intelligent Controller for Task Prioritization | |
George et al. | Greatest Weight Based Packet Scheduling for Retransmission and Packet Drop | |
Kadhim | TIME TO DEATH-BASED SCHEDULING FOR INTERNET OF THINGS IN FOG COMPUTING |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170510 |