CN113220428B - 针对云计算系统实时性需求的动态任务调度方法 - Google Patents
针对云计算系统实时性需求的动态任务调度方法 Download PDFInfo
- Publication number
- CN113220428B CN113220428B CN202110444084.8A CN202110444084A CN113220428B CN 113220428 B CN113220428 B CN 113220428B CN 202110444084 A CN202110444084 A CN 202110444084A CN 113220428 B CN113220428 B CN 113220428B
- 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.)
- Active
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)。
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 CN113220428A (zh) | 2021-08-06 |
CN113220428B true 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 |
---|
Real-Time Tasks Oriented Energy-Aware Scheduling in Virtualized Clouds;Xiaomin Zhu et al.;《IEEE Transactions on Cloud Computing》;20140421;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220428A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345501B (zh) | 一种分布式资源调度方法和系统 | |
CN108182115B (zh) | 一种云环境下的虚拟机负载均衡方法 | |
CN107992359B (zh) | 一种云环境下代价感知的任务调度方法 | |
CN110991808B (zh) | 一种任务分配方法和装置 | |
CN104199739B (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
JP2002007364A (ja) | 並列計算機システムのジョブスケジューリングを行うスケジューリング装置 | |
CN107656813A (zh) | 一种负载调度的方法、装置及终端 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN111274021B (zh) | 一种gpu集群任务调度分配方法 | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、系统、设备及介质 | |
CN111061565A (zh) | 一种Spark环境下的两段式流水线任务调度方法及系统 | |
CN115220898A (zh) | 一种基于深度强化学习的任务调度方法、系统、装置及介质 | |
CN116467076A (zh) | 一种基于集群可用资源的多集群调度方法及系统 | |
CN114911613A (zh) | 一种云际计算环境中跨集群资源高可用调度方法及系统 | |
CN115237568A (zh) | 一种面向边缘异构设备的混合权重任务调度方法及系统 | |
CN116932201A (zh) | 一种面向深度学习训练任务的多资源共享调度方法 | |
US20220291959A1 (en) | Activity scheduling method, system, terminal and storage medium based on high response ratio | |
CN116954905A (zh) | 一种面向Flink大数据的任务编排与迁移方法 | |
CN112416520B (zh) | 一种基于vSphere的智能资源调度方法 | |
CN106802822A (zh) | 一种基于飞蛾算法的云数据中心认知资源调度方法 | |
CN113220428B (zh) | 针对云计算系统实时性需求的动态任务调度方法 | |
CN111736959B (zh) | 异构集群下考虑数据亲和性的Spark任务调度方法 | |
CN116755888A (zh) | 一种面向高性能计算云平台的作业调度装置及方法 | |
CN104731662B (zh) | 一种可变并行作业的资源分配方法 | |
CN109344463B (zh) | 电子产品应力云仿真平台的两阶段调度方法 |
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 |