CN106980532A - 一种作业调度方法和装置 - Google Patents
一种作业调度方法和装置 Download PDFInfo
- Publication number
- CN106980532A CN106980532A CN201610031403.1A CN201610031403A CN106980532A CN 106980532 A CN106980532 A CN 106980532A CN 201610031403 A CN201610031403 A CN 201610031403A CN 106980532 A CN106980532 A CN 106980532A
- Authority
- CN
- China
- Prior art keywords
- job queue
- job
- calculated
- factor
- priority
- 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.)
- Pending
Links
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
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
技术领域
本发明涉及作业调度技术,尤其涉及一种作业调度方法和装置。
背景技术
MapReduce是目前使用十分广泛的一个分布式系统处理框架,用来处理大规模数据。调度器是MapReduce的一个核心组件,对于整个系统的性能有着非常关键的影响。目前,常见的调度器有三种:公平调度器、FIFO调度器。
根据目前的情况来看,小作业在负载中占据主导地位。比如,在Facebook和Bing的应用中,任务数量小于10的作业分别占到了作业总数的82%和61%,而在Google,MapReduce作业的平均执行时间为395秒,在Yahoo!的生产型集群中,有超过80%的作业完成时间小于十分钟。小作业的大量增加是因为例如随机查询这类小作业开始越来越多地在MapReduce集群中运行,其中,时延是影响小作业使用体验至关重要的因素。
公平调度器是目前使用最为广泛的调度器,公平调度器的核心思想是尽量使所有用户和作业都能够尽可能获得‘大致相等’的集群资源份额,由于强调所有用户和作业公平占有资源,所以公平调度器对交互式小作业的响应时间较长。很多分布式系统都默认采用FIFO调度调度器,但是FIFO调度器也存在一些问题,比如作业容易产生“饥饿现象”、不能适用于多用户场景等,因此,适用范围较窄。
针对公平调度器对小作业的响应时间较长的问题,又提出了小作业优先调度策略。将小作业优先调度策略与公平调度策略进行对比测试,由测试结果可知:采用小作业优先调度策略的作业平均响应时间比使用公平调度策略的作业平均响应时间要短,特别是在较大程度上缩短了小作业的响应时间,并且对大作业的响应时间几乎没有什么影响。但是,还需要考虑在实际应用中,小作业优先策略可能会造成大作业产生“饥饿现象”,比如在有大作业存在的情况下,不断有大量小作业被提交到MapReduce系统,由于优先调度短作业,可能会导致大作业一直不能被调度处理,从而出现“饥饿现象”。
综上所述,在分布式系统的调度处理中,如何能在较大程度上缩短小作业的响应时间,同时防止大作业产生“饥饿现象”是目前待解决的问题。
发明内容
有鉴于此,本发明实施例期望提供一种作业调度方法和装置,能够缩短小作业的响应时间,同时防止大作业产生“饥饿现象”,实现提高作业调度效率的目的。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种作业调度方法,所述方法包括:当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;按照所述排序后的作业队列的顺序,对所述作业队列中的作业进行调度处理。
在上述方案中,所述当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序,包括:当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子;按照所述作业队列中每个作业前一次调度的时间计算所述作业队列中作业的等待因子;根据计算出的所述每个作业的大小因子和所述每个作业的等待因子,计算出所述作业队列中每个作业的优先级。
在上述方案中,所述当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子,包括:当出现空闲资源时,分别确定作业队列中每个作业是否已经被调度处理过;若所述作业队列中的作业从未被调度处理过,则根据所述作业的输入数据量计算所述作业的大小因子;若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算所述作业的大小因子。
在上述方案中,所述若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算出所述作业的大小因子,包括:计算所述作业队列中作业当前的任务进度和所述作业队列中作业达到当前进度所使用的时间;根据所述计算出的作业当前的任务进度和所述计算出的作业达到当前进度所使用的时间,计算出所述作业的执行率;根据所述计算出的作业当前的任务进度,计算所述作业的剩余任务数量;根据所述计算出的作业的执行率和所述计算出的作业的剩余任务数量,计算出所述作业执行完剩余任务所需的时间;根据所述计算出的作业执行完剩余任务所需的时间,计算出所述作业的大小因子。
在上述方案中,所述当出现空闲资源时,根据作业队列中作业的大小因子和所述作业队列中作业的等待因子计算出所述作业队列中作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序,包括:当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;其中,所述等待因子与所述优先级正相关,所述大小因子与所述优先级负相关。
第二方面,本发明实施例提供一种作业调度装置,所述装置包括:计算单元、排序单元和处理单元;其中,所述计算单元,用于当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级;所述排序单元,用于将所述作业队列中的作业按照计算单元计算出的所述优先级进行排序;所述处理单元,用于按照所述排序后的作业队列的顺序,对所述作业队列中的作业进行调度处理。
在上述方案中,所述计算单元,具体用于当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子;按照所述作业队列中每个作业前一次调度的时间计算所述作业队列中作业的等待因子;根据计算出的所述每个作业的大小因子和所述每个作业的等待因子,计算出所述作业队列中每个作业的优先级。
在上述方案中,所述计算单元,具体用于当出现空闲资源时,分别确定作业队列中每个作业是否已经被调度处理过;若所述作业队列中的作业从未被调度处理过,则根据所述作业的输入数据计算出所述作业的大小因子;若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算出所述作业的大小因子。
在上述方案中,所述计算单元,具体用于计算所述作业队列中作业当前的任务进度和达到当前进度所使用的时间;根据所述计算出的作业当前的任务进度和所述计算出的作业达到当前进度所使用的时间,计算出所述作业的执行率;根据所述计算出的作业当前的任务进度,计算所述作业的剩余任务数量;根据所述计算出的作业的执行率和所述计算出的作业的剩余任务数量,计算出所述作业执行完剩余任务所需的时间;根据所述计算出的作业执行完剩余任务所需的时间,计算出所述作业的大小因子。
在上述方案中,所述排序单元,具体用于当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;其中,所述等待因子与所述优先级正相关;所述大小因子与所述优先级负相关。
本发明实施例提供了一种作业调度方法和装置,先由作业的大小因子和等待因子计算出作业的优先级,再根据作业的优先级进行调度处理,这样,能够缩短小作业的响应时间,同时防止大作业产生“饥饿现象”,实现提高调作业度效率的技术效果。
附图说明
图1为本发明实施例提供的一种作业调度方法的流程示意图;
图2为本发明实施例提供的一种计算作业大小因子的具体流程示意图;
图3为本发明实施例提供的一种作业调度方法的具体流程示意图;
图4为本发明实施例提供的另一种作业调度方法的具体流程示意图;
图5为本发明实施例提供的一种作业调度装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
参见图1,其示出了本发明实施例提供的一种作业调度方法,该方法可以包括:
S101:当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;
需要说明的是,作业的优先级是动态计算的,每当出现空闲资源时,都需要重新计算作业队列中每个作业的优先级。在具体实施过程中,可以根据优先级从高到低的顺序对作业队列进行排序。
在具体实施过程中,当出现空闲资源时,将所有用户按照公平性排列成用户队列,并按照用户队列的顺序从队首开始,依次对用户名下的作业队列进行调度处理;每次在对用户名下作业队列进行调度处理之前,都需要根据当前用户名下作业队列中每个作业的大小因子和所述作业队列中每个作业的的等待因子重新计算当前用户名下的作业队列中每个作业的优先级,并按照所述每个作业的优先级对当前用户名下作业队列中的作业进行排序;在对当前用户名下的作业队列的调度处理完成后,再对用户队列中下一个用户名下的作业队列进行调度处理。
步骤S101的实现过程具体可以包括:
S1011:当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子;
在具体实施过程中,需要先分别确定作业队列中的作业是否已经被调度处理过。
若该作业队列中的作业从未被调度处理过,则根据该作业的输入数据量计算该作业的大小因子;其中,作业的输入数据量,具体可以是作业的任务数量。
若该作业队列中的作业已经被调度处理过,则根据该作业执行完剩余任务所需的时间计算该作业的大小因子,具体执行步骤包括:
S10111:计算该作业队列中作业当前的任务进度和该作业队列中达到当前进度所使用的时间;
S10112:根据计算出的该作业当前的任务进度和计算出的该作业达到当前进度所使用的时间,计算出该作业的执行率;
S10113:根据计算出的该作业当前的任务进度,计算该作业的剩余任务数量;
S10114:根据计算出的该作业的执行率和计算出的该作业的剩余任务量,计算出该作业执行完剩余任务所需的时间;
S10115:根据计算出的该作业执行完剩余任务所需的时间,计算出该作业的大小因子。
需要说明的是,作业执行完剩余任务所需的时间与大小因子正相关。
S1012:按照该作业队列中每个作业前一次调度的时间计算该作业队列中作业的等待因子;
在具体实施过程中,等待时间是指该作业上一次被分配资源到当前的这段时间。
需要说明的是,作业的等待时间越长与等待因子成正比。
S1013:根据计算出的每个作业的大小因子和每个作业的等待因子,计算出该作业队列中每个作业的优先级。
S102:按照排序后所述作业队列的顺序,对所述作业队列中的作业进行调度处理。
在具体实施过程中,需要按照排序后作业队列的顺序,依次确定该作业队列中作业的是否满足数据本地性,并对第一个满足数据本地性的作业进行调度处理,也就是说,将空闲资源分配给第一个满足数据本地性的作业进行调度处理。
需要说明的是,数据本地性是指需要调度处理的数据位于空闲资源的节点上,当作业不满足数据本地性时,需要将作业的数据传送到空闲资源的节点上,不仅费时而且占用资源。因此,若作业队列中待处理的作业不满足数据本地性,则按照作业队列的顺序,对下一个作业进行调度处理;若当前用户名下的作业队列中没有满足数据本地性的作业,则按照用户队列的顺序,对下一个用户进行调度处理;若该用户队列中所有用户名下的作业队列中都没有满足数据本地性的作业,则直接将空闲资源分配给有待执行map任务的用户中的最高优先级用户,进而将空闲资源分配给该最高优先级用户名下作业队列中第一个有待执行map任务的作业。
下面针对作业的大小因子进行进一步地说明:
首先,根据作业中已经完成的任务数量和正在运行的任务的进度,计算作业当前的任务进度;其中,可以利用式(1)来计算作业当前的任务进度:
在式(1)中,以作业j为例进行说明,参数jobPSj表示作业j当前的任务进度,参数c表示作业j中已经完成的任务数量,参数表示作业j中正在运行的任务的进度,参数Rj表示作业j中正在运行的任务的集合,参数r表示作业j中正在运行的任务数量。
接下来,根据作业中当前已完成的任务所花费的总时间和正在运行的任务完成当前进度所花费的总时间,计算作业达到当前进度所使用的时间;其中,可以利用式(2)来计算作业达到当前进度所使用的时间:
在式(2)中,以作业j为例进行说明,参数jobExTj表示作业j达到当前进度所使用的线性时间,参数表示作业j中当前已完成的任务所花费的时间总和,参数表示作业j中正在运行的任务完成当前进度所花费的时间总和,参数Cj是作业j已完成任务的集合,参数Rj表示作业j中正在运行的任务的集合,参数c表示作业j中已经完成的任务数量,参数timet是完成作业j中的任务t所花费的时间,参数r表示作业j中正在运行任务数量,参数curT是当前时间,参数startt是作业j中任务t开始运行的时间。
需要说明的是,式(2)中参数的具体计算方法是:先将任务的当前时间减去任务的开始时间来得到该任务完成当前进度花费的时间,然后再将作业j中所有正在运行的任务完成当前进度花费的时间累加起来,就可以得到作业j中所有正在运行的任务完成当前进度花费的总时间。
然后,根据式(1)得到的作业当前的任务进度和式(2)得到的作业达到当前进度所使用的时间,计算作业的执行率;其中,可以利用式(3)来计算作业的执行率:
jobExRj=jobPSj/jobExT (3)
在式(3)中,以作业j为例进行说明,参数jobExRj表示作业j的执行率,参数jobPSj表示作业j当前的任务进度,参数jobExTj表示作业j达到当前进度所使用的时间。
接下来,根据作业的总任务数量和式(1)得到的作业当前的任务进度,计算作业的剩余任务数量;其中,可以利用式(4)来计算作业的剩余任务数量:
jobRSj=N-jobPSj (4)
式(4)中,以作业j为例进行说明,参数jobRSj表示作业j的剩余任务数量,参数jobPSj表示作业j当前的任务进度,参数N是作业j的总任务数量。
进一步地,根据式(3)得到的作业的执行率和式(4)得到的作业的剩余任务数量,计算作业执行完剩余任务所需的时间;其中,可以利用式(5)来计算作业执行完剩余任务所需的时间:
jobRTj=jobRSj/jobExRj (5)
在式(5)中,以作业j为例进行说明,参数jobRTj表示作业j完所有任务所需的剩余时间,参数jobRSj表示作业j的剩余任务数量,参数jobExRj表示作业j的执行率。
最后,根据式(5)得到的作业执行完剩余任务所需的时间或作业的任务数量,计算作业的大小因子;其中,可以利用式(6)或式(7)来计算作业的大小因子:
在式(6)中,以作业j为例进行说明,参数jobSizeFactorj表示作业j的大小因子,参数jobRTj表示作业j执行完剩余任务所需的时间,参数n表示当前用户名下作业队列中的作业数量;在式(7)中,参数jobSizeFactorj表示作业j的大小因子,参数jobRTasksNumj表示作业j的剩余任务数量,参数n表示当前用户名下作业队列中的作业数量。
在具体实施过程中,对于刚刚提交到系统且还没有被调度处理过的作业,由于还没有任务执行的历史信息,无法预测该作业的执行时间。因此,使用作业的输入数据大小,具体可以是作业的任务数量来确定作业的大小因子,如式(7)所示,但是这种情况只是在最开始会发生,当作业获得调度后的下一次资源分配时,就改用式(6)来计算该作业的大小因子。
接下来,以一具体实施例对作业的大小因子的计算方法进行说明:
首先,确定作业是否已经被调度处理过;
若作业从未被调度处理过,则根据作业的任务数量,由式(7)计算出该作业的大小因子;
若作业已经被调度处理过,则根据执行完剩余任务所需的时间计算该作业的大小因子。在作业已经被调度处理过的情况下,计算作业的大小因子的具体步骤如图2所示,包括:
S201:由式(1)计算出该作业当前的任务进度;
S202:由式(2)计算出该作业达到当前进度所使用的时间;
S203:根据式(1)计算出的该作业的当前的任务进度和式(2)计算出的该作业达到当前进度所使用的时间,由式(3)计算出该作业的执行率;
S204:根据作业的总任务量,由式(4)计算出该作业的剩余任务数量;
S205:根据式(3)计算出的该作业的执行率和式(4)计算出的该作业的剩余任务量,由式(5)计算出该作业执行完剩余任务所需的时间;
S206:根据式(5)计算出该作业业执行完剩余任务所需的时间,由式(6)计算出该作业的大小因子。
进一步地,为了防止个别作业垄断集群资源而使得其他作业等待获取资源的时间过长,即产生所谓的“饥饿现象”,本发明将等待因子也加入到作业优先级的计算中,以平衡空闲资源的分配,在缩短小作业的响应时长的前提下,避免其他作业产生“饥饿现象”。需要说明的是,作业的等待时间是从作业上次获得空闲资源到当前的这段时间。作业的等待因子越大,表示该作业相对于其他作业等待的时间越长。
针对等待因子,需要进一步说明的是,可以根据作业的等待时间计算出该作业的等待因子;其中,可以利用式(8)来计算作业的等待时长:
在式(8)中,以作业j为例进行说明,参数jobWTj表示作业j的等待时间,参数n表示当前用户名下作业队列中的作业数量。
最终,根据作业的大小因子和等待因子,就可以计算出作业的优先级;其中,可以利用式(9)来计算作业的优先级:
priorityj=jobWaitFactorj+(1/jobSizeFactorj) (9)
在式(9)中,以作业j为例进行说明,参数jobWaitFactorj为式(8)得到的作业j的等待因子,参数jobSizeFactor为式(6)或式(7)得到的作业j的大小因子,参数priorityj为计算得到的作业j的优先级。
由式(9)可以看出,作业的优先级与作业的大小因子成反比,同时,与作业的等待因子成正比。作业完所有任务所需的剩余时间越短,等待的时间越长,该作业对应的优先级就越高;反之,作业j完所有任务所需的剩余时间越长,等待的时间越短,该作业对应优先级就越低。
这样,在作业调度时,将作业完所有任务所需的剩余时间和作业的等待时间转化成作业的优先级,综合考虑了作业完所有任务所需的剩余时间和作业的等待时间这两个重要因素,同时,由于作业完所有任务所需的剩余执行时间和作业的等待时间是动态变化的,所以作业的优先级也是动态变化的。空闲资源能够根据作业的优先级进行分配,优先级高的作业会优先获取空闲资源。这样,通过作业的大小因子提高小作业的优先级,以实现缩短小作业响应时间的技术效果;通过作业的等待因子提高大作业的优先级,以实现避免大作业产生“饥饿现象”的技术效果。这种调度方法可以在很大程度上缩短小作业的响应时间,同时防止大作业产生“饥饿现象”,提高了用户体验,实现提高调作业度效率的技术效果。
比如,在某社交网站上,用户每天都有大量的搜索查询,这些搜索查询一般都是类似的sql检索,这种作业需要系统很快给出结果,类似于sql这种作业一般都是小作业。另外,该社交网站的后台系统需要分析每个用户和其他用户的关系网,从而向用户推荐好友,这样的作业就属于大作业,需要很长的时间计算而且这种作业对响应时间要求不高。在这种场景下,使用本发明的调度方法不仅可以缩短小作业的作业响应时间,又不会造成大作业“饥饿现象”,提升了用户体验。
下面以另一具体实施例对作业的调度过程进行说明,具体步骤如图3所示,包括:
S301:当出现空闲资源时,将所有用户按照公平性排列成用户队列;
S302:按照用户队列的顺序选择用户队列中的第一个用户进行调度处理;
S303:在调度处理之前,计算出当前用户名下作业队列中每个作业的优先级;
其中,计算优先级的具体过程包括:
需要说明的是,当前用户名下作业队列中共有3个作业,其中,a作业和b作业均已经被调度处理过,c作业是刚刚提交的所以还未被调度处理过,所以计算a作业和b作业的大小因子使用式(1)~(6),而计算c作业的大小因子使用式(7)。
S3031:由式(1)分别计算出作业队列中a、b两个作业当前的任务进度,a、b的计算结果均为5;
S3032:由式(2)分别计算出作业队列中a和b两个作业达到当前进度所使用的时间,a作业和b作业的计算结果分别为100s和5s;
S3033:由式(3)分别计算出作业队列中a和b两个作业的执行率,a作业和b作业的计算结果分别为0.05和1;
S3034:由式(4)分别计算出作业队列中a和b两个作业的剩余任务数量,a作业和b作业的计算结果均为5;
需要说明的是,作业队列中a、b、c三个作业的总任务数量均为10。
S3035:由式(5)分别计算出作业队列中a和b两个作业执行完剩余任务所需的时间,a作业和b作业的计算结果分别为100s和5s;
S3036:由式(6)分别计算出作业队列中a、b两个作业的大小因子,a作业和b作业的计算结果分别为19.05和0.95;
S3037:根据式(7)计算出c作业的大小因子,计算结果为1;
S3038:由式(8)分别计算出作业队列中a、b、c三个作业的等待因子,a作业、b作业和c作业的计算结果均为0s;
需要说明的是,a作业、b作业和c作业的等待时间均为0s。
S3039:由式(9)分别计算出作业队列中a、b、c三个作业的优先级,a作业、b作业和c作业的计算结果分别为:0.05、1.05和1;
S304:将当前用户名下的作业队列按照优先级从高到底进行排序,排序结果是:c、b、a;
S305:按照排序后作业队列的顺序,确定当前用户名下作业队列中的作业均满足数据本地性;
S306:对排序后的作业队列中第一个作业c进行调度处理,也就是说,向作业队列中的c作业分配空闲资源。
可见,当用户名下的作业的等待时间均等时,本发明的技术方案能够优先调度小作业,同时考虑作业的执行率,不仅在较大程度上缩短了小作业的响应时间,同时,提高了作业调度的效率,在较大程度上提升了小作业的用户感受。
下面以又一实施例对作业的调度过程进行说明,具体步骤如图4所示,包括:
S401:当出现空闲资源时,将所有用户按照公平性排列成用户队列;
S402:由于用户队列中第一个用户已经调度处理完毕,按照用户队列的顺序选择用户队列中的第二个用户进行调度处理;
S403:在调度处理之前,计算出当前用户名下作业队列中3个作业的优先级;
其中,计算优先级的具体过程包括:
需要说明的是,当前用户名下作业队列中共有3个作业,且3个作业均已经被调度处理过。
S4031:由式(1)分别计算出作业队列中a、b、c三个作业当前的任务进度,a、b、c的计算结果分别为:50、8、1;
S4032:由式(2)分别计算出作业队列中a、b、c三个作业达到当前进度所使用的时间,a、b、c的计算结果分别为:90s、20s、2s;
S4033:由式(3)分别计算出作业队列中a、b、c三个作业的执行率,a、b、c的计算结果分别为:0.6、0.4、0.5;
S4034:由式(4)分别计算出作业队列中a、b、c三个作业的剩余任务数量,其中,作业队列中第1个作业、第2个作业和第3个作业的总任务数量分别为100、10、5,a、b、c的计算结果分别为:50、2、4;
S4035:由式(5)分别计算出作业队列中a、b、c三个作业执行完剩余任务所需的时间,a、b、c的计算结果分别为:90s、5s、8s;
S4036:由式(6)分别计算出作业队列中a、b、c三个作业的大小因子,a、b、c的计算结果分别为:100、5.6、8.9;
S4037:由式(8)分别计算出作业队列中a、b、c三个作业的等待因子,其中,a、b、c的等待时间分别为:300s、0s、2s,a、b、c的计算结果分别为:115、0、0.77;
S4038:由式(9)分别计算出作业队列中a、b、c三个作业的优先级,a、b、c的计算结果分别为:115.01、0.18、0.89;
S404:将当前用户名下的作业队列按照优先级从高到底进行排序,排序结果是:a、c、b。
S405:按照排序后作业队列的顺序,确定当前用户名下作业队列中的作业均满足数据本地性;
S406:按照排序后作业队列的顺序,对作业队列中第一个作业a进行调度处理,也就是说,向作业队列中的a作业分配空闲资源。
可见,当大作业的等待时间较长时,本发明的技术方案能够使用等待因子影响作业的优先级,以实现对这类作业的尽快处理,在较大程度上避免出现“饥饿现象”。
实施例二
基于上述实施例相同的技术构思,参见图5,其示出了本发明实施例提供的一种装置50,该装置50包括:计算单元501、排序单元502以及处理单元503;其中,
所述计算单元501,用于当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级;
所述排序单元502,用于将所述作业队列中的作业按照计算单元501计算出的所述优先级进行排序;
所述处理单元503,用于按照所述排序后的作业队列的顺序,对所述作业队列中的作业进行调度处理。
在上述方案中,所述计算单元501,具体用于当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子;按照所述作业队列中每个作业前一次调度的时间计算所述作业队列中作业的等待因子;根据计算出的所述每个作业的大小因子和所述每个作业的等待因子,计算出所述作业队列中每个作业的优先级。
在上述方案中,所述计算单元501,具体用于当出现空闲资源时,分别确定作业队列中每个作业是否已经被调度处理过;若所述作业队列中的作业从未被调度处理过,则根据所述作业的输入数据计算出所述作业的大小因子;若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算出所述作业的大小因子。
在上述方案中,所述计算单元501,具体用于计算所述作业队列中作业当前的任务进度和达到当前进度所使用的时间;根据所述计算出的作业当前的任务进度和所述计算出的作业达到当前进度所使用的时间,计算出所述作业的执行率;根据所述计算出的作业当前的任务进度,计算所述作业的剩余任务数量;根据所述计算出的作业的执行率和所述计算出的作业的剩余任务数量,计算出所述作业执行完剩余任务所需的时间;根据所述计算出的作业执行完剩余任务所需的时间,计算出所述作业的大小因子。
在上述方案中,所述排序单元502,具体用于当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;其中,所述等待因子与所述优先级正相关;所述大小因子与所述优先级负相关。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种作业调度方法,其特征在于,所述方法包括:
当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;
按照所述排序后的作业队列的顺序,对所述作业队列中的作业进行调度处理。
2.根据权利要求1所述的方法,其特征在于,所述当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序,包括:
当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子;
按照所述作业队列中每个作业前一次调度的时间计算所述作业队列中作业的等待因子;
根据计算出的所述每个作业的大小因子和所述每个作业的等待因子,计算出所述作业队列中每个作业的优先级。
3.根据权利要求2所述的方法,其特征在于,所述当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子,包括:
当出现空闲资源时,分别确定作业队列中每个作业是否已经被调度处理过;
若所述作业队列中的作业从未被调度处理过,则根据所述作业的输入数据量计算所述作业的大小因子;
若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算所述作业的大小因子。
4.根据权利要求3所述的方法,其特征在于,所述若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算出所述作业的大小因子,包括:
计算所述作业队列中作业当前的任务进度和所述作业队列中作业达到当前进度所使用的时间;
根据所述计算出的作业当前的任务进度和所述计算出的作业达到当前进度所使用的时间,计算出所述作业的执行率;
根据所述计算出的作业当前的任务进度,计算所述作业的剩余任务数量;
根据所述计算出的作业的执行率和所述计算出的作业的剩余任务数量,计算出所述作业执行完剩余任务所需的时间;
根据所述计算出的作业执行完剩余任务所需的时间,计算出所述作业的大小因子。
5.根据权利要求1所述的方法,其特征在于,所述当出现空闲资源时,根据作业队列中作业的大小因子和所述作业队列中作业的等待因子计算出所述作业队列中作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序,包括:
当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;其中,所述等待因子与所述优先级正相关,所述大小因子与所述优先级负相关。
6.一种作业调度装置,其特征在于,所述装置包括:计算单元、排序单元和处理单元;其中,
所述计算单元,用于当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级;
所述排序单元,用于将所述作业队列中的作业按照计算单元计算出的所述优先级进行排序;
所述处理单元,用于按照所述排序后的作业队列的顺序,对所述作业队列中的作业进行调度处理。
7.根据权利要求6所述的装置,其特征在于,所述计算单元,具体用于当出现空闲资源时,按照作业队列中每个作业的任务处理情况计算所述作业队列中每个作业的大小因子;按照所述作业队列中每个作业前一次调度的时间计算所述作业队列中作业的等待因子;根据计算出的所述每个作业的大小因子和所述每个作业的等待因子,计算出所述作业队列中每个作业的优先级。
8.根据权利要求7所述的装置,其特征在于,所述计算单元,具体用于当出现空闲资源时,分别确定作业队列中每个作业是否已经被调度处理过;若所述作业队列中的作业从未被调度处理过,则根据所述作业的输入数据计算出所述作业的大小因子;若所述作业队列中的作业已经被调度处理过,则根据所述作业执行完剩余任务所需的时间计算出所述作业的大小因子。
9.根据权利要求8所述的装置,其特征在于,所述计算单元,具体用于计算所述作业队列中作业当前的任务进度和达到当前进度所使用的时间;根据所述计算出的作业当前的任务进度和所述计算出的作业达到当前进度所使用的时间,计算出所述作业的执行率;根据所述计算出的作业当前的任务进度,计算所述作业的剩余任务数量;根据所述计算出的作业的执行率和所述计算出的作业的剩余任务数量,计算出所述作业执行完剩余任务所需的时间;根据所述计算出的作业执行完剩余任务所需的时间,计算出所述作业的大小因子。
10.根据权利要求6所述的装置,其特征在于,所述排序单元,具体用于当出现空闲资源时,根据作业队列中每个作业的大小因子和所述作业队列中每个作业的等待因子计算出所述作业队列中每个作业的优先级,并将所述作业队列中的作业按照所述优先级进行排序;其中,所述等待因子与所述优先级正相关;所述大小因子与所述优先级负相关。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610031403.1A CN106980532A (zh) | 2016-01-18 | 2016-01-18 | 一种作业调度方法和装置 |
PCT/CN2016/080057 WO2016197716A1 (zh) | 2016-01-18 | 2016-04-22 | 一种作业调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610031403.1A CN106980532A (zh) | 2016-01-18 | 2016-01-18 | 一种作业调度方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106980532A true CN106980532A (zh) | 2017-07-25 |
Family
ID=57503252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610031403.1A Pending CN106980532A (zh) | 2016-01-18 | 2016-01-18 | 一种作业调度方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106980532A (zh) |
WO (1) | WO2016197716A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052443A (zh) * | 2017-10-30 | 2018-05-18 | 北京奇虎科技有限公司 | 一种测试任务调度方法、装置、服务器及存储介质 |
CN109189581A (zh) * | 2018-09-20 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种作业调度方法和装置 |
CN110287015A (zh) * | 2019-06-27 | 2019-09-27 | 四川中电启明星信息技术有限公司 | Pc自动化作业被动调度方法 |
CN111930514A (zh) * | 2020-09-14 | 2020-11-13 | 北京英迈琪科技有限公司 | 一种资源优化分配方法及系统 |
CN111949408A (zh) * | 2020-08-16 | 2020-11-17 | 广东奥飞数据科技股份有限公司 | 一种边缘计算资源的动态分配方法 |
CN112181645A (zh) * | 2020-09-21 | 2021-01-05 | 中国建设银行股份有限公司 | 一种资源调度的方法、装置、设备及存储介质 |
CN113568725A (zh) * | 2021-07-14 | 2021-10-29 | 中国科学院计算技术研究所 | 深度学习作业优先级调度方法及深度学习作业系统 |
CN113946430A (zh) * | 2021-12-20 | 2022-01-18 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345501B (zh) * | 2017-01-24 | 2021-10-29 | 全球能源互联网研究院有限公司 | 一种分布式资源调度方法和系统 |
RU2731321C2 (ru) | 2018-09-14 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ определения потенциальной неисправности запоминающего устройства |
RU2718215C2 (ru) | 2018-09-14 | 2020-03-31 | Общество С Ограниченной Ответственностью "Яндекс" | Система обработки данных и способ обнаружения затора в системе обработки данных |
RU2714219C1 (ru) | 2018-09-14 | 2020-02-13 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования передачи операций ввода/вывода |
RU2714602C1 (ru) | 2018-10-09 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки данных |
RU2721235C2 (ru) | 2018-10-09 | 2020-05-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для маршрутизации и выполнения транзакций |
RU2711348C1 (ru) | 2018-10-15 | 2020-01-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки запросов в распределенной базе данных |
RU2714373C1 (ru) | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования выполнения операций ввода/вывода |
RU2749649C2 (ru) | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
RU2720951C1 (ru) | 2018-12-29 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и распределенная компьютерная система для обработки данных |
RU2746042C1 (ru) | 2019-02-06 | 2021-04-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для передачи сообщения |
CN111221645B (zh) * | 2019-11-14 | 2023-06-16 | 中国民航信息网络股份有限公司 | 一种航空作业处理方法和系统 |
CN111045810B (zh) * | 2019-12-17 | 2023-08-29 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN111813553B (zh) * | 2020-07-17 | 2023-05-26 | 华侨大学 | 一种基于可选因子周期任务动态优先级低能耗方法 |
CN113448705B (zh) * | 2021-06-25 | 2023-03-28 | 皖西学院 | 一种不平衡作业调度算法 |
CN113379308A (zh) * | 2021-06-30 | 2021-09-10 | 北京斯年智驾科技有限公司 | 一种任务派发方法、装置、电子设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770402B (zh) * | 2008-12-29 | 2012-12-05 | 中国移动通信集团公司 | MapReduce系统中的Map任务调度方法、设备及系统 |
CN103336714A (zh) * | 2013-06-20 | 2013-10-02 | 北京奇虎科技有限公司 | 一种作业调度方法和装置 |
CN104281492A (zh) * | 2013-07-08 | 2015-01-14 | 无锡南理工科技发展有限公司 | 一种异构环境下的Hadoop任务公平调度方法 |
US10153979B2 (en) * | 2014-03-31 | 2018-12-11 | Hewlett Packard Enterprise Development Lp | Prioritization of network traffic in a distributed processing system |
CN104102794A (zh) * | 2014-08-06 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种hadoop调度法的优化方法 |
-
2016
- 2016-01-18 CN CN201610031403.1A patent/CN106980532A/zh active Pending
- 2016-04-22 WO PCT/CN2016/080057 patent/WO2016197716A1/zh active Application Filing
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052443A (zh) * | 2017-10-30 | 2018-05-18 | 北京奇虎科技有限公司 | 一种测试任务调度方法、装置、服务器及存储介质 |
CN109189581A (zh) * | 2018-09-20 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种作业调度方法和装置 |
CN109189581B (zh) * | 2018-09-20 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种作业调度方法和装置 |
CN110287015A (zh) * | 2019-06-27 | 2019-09-27 | 四川中电启明星信息技术有限公司 | Pc自动化作业被动调度方法 |
CN111949408A (zh) * | 2020-08-16 | 2020-11-17 | 广东奥飞数据科技股份有限公司 | 一种边缘计算资源的动态分配方法 |
CN111930514A (zh) * | 2020-09-14 | 2020-11-13 | 北京英迈琪科技有限公司 | 一种资源优化分配方法及系统 |
CN112181645A (zh) * | 2020-09-21 | 2021-01-05 | 中国建设银行股份有限公司 | 一种资源调度的方法、装置、设备及存储介质 |
CN113568725A (zh) * | 2021-07-14 | 2021-10-29 | 中国科学院计算技术研究所 | 深度学习作业优先级调度方法及深度学习作业系统 |
CN113946430A (zh) * | 2021-12-20 | 2022-01-18 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
CN113946430B (zh) * | 2021-12-20 | 2022-05-06 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2016197716A1 (zh) | 2016-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980532A (zh) | 一种作业调度方法和装置 | |
CN107659433B (zh) | 一种云资源调度方法及设备 | |
CN104657220B (zh) | 混合云中基于截止时间和费用约束的调度模型及方法 | |
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
Ben-Yehuda et al. | Expert: Pareto-efficient task replication on grids and a cloud | |
CN106919449A (zh) | 一种计算任务的调度控制方法及电子设备 | |
CN109861850B (zh) | 一种基于sla的无状态云工作流负载均衡调度的方法 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN103336714A (zh) | 一种作业调度方法和装置 | |
CN103729246A (zh) | 一种任务调度方法和装置 | |
CN108628672A (zh) | 任务调度方法、系统、终端设备及存储介质 | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
CN111782355A (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
Xiao et al. | A priority based scheduling strategy for virtual machine allocations in cloud computing environment | |
KR101770191B1 (ko) | 자원 할당 방법 및 그 장치 | |
CN102402461A (zh) | 一种基于作业规模的均衡调度方法 | |
CN113495779A (zh) | 一种任务调度方法和装置、任务执行系统 | |
CN104598304B (zh) | 用于作业执行中的调度的方法和装置 | |
CN108255595A (zh) | 一种数据任务的调度方法、装置、设备及可读存储介质 | |
CN108958919A (zh) | 一种云计算中有期限约束的多dag任务调度费用公平性评估模型 | |
CN107797870A (zh) | 一种云计算数据资源调度方法 | |
CN112099932A (zh) | 边缘计算中软-硬截止期任务卸载的最佳定价方法及系统 | |
CN115129481B (zh) | 一种计算资源分配方法、装置及电子设备 | |
CN105955816A (zh) | 一种事件调度方法及装置 | |
CN107885589B (zh) | 一种作业调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170725 |
|
WD01 | Invention patent application deemed withdrawn after publication |