CN113220428A - 针对云计算系统实时性需求的动态任务调度算法 - Google Patents
针对云计算系统实时性需求的动态任务调度算法 Download PDFInfo
- Publication number
- CN113220428A CN113220428A CN202110444084.8A CN202110444084A CN113220428A CN 113220428 A CN113220428 A CN 113220428A CN 202110444084 A CN202110444084 A CN 202110444084A CN 113220428 A CN113220428 A CN 113220428A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- time
- sequencer
- host
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于云计算技术领域,具体为一种针对云计算系统实时性需求的动态任务调度算法,本发明算法步骤如下:用户提交需要完成的任务;排序器根据任务的运行时间和等待时间计算出任务的优先级值;排序器根据任务的优先级值对任务按照从高到低的顺序进行重排序;调度器从排序器中取出一定数目的任务;调度器根据任务的大小及主机当前状态分配任务;主机按照任务大小从低到高的顺序执行任务。本发明中,排序器和调度器的相互配合可以大幅提高对任务的实时性响应,同时不影响执行效率和负载均衡。
Description
技术领域
本发明属于云计算技术领域,具体涉及针对云计算系统实时性需求的动态任务调度算法。
背景技术
随着云计算的广泛应用,云计算系统所处理任务的数量爆炸式地增长,这导致了云计算系统的堵塞。但是用户对于实时性的要求越来越高,而当前的算法把精力过多地放在了执行效率和负载均衡上,却忽视了实时性这个人机交互的重要维度。他们中的大部分是静态调度算法,它们必须等到所有的任务提交完毕后才能够调度任务,这也是实时性低的重要原因。下面介绍部分的代表性算法。
先来先服务(FCFS)算法是一个动态的调度算法,其将第一个到达的任务分配给一个空闲的主机。它忽视了主机和任务的各种特点,比如任务大小和主机处理能力。
Min-min算法优先分配任务列表中的最小任务给主机,在这种情况下,最小任务的竞争时间是最小的。而Max-min算法优先分配最大任务。也因此,Max-min算法在执行效率上要优于Min-min。
任务调度是一项非确定性多项式竞争问题(NP-C),其中启发式算法较为适合此类问题,所以将基因算法(GA),粒子群优化算法等启发式算法应用到任务调度上来。启发式算法可以在执行效率,负载均衡等很多方面有着良好的性能,但是它的调度时间过长。
而用户在实时性上提出了越来越多,越来越高的需求,任务调度算法也应该将实时性考虑到算法的设计中去,并且尽可能地不影响执行效率和负载均衡。
除了FCFS之外,上述的全部算法都是静态调度算法,其为了更好的性能在调度之前需要所有任务的信息。但是,任务是以不定的间隔一个接着一个地提交,等待所有任务提交后才能调度对于实时性有着严重的影响。云计算系统的实时性要求任务在提交后等待时间尽可能地短。因此,所有任务的总等待时间可以衡量云计算系统的实时性表现。据此,我们提出了一套动态任务调度算法,Real Time Dynamic Max-min-min(RTDM)。
发明内容
本发明的目的在于提供一种针对云计算系统实时性需求的动态任务调度算法。
本发明提供的针对云计算系统实时性要求的动态任务调度算法,包括设计一种排序器和调度器;排序器根据任务优先级动态排序任务,调度器根据任务大小智能分配主机,两者相互结合使得实时性大大提高,同时执行效率和负载平衡不受影响。具体步骤为:
步骤一、由排序器根据任务优先级动态排序任务,具体流程为:
(1)用户按照云计算系统提供的标准提交方式提交任务;
(2)任务依次推入排序器,进行重新排序:
排序器中,根据运行所需时间和等待时间计算优先级值,并按照优先级值从大到小的顺序重新排序任务;其中,优先级值的计算公式为:
PriorValuei(t)=a·ExeTimei+b·WaitTimei(t)
其中,t表示当前时间,taski表示第i个任务,PriorValuei(t)表示taski在t时刻的优先级值,a表示一个任务的执行时间权重,b表示一个任务的等待时间权重;ExeTimei表示taski在在标准主机上的执行时间;WaitTimei(t)表示taski在t时刻已等待的时间,其计算公式为:
WaitTimei(t)=t-SubmitTimei
SubmitTimei表示taski的提交时间。
步骤二、调度器根据任务大小智能分配主机,具体流程为:
从排序器中获取任务,若任务数量小于一定阈值,则全部取出,否则取出此阈值数量的任务;任务放入调度器中的任务列表并按照以下步骤开始调度过程:
(1)获取任务列表和主机列表;
(2)根据任务的大小以从大到小的顺序重新排序任务列表;
(3)若任务列表为空,则排序每个主机的任务列表,按从小到大的顺序依次执行;若非空,转至步骤(4);
(4)从任务列表中选出耗时最长的任务,并将其分配给剩余时间最短的主机;并转至步骤(3)。
本发明中,所述执行时间是任务从执行到完成所需要的总时间,提交时间是任务提交的时间,等待时间是任务从提交到现在所等待的时间,任务列表是提交任务所组成的有序队列。主机列表是由所有主机所组成的列表。
本发明中,任务在提交后会实时地根据优先级按照从高到低的顺序重新排列。
本发明中,每个主机有独立的任务列表,它们从总的任务列表中获取任务。
本发明中,调度器根据排序器中任务的数量智能地调整所取任务的数量,若小于一定阈值,则全部取出,否则,则定量取出。
本发明中,调度器将执行时间最长的任务交给剩余完成时间最短的主机,并根据执行时间从低到高的顺序执行主机任务列表中的任务。
本发明提供的针对云计算系统实时性要求的动态任务调度算法,针对实时性进行优化,使其能够满足用户对实时性的需求。
附图说明
图1本发明算法的整体结构。
图2调度算法的工作流程。
具体实施方式
步骤一、排序过程
1、用户按照云计算系统提供的标准提交方式提交任务。
2、任务提交之后,首先对云计算系统运行状况进行,若云计算系统等待任务数量已达到正在运行任务的数量10倍以上,则拒绝任务,并返回给用户消息,任务量已满,无法继续提交任务,请等待。若任务成功提交,则分配给任务一个唯一ID号,ID号的生成主要由两个链表进行处理,具体为空闲链表和已占用链表。二者的总数目可由用户来设定,此值即为云计算系统等待任务和运行任务总和的最大值。在运行时,若有新任务提交,判断空闲链表是否为空,若为空则执行失败处理,非空则进行分配ID号,同时空闲链表删除此节点,已占用链表增加此节点。同理,若任务运行结束或者遇到异常情况意外中断,将此节点从已占用节点中删除并在空闲链表中增加。
3、云计算系统中任务的所需时间和等待时间具有一定的局部性,一些任务总是被不断地提交执行,在同一时间段内运行的任务98%以上是以前执行过的任务。因此,我们建立了一个数据库存储以往任务的运行时间,并设置存活时间,默认为10天,若此任务在存活时间内被重新访问,则刷新存活时间为10天,否则到达时间,任务被删除。因为主机运算能力不同,因此存放的运行时间为标准运行时间,每一个主机在投入使用前,会测试其相对于标准主机的运算能力的相对值,将换算之后的时间存入数据库。在运行时,从数据库中提取并换算对应的运行时间,之后排序器根据运行所需时间和等待时间计算优先级值,并按照优先级值从大到小的顺序重新排序任务。
其中,优先级值的计算公式为:
PriorValuei(t)=a·ExeTimei+b·WaitTimei(t)
其中t表示当前时间,PriorValuei(t)表示taski在t时刻的优先级值,a表示一个任务的执行时间权重,b表示一个任务的等待时间权重。ExeTimei表示taski在在标准主机上的执行时间。WaitTimei(t)表示taski在t时刻已等待的时间,其计算公式为:
WaitTimei(t)=t-SubmitTimei
步骤二、调度过程
调度器从排序器所维护的排序任务列表中获取任务,这里设定任务数量阈值为100,若任务列表中任务数量大于此阈值,则取出此数量的任务。若小于此阈值但大于0,则全部取出,若等于0,则将通知系统管理员,任务管理系统和排序器系统可能出现异常,请排查。
之后任务放入调度器中的任务列表等待静态调度算法。
调度算法分配任务到主机的具体过程。
1、获取任务列表和主机列表。
2、根据任务的大小以从大到小的顺序重新排序任务列表。
3、若任务列表为空,则排序每个主机的任务列表,按从小到大的顺序依次执行。若非空,转至步骤(3)。
4、从任务列表中选出耗时最长的任务,并将其分配给剩余时间最短的主机。并转至步骤(3)。
参考文献
[1]Mell,P.,Grance,T.:The NIST definition of cloud computing.NationalInstitute of Standards and Technology(2014).
[2]Teena,M.,Sekaran,K.C.,Jose,J.:Study and analysis of various taskscheduling algorithms in the cloud computing environment.In:InternationalConference on Advances in Computing,Communications and Informatics,pp.658–664(2014).
[3]Bhoi,U.,Ramanuj,P.N.:Enhanced max-min task scheduling algorithm incloud computing.Int.J.Appl.Innov.Eng.Manag.2(4),259–264(2013).
[4]Wei,X.J.,Bei,W.,Jun,L.:SAMPGA task scheduling algorithm in cloudcomputing. In:Chinese Control Conference,pp.5633–5637(2017).
[5]Makasarwala,H.A.,Hazari,P.:Using genetic algorithm for loadbalancing in cloud computing.In:Electronics,Computers and ArtificialIntelligence,pp. 49–54(2016).
[6]Alla,H.B.,Alla,S.B.:A novel architecture for task scheduling basedon dynamic queues and particle swarm optimization in cloud computing.In:CloudComputing Technologies and Applications,pp.108–114(2016).
[7]Liu,X.F.,Zhan,Z.H.,Deng,J.D.:An energy efficient ant colony systemfor virtual machine placement in cloud computing.IEEE Trans.Evol.Comput.PP(99), 1(2016).
[8]Chen,H.,Zhu,X.:Scheduling for workflows with security-sensitiveintermediate data by selective tasks duplication in clouds.IEEETrans.Parallel Distrib.Syst.28(9),2674–2688(2017).
[9]Gupta,S.R.,Gajera,V.:An effective multi-objective workflowscheduling in cloud computing:a PSO based approach.In:InternationalConference on Contemporary Computing(2016).
[10]Zhu,X.,Yang,L.T.,Chen,H.,Wang,J.,Yin,S.,Liu,X.:Real-time tasksoriented energyaware scheduling in virtualized clouds.IEEE Trans.CloudComput. 2(2),168–180(2014)。
Claims (1)
1.一种针对云计算系统实时性需求的动态任务调度算法,其特征在于,包括设计一种排序器和调度器;排序器根据任务优先级动态排序任务,调度器根据任务大小智能分配主机,具体步骤为:
步骤一、由排序器根据任务优先级动态排序任务,具体流程为:
(1)用户按照云计算系统提供的标准提交方式提交任务;
(2)任务依次推入排序器,进行重新排序:
排序器中,根据运行所需时间和等待时间计算优先级值,并按照优先级值从大到小的顺序重新排序任务;其中,优先级值的计算公式为:
PriorValuei(t)=a·ExeTimei+b·WaitTimei(t)
其中,t表示当前时间,taski表示第i个任务,PriorValuei(t)表示taski在t时刻的优先级值,a表示一个任务的执行时间权重,b表示一个任务的等待时间权重;ExeTimei表示taski在在标准主机上的执行时间;WaitTimei(t)表示taski在t时刻已等待的时间,其计算公式为:
WaitTimei(t)=t-SubmitTimei
SubmitTimei表示taski的提交时间。
步骤二、调度器根据任务大小智能分配主机,具体流程为:
从排序器中获取任务,若任务数量小于一定阈值,则全部取出,否则取出此阈值数量的任务;任务放入调度器中的任务列表并按照以下步骤开始调度过程:
(1)获取任务列表和主机列表;
(2)根据任务的大小以从大到小的顺序重新排序任务列表;
(3)若任务列表为空,则排序每个主机的任务列表,按从小到大的顺序依次执行;若非空,转至步骤(4);
(4)从任务列表中选出耗时最长的任务,并将其分配给剩余时间最短的主机;并转至步骤(3)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110444084.8A CN113220428B (zh) | 2021-04-23 | 2021-04-23 | 针对云计算系统实时性需求的动态任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110444084.8A CN113220428B (zh) | 2021-04-23 | 2021-04-23 | 针对云计算系统实时性需求的动态任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220428A true CN113220428A (zh) | 2021-08-06 |
CN113220428B CN113220428B (zh) | 2022-06-21 |
Family
ID=77088584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110444084.8A Active CN113220428B (zh) | 2021-04-23 | 2021-04-23 | 针对云计算系统实时性需求的动态任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220428B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN104424021A (zh) * | 2013-08-29 | 2015-03-18 | 鸿富锦精密工业(深圳)有限公司 | 任务优先级设置系统及方法 |
CN106095545A (zh) * | 2016-06-01 | 2016-11-09 | 东软集团股份有限公司 | 任务调度方法及装置 |
CN107357652A (zh) * | 2017-06-16 | 2017-11-17 | 北京邮电大学 | 一种基于分段排序及标准差调整因子的云计算任务调度方法 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
CN109491761A (zh) * | 2018-11-07 | 2019-03-19 | 中国石油大学(华东) | 基于eda-ga混合算法的云计算多目标任务调度方法 |
CN112272203A (zh) * | 2020-09-18 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种集群业务节点选择方法、系统、终端及存储介质 |
CN112395067A (zh) * | 2020-12-04 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 任务调度方法、系统、设备及介质 |
-
2021
- 2021-04-23 CN CN202110444084.8A patent/CN113220428B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN104424021A (zh) * | 2013-08-29 | 2015-03-18 | 鸿富锦精密工业(深圳)有限公司 | 任务优先级设置系统及方法 |
CN106095545A (zh) * | 2016-06-01 | 2016-11-09 | 东软集团股份有限公司 | 任务调度方法及装置 |
CN107357652A (zh) * | 2017-06-16 | 2017-11-17 | 北京邮电大学 | 一种基于分段排序及标准差调整因子的云计算任务调度方法 |
CN108563500A (zh) * | 2018-05-08 | 2018-09-21 | 深圳市零度智控科技有限公司 | 基于云平台的任务调度方法、云平台及计算机存储介质 |
CN109491761A (zh) * | 2018-11-07 | 2019-03-19 | 中国石油大学(华东) | 基于eda-ga混合算法的云计算多目标任务调度方法 |
CN112272203A (zh) * | 2020-09-18 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种集群业务节点选择方法、系统、终端及存储介质 |
CN112395067A (zh) * | 2020-12-04 | 2021-02-23 | 深圳前海微众银行股份有限公司 | 任务调度方法、系统、设备及介质 |
Non-Patent Citations (1)
Title |
---|
XIAOMIN ZHU ET AL.: "Real-Time Tasks Oriented Energy-Aware Scheduling in Virtualized Clouds", 《IEEE TRANSACTIONS ON CLOUD COMPUTING》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220428B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182115B (zh) | 一种云环境下的虚拟机负载均衡方法 | |
CN108345501B (zh) | 一种分布式资源调度方法和系统 | |
CN107992359B (zh) | 一种云环境下代价感知的任务调度方法 | |
CN109491761A (zh) | 基于eda-ga混合算法的云计算多目标任务调度方法 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN115220898A (zh) | 一种基于深度强化学习的任务调度方法、系统、装置及介质 | |
CN115454612A (zh) | 一种基于维度学习策略和灰狼优化的云平台任务调度方法 | |
CN108170523B (zh) | 一种移动云计算的随机任务序列调度方法 | |
CN111061565A (zh) | 一种Spark环境下的两段式流水线任务调度方法及系统 | |
CN115237568A (zh) | 一种面向边缘异构设备的混合权重任务调度方法及系统 | |
CN116467076A (zh) | 一种基于集群可用资源的多集群调度方法及系统 | |
CN113986518A (zh) | 一种基于蚁群算法的实时云任务多目标优化调度方法 | |
CN106802822A (zh) | 一种基于飞蛾算法的云数据中心认知资源调度方法 | |
CN112416520B (zh) | 一种基于vSphere的智能资源调度方法 | |
Singhrova et al. | Prioritized GA-PSO algorithm for efficient resource allocation in fog computing | |
Lata et al. | A Hybrid Approach for Cloud Load Balancing | |
Abdalkafor et al. | A hybrid approach for scheduling applications in cloud computing environment | |
CN111736959B (zh) | 异构集群下考虑数据亲和性的Spark任务调度方法 | |
CN113220428A (zh) | 针对云计算系统实时性需求的动态任务调度算法 | |
Ghazy et al. | A New Round Robin Algorithm for Task Scheduling in Real-time System. | |
CN115454585A (zh) | 一种面向边缘设备深度学习模型推理的自适应批处理和并行调度系统 | |
CN114896295A (zh) | 大数据场景下的数据脱敏方法、脱敏装置及脱敏系统 | |
Abdelkader et al. | MMMRR: a Modified Median Mean Round Robin Algorithm for Task Scheduling. | |
Zhang et al. | An improved adaptive workflow scheduling algorithm in cloud environments | |
Rong et al. | Task Scheduling Algorithm of Cyber-Physical System Base on Complex Industry and Big Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |