CN103324525B - 一种云计算环境下的任务调度方法 - Google Patents
一种云计算环境下的任务调度方法 Download PDFInfo
- Publication number
- CN103324525B CN103324525B CN201310276020.7A CN201310276020A CN103324525B CN 103324525 B CN103324525 B CN 103324525B CN 201310276020 A CN201310276020 A CN 201310276020A CN 103324525 B CN103324525 B CN 103324525B
- Authority
- CN
- China
- Prior art keywords
- task
- index
- scheduling
- priority
- resource utilization
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种云计算环境下的任务调度方法,是基于任务优先级和任务等待时间的动态任务调度方法。本发明方法可以在优先调度高优先级任务的基础上,减少低优先级任务的等待时间,从而提高任务调度算法在云计算环境中的运行效率,提高云资源的使用效率和用户满意度。
Description
技术领域
本发明属于云计算系统中任务调度的技术领域,涉及一种云计算环境下对任务进行调度的方法。
背景技术
随着云计算技术的日趋成熟,越来越多的计算,数据存储,软件等资源,以服务的形式在网络上提供给用户使用。在云计算环境下执行软件测试,逐渐成为替代传统上代价高昂的软件测试解决方案的主要方法。在云计算环境下进行软件测试,将面临多用户,多任务的情况,如何调度这些属于不同用户的软件测试任务,使得测试资源能够得到高效的利用,成为一个关键问题。
当前云计算环境下常用的调度算法有:先入先出调度算法(FIFO),计算能力调度算法(CapacityScheduler)和公平调度算法(FairScheduler)。先入先出调度算法思想是首先按照作业的优先级的高低,再按照任务到达的时间先后,来调度任务的执行。算法思想简单明了,调度器的开销小,但忽视了不同任务的需求差异。计算能力调度器中包含多个任务队列,组织任务到队列中,每个队列可以占有一定比例的集群资源,在同一个队列的任务共享队列资源。每一个队列内部还是优先按照任务优先级,其次比较任务的到达时间来给任务分配资源。每个队列强制的分配给每个用户受限制的容量,这样保证队列中的资源不被一个任务所占用。该调度对公平性的考虑较少,因而会出现一个任务长时间占用大量测试资源,以至于其后的任务只能等待,这样就会使用户的体验较差。
Facebook提出的公平调度算法,它的目地是让所有的任务随着时间的推移,都能平均的获取近似等同的共享资源。仅仅一个任务在运行时,它将使用整个集群资源。当有其他的任务提交上来时,系统会将CPU空闲时间片赋给这些新的任务,以使得每个任务大概获取等量的执行时间。这个特性能够让小任务在合理的时间内完成的同时又不会让消耗较长时间的大任务等待过长的时间。该调度算法比较适合多用户,小任务较多的共享集群任务调度。
本文提出了一种基于任务优先级和等待时间的任务调度方法,该方法的特点在于支持高优先级的任务能够抢占资源执行的同时,又可以使得低优先级的任务不会被阻塞过长的时间,从而使得低优先级的任务也能够获得资源执行。
发明内容
技术问题:本发明提供一种可以在支持高优先级任务抢占执行的情形下,解决低优先级任务的“饿死”情况,从而减小任务运行的延迟,提高任务执行公平性的云计算环境下的任务调度方法。
技术方案:本发明的云计算环境下的任务调度方法,包括如下步骤:
1)确定任务调度的依据指标,任务调度的依据指标包括任务的资源利用率、系统资源利用率、任务的优先级指数、任务的等待指数,依据任务的等待指数和优先级指数来计算任务的调度指数;
2)按照下式计算每个任务的资源利用率R1:
其中Rt是指任务执行时实际占用的资源数,Rm是指任务执行所需要的最多资源数;
3)按照下式计算云系统的资源利用率Ce:
其中Cp是指云系统中已分配给任务执行使用的资源数;Cr是指云系统中的资源池中的资源数;
4)按照下式计算每个任务的优先级指数Pe:
Pe=(1-R1)×(1-Ce)×P,其中的R1是由步骤2)计算得到的任务的资源利用率,Ce是由步骤3)计算得到的云系统的资源利用率,P是任务的优先级;
5)按照下式计算每个任务的等待指数We:
其中Tp是指任务已等待的总时间。Te是指任务希望的执行时间;
6)按照下式计算每个任务的调度指数Tc:
7)按照步骤6)中得到的任务的调度指数,将任务从大到小进行排序,得到一个任务队列。
从以上计算过程可以看出,调度指数与优先级正相关,与任务资源利用率和云系统资源利用率负相关,并且当等待时间小于期望时间时,时间因素在调度指标中占很小的比重;当等待时间大于期望时间时,时间因素将逐渐占据很大的比重,这样就可以防止低优先级的任务等待过长的时间。当任务占用率为1时,意味着该任务已占用了其资源需求的最大值,此时不再分配资源。
有益效果:本发明与现有技术相比,具有以下优点:
本发明调度方法和现有的调度方法一样支持抢占式优先级任务调度执行;不同的是,该方法中计算调度指标时,考虑到任务的等待时间因素。根据任务的调度指数的计算过程,当任务优先级越高,资源利用率越低,等待的时间越长,任务得到调度执行的可能性越大。当高优先级的任务占用一定的资源执行后,资源利用率升高,其高优先级的优势在调度中所占的影响因素变小,而等待时间越长的任务随着等待时间的变长,调度指数逐渐增大,因此可以在一定程度上平衡了低优先级的任务和高优先级任务的调度执行。低优先级的任务在获得资源执行后,利用率升高,这样高优先级任务能够再次获得调度执行的机会。
综上可见,该方法在优先级的基础上兼顾公平的调度任务执行,从而更好的平衡低优先级和高优先级任务的调度执行。减少低优先级的用户任务响应时间,从而改善低优先级的用户体验。
附图说明
图1是本发明方法的逻辑流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细说明。
在具体的实施方式中,需要利用一些变量来保存任务执行时的信息和系统运行信息。我们将这些变量用两个结构体来记录,一个用于记录任务的信息,另一个用于记录系统运行时状态信息。简化数据结构体的伪码为:
该云计算系统中有一个如上简化的结构体SystemSource,系统中的任务单位有一个如上的简化结构体task。SystemSource结构体中的U是系统的“时间片”单位,由系统设置。task结构体中的state变量只有两种取值:一种是1,一种是0。在task结构体中的Tp变量的取值为任务已等待的时长,初始为零。系统用到的简化队列有三个,分别为run队列,wait队列,count队列。其中run队列是要运行的任务,wait队列是等待执行的任务,count队列是需要重新计算调度指数的任务队列。
基于优先级的云计算环境下的任务调度方法,包括如下步骤:
1)确定系统初始时任务调度的依据指标:初始时,每个任务的state变量默认值是0,每个任务具有默认的调度指数值Tc,即由云系统管理员指定的每个任务不同优先级参数P来调度任务的执行;
系统运行过程中,每隔一定数目的系统时间单位更新一次系统资源利用率和任务等待时间。需要重新计算任务的调度指数值的时机有两个:当任务等待时间Tp大于一定的时长(如系统时间U的倍数)时,将任务的state值置为1;当有比当前优先级更高的新任务到来时,当前的任务在执行完一定数目的系统时间单位后,将任务的state值置为1。将需要重新计算调度指数的任务插入count队列,当count队列满时,利用中断通知调度器,由调度器的计算模块,计算count队列中任务的调度系数Te的值。
2)计算每个任务的资源利用率R1:
其中Rt是指任务执行时实际占用的资源数,Rm是指任务执行所需要的最多资源数,这两个变量均由系统设置并维护该数值;
3)计算云系统的资源利用率Ce:
其中Cp是指云系统中已分配给任务执行使用的资源数;Cr是指云系统中的资源池中的资源数,这两个变量均由系统设置并维护该数值;
4)计算每个任务的优先级指数Pe:
Pe=(1-R1)×(1-Ce)×P;其中的R1是由步骤2)计算得到的任务的资源利用率;Ce是由步骤3)计算得到的云系统资源利用率,P是任务的优先级,由步骤1)确定的;
5)计算每个任务的等待指数We:
其中Tp是指任务已等待的总时间,这个变量由系统设置并维护该数值;Te是指任务希望的执行时间,这个变量由任务设置并维护该数值;
6)按照计算每个任务的调度指数Tc:
计算完成后,将任务插入run队列,同时重置任务的state值为0;超过run队列容量的任务,插入到wait队列。
7)遍历run任务队列,将任务按照从大到小次序排列。调度器选取队列首部的任务,调度执行。
实施例:
为了方便描述,我们假定有如下简化的应用实例,仅考虑等待时间对调度指数的影响:
假定有两个任务,分别为Task1,Task2。每个任务具有的信息为以下结构体中数据的值。Task{Tc;Rt;Rm;Te;P;State;Tp}。此处假定三个任务的资源占用率也是不变的,即R1=60%。
云系统的信息为以下结构体:SystemSource{Cp;Cr;U}。我们为计算简便,假定系统中已分配的资源数Cp=80,Cr=20。系统时间单位U=10s。
具体步骤为:
1)系统初始时的任务调度:初始时,每个任务的state变量默认值是0,即整数值0表示;等待时间Tp=0;每个任务具有默认的调度指数值Tc,即每个任务具有的不同优先级参数Priority来调度任务的执行;首先调度任务Task2执行。
Task1={Tc=P;Rt;Rm;Te=20;P=10;State=0;Tp=0};
Task2={Tc=P;Rt;Rm;Te=60;P=20;State=0;Tp=0};
系统运行过程中,每隔10秒更新一次任务等待时间。此处假定任务等待时间Tp大于时,在第3次更新时间时,此时每个任务的信息是:
Task1={Tc=P;Rt=80;Rm=100;Te=20;P=10;State=0;Tp=30};
Task2={Tc=P;Rt=80;Rm=100;Te=60;P=20;State=0;Tp=0};
由于Task1的Tp=30,大于因而将引起调度指数值的重新计算。
2)计算任务Task1和Task2的资源利用率:
3)计算云系统的资源利用率是:
4)计算每个任务的优先级指数Pe:
Pe=(1-R1)×(1-Ce)×P。
Task1的优先级指数:Pe=0.4;Task2的优先级指数:Pe=1.2。
5)计算每个任务的等待指数We:
Task1的等待指数:We=1.5;Task2的等待指数:We=0。
6)计算测试任务的调度指数计算每个任务的调度指数Tc:
Task1的调度指数:Tc=1.9;Task2的等待指数:Tc=1.2。
7)根据步骤6)的计算,Task1的调度指数比Task2的调度指数大,因而将Task1插入到Task2前面,同时设置Task1的state值为0。即Task1任务位于队列首部。调度器调度队列首部的任务Task1执行。
Claims (1)
1.一种云计算环境下的任务调度方法,其特征在于,该方法包括如下步骤:
1)确定任务调度的依据指标,所述任务调度的依据指标包括任务的资源利用率、系统资源利用率、任务的优先级指数、任务的等待指数,依据任务的等待指数和优先级指数来计算任务的调度指数;
2)按照下式计算每个任务的资源利用率R1:
其中Rt是指任务执行时实际占用的资源数,Rm是指任务执行所需要的最多资源数;
3)按照下式计算云系统的资源利用率Ce:
其中Cp是指云系统中已分配给任务执行使用的资源数;Cr是指云系统中的资源池中的资源数;
4)按照下式计算每个任务的优先级指数Pe:
Pe=(1-R1)×(1-Ce)×P,其中的R1是由所述步骤2)计算得到的任务的资源利用率,Ce是由所述步骤3)计算得到的云系统的资源利用率,P是任务的优先级;
5)按照下式计算每个任务的等待指数We:
其中Tp是指任务已等待的总时间,Te是指任务希望的执行时间;
6)按照下式按照计算每个任务的调度指数Tc:
7)按照所述步骤6)中得到的任务的调度指数,将任务从大到小进行排序,得到一个任务队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310276020.7A CN103324525B (zh) | 2013-07-03 | 2013-07-03 | 一种云计算环境下的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310276020.7A CN103324525B (zh) | 2013-07-03 | 2013-07-03 | 一种云计算环境下的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103324525A CN103324525A (zh) | 2013-09-25 |
CN103324525B true CN103324525B (zh) | 2016-01-13 |
Family
ID=49193289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310276020.7A Expired - Fee Related CN103324525B (zh) | 2013-07-03 | 2013-07-03 | 一种云计算环境下的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103324525B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930516A (zh) * | 2020-09-17 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 一种负载均衡方法及相关装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605567B (zh) * | 2013-10-29 | 2017-03-22 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
CN104079502B (zh) * | 2014-06-27 | 2017-05-10 | 国家计算机网络与信息安全管理中心 | 一种多用户多队列调度方法 |
CN104239154B (zh) * | 2014-10-09 | 2017-08-11 | 浪潮(北京)电子信息产业有限公司 | 一种Hadoop集群中的作业调度方法和作业调度器 |
CN105635781A (zh) * | 2014-10-30 | 2016-06-01 | 深圳Tcl数字技术有限公司 | 请求信息的处理方法及系统 |
CN106095545B (zh) * | 2016-06-01 | 2019-06-25 | 东软集团股份有限公司 | 任务调度方法及装置 |
CN107818012B (zh) * | 2016-09-12 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及电子设备 |
CN110049454A (zh) * | 2018-01-15 | 2019-07-23 | 普天信息技术有限公司 | 一种话语权排队队列用户授权方法和装置 |
CN109117257A (zh) * | 2018-07-20 | 2019-01-01 | 徐州海派科技有限公司 | 云环境下任务调度方法 |
CN109582448B (zh) * | 2018-10-17 | 2021-03-16 | 中国电子科技集团公司第二十八研究所 | 一种面向关键度和时效性的边缘计算任务调度方法 |
CN109445939A (zh) * | 2018-10-19 | 2019-03-08 | 积成电子股份有限公司 | 一种基于主动出让机制的软实时调度内核的调度方法 |
CN109408215B (zh) * | 2018-11-07 | 2021-10-01 | 郑州云海信息技术有限公司 | 一种计算节点的任务调度方法和装置 |
CN111488210B (zh) * | 2020-04-02 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 基于云计算的任务调度方法、装置和计算机设备 |
CN111552548A (zh) * | 2020-04-22 | 2020-08-18 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置、电子设备及机器可读存储介质 |
CN111723985B (zh) * | 2020-06-17 | 2022-08-09 | 南京邮电大学 | 一种基于雾云环境的无人机弹性计算方法 |
CN112346836B (zh) * | 2020-10-28 | 2023-11-21 | 海光信息技术股份有限公司 | 共享计算资源的抢占方法、装置、用户设备及存储介质 |
CN113688053B (zh) * | 2021-09-01 | 2023-07-28 | 北京计算机技术及应用研究所 | 云化测试工具的排队使用方法和系统 |
CN116700913A (zh) * | 2022-09-13 | 2023-09-05 | 荣耀终端有限公司 | 嵌入式文件系统的调度方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145112A (zh) * | 2007-11-01 | 2008-03-19 | 北京工业大学 | 一种实时系统任务调度方法 |
CN101339521A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 一种任务优先级动态调度算法 |
CN102722402A (zh) * | 2012-05-28 | 2012-10-10 | 上海微频莱机电科技有限公司 | 一种非抢占式实时调度多任务的处理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141433B2 (en) * | 2009-12-18 | 2015-09-22 | International Business Machines Corporation | Automated cloud workload management in a map-reduce environment |
-
2013
- 2013-07-03 CN CN201310276020.7A patent/CN103324525B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101145112A (zh) * | 2007-11-01 | 2008-03-19 | 北京工业大学 | 一种实时系统任务调度方法 |
CN101339521A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 一种任务优先级动态调度算法 |
CN102722402A (zh) * | 2012-05-28 | 2012-10-10 | 上海微频莱机电科技有限公司 | 一种非抢占式实时调度多任务的处理系统及方法 |
Non-Patent Citations (2)
Title |
---|
一种动态优先级实时任务调度算法;夏家莉等;《计算机学报》;20121231;第35卷(第12期);2685-2695 * |
基于动态等待时间阈值的延迟调度算法;邹伟明等;《计算机应用研究》;20121130;第29卷(第11期);4073-4078 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930516A (zh) * | 2020-09-17 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 一种负载均衡方法及相关装置 |
CN111930516B (zh) * | 2020-09-17 | 2021-02-09 | 腾讯科技(深圳)有限公司 | 一种负载均衡方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103324525A (zh) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
Salot | A survey of various scheduling algorithm in cloud computing environment | |
KR102562260B1 (ko) | 커밋먼트-인식 스케줄러 | |
CN100485625C (zh) | 一种实时系统任务调度方法 | |
US8997107B2 (en) | Elastic scaling for cloud-hosted batch applications | |
CN102591712B (zh) | 一种云计算中依赖任务的解耦并行调度方法 | |
CN101446910B (zh) | 基于smp的高级最早期限优先算法任务调度方法 | |
CN110287003A (zh) | 资源的管理方法和管理系统 | |
Mills et al. | A stochastic framework for multiprocessor soft real-time scheduling | |
CN102253857B (zh) | 一种多核环境下的Xen虚拟机调度控制方法 | |
CN102681889A (zh) | 一种云计算开放平台的调度方法 | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
CN109408215A (zh) | 一种计算节点的任务调度方法和装置 | |
CN102243598A (zh) | 分布式数据仓库中的任务调度方法及系统 | |
US8539495B2 (en) | Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method | |
CN102708003A (zh) | 一种云平台下的资源分配方法 | |
CN102402461A (zh) | 一种基于作业规模的均衡调度方法 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN105320565A (zh) | 一种针对多种应用软件的计算机资源调度方法 | |
Singh et al. | A comparative study of various scheduling algorithms in cloud computing | |
Shu-Jun et al. | Optimization and research of hadoop platform based on fifo scheduler | |
Gao et al. | Deadline-aware preemptive job scheduling in hadoop yarn clusters | |
Sharma | Task migration with edf-rm scheduling algorithms in distributed system | |
CN102955685B (zh) | 多核dsp及其系统和调度器 | |
Chandak et al. | An overview of task scheduling and performance metrics in grid 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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160113 Termination date: 20190703 |
|
CF01 | Termination of patent right due to non-payment of annual fee |