CN108446169A - 一种作业调度方法及装置 - Google Patents
一种作业调度方法及装置 Download PDFInfo
- Publication number
- CN108446169A CN108446169A CN201710084410.2A CN201710084410A CN108446169A CN 108446169 A CN108446169 A CN 108446169A CN 201710084410 A CN201710084410 A CN 201710084410A CN 108446169 A CN108446169 A CN 108446169A
- Authority
- CN
- China
- Prior art keywords
- task
- waiting
- moment
- line mode
- upper limit
- 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
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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种作业调度方法及装置,包括:对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;比较所述第一时刻点与所述第一作业的等待时刻上限;在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。本申请能够结合等待队列中作业自身的运行情况及其等待状态下其他作业的运行情况对等待队列中的作业进行合理调度,从而达到提升分布式系统吞吐率和资源使用率的目的。
Description
技术领域
本发明涉及分布式计算技术领域,尤其涉及一种作业调度方法及装置。
背景技术
分布式系统分为离线模式和在线模式,其中,离线模式可以采用批处理(Batch)调度模式处理作业(job),在线模式可以使用先进先出(AON,All-or-Nothing)调度模式处理作业。其中,在线模式处理Job的速度快,但需要消耗系统内存,离线模式处理速度相对较慢,但是不会过于依赖内存,主要使用磁盘。由于磁盘的价格高于内存的价格,为提高集群资源的整体利用率、尽可能的降低Job的运行时间,目前很多分布式系统选用了在线离线混跑的方式处理作业。
在线模式采用AON调度模式,在资源紧张时只能将待调度的作业放入等待队列进行等待,在资源充足时再进行调度。由于等待队列采用先进先出(FIFO)策略,因此,一旦出现AON请求无法满足的作业,会导致其后续提交的所有作业都被加入等待队列,从而极大影响了在线模式下分布式系统的吞吐率和资源利用率。
相关技术中,对于等待队列中的作业会设置一个固定的等待时长上限,如果作业的等待时长超过所述等待时长上限,则将所述作业直接转为离线运行。但实际上,一个作业很可能在所述等待时长上限之后的较短时间内即可拿到足够资源,而转为离线模式可能会比在线模式下等待较短时间之后再运行要消耗更多的时间和资源。即便是相同的作业在不同的时间点提交,如果当时等待队列中作业很多,很可能等待一段时间后依然无法等到资源。
因此,由于每个作业的运行情况各不相同且其等待状态下其他作业的运行情况也不同,通过设置一个固定的等待时长上限来调度等待队列中的每个作业是不合理的,可能会导致分布式系统在一个作业上消耗更多的时间和资源,从而降低分布式系统的吞吐率和资源利用率。
发明内容
本申请提供一种作业调度方法及装置,能够实现等待队列中作业的合理调度,从而提升分布式系统的处理效率和资源利用率。
本申请采用如下技术方案:
一种作业调度方法,包括:
对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较所述第一时刻点与所述第一作业的等待时刻上限;
在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
其中,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点,包括:
根据所述第一作业之前所有作业中未结束任务的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;其中,所述任务信息至少包括:未结束任务的运行时间、实例数量及每个实例的运行状态。
其中,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点,包括:
根据在线模式下所述第一作业之前所有作业中未结束任务的任务信息,预估所述未结束任务的任务结束时刻及其对应的可释放资源数量;
根据所述任务结束时刻及其对应的可释放资源数量、以及当前的可用资源数量,确定可用资源满足所述第一作业需求的第一时刻点。
其中,根据在线模式下所述第一作业之前所有作业的任务信息,预估所述所有作业中未结束任务的任务结束时刻及其对应的可释放资源数量,包括:
根据所述未结束任务的运行时间以及当前时刻点,得到所述未结束任务的任务结束时刻;
根据所述未结束任务的实例数量以及每个实例的运行状态,得到所述未结束任务中未结束运行的实例数量,并基于所述未结束任务中未结束运行的实例数量确定所述未结束任务的可释放资源数量。
其中,还包括:以预定义的数据结构保存所述未结束任务的任务结束时刻和释放资源数量。
其中,还包括:以直方图的形式存储所述未结束任务的任务结束时刻及释放资源数量。
其中,还包括:根据所述第一作业的离线模式运行数据和在线模式运行数据,确定所述第一作业的等待时刻上限。
其中,所述第一作业的离线模式运行数据,包括:所述第一作业中各任务的离线模式运行时间信息;所述第一作业的在线模式运行数据,包括:所述第一作业中各任务的在在线模式运行时间信息;所述确定所述第一作业的等待时刻上限,包括:根据所述第一作业中各任务的离线模式运行时间信息和在线模式运行时间信息,确定所述第一作业的离线模式运行时长和在线模式运行时长;根据所述第一作业的提交时刻、所述离线模式运行时长以及所述在线模式运行时长,确定所述第一作业的等待时刻上限。
其中,还包括:从所述第一作业的提交请求中解析出用户预置的等待时长取值;根据所述等待时长取值,确定所述第一作业的等待时刻上限。
其中,还包括:预先配置所述第一作业的等待时长阈值;根据所述等待时长阈值,确定所述第一作业的等待时刻下限;在当前的可用资源不满足所述第一作业的需求且当前时刻点不大于所述第一作业的等待时刻下限时,将所述第一作业加入到所述等待队列中或保持所述第一作业在所述等待队列中的等待状态。
其中,还包括:在所述第一时刻点不大于所述第一作业的等待时刻上限时,保持所述第一作业在所述等待队列中的等待状态。
其中,还包括:定时重新预估所述第一时刻点;定时重新比较所述第一时刻点与所述第一作业的等待时刻上限。
一种作业调度装置,包括:
预估模块,用于对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较模块,用于比较所述第一时刻点与所述第一作业的等待时刻上限;
处理模块,用于在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
其中,所述预估模块,包括:
估算子模块,用于根据在线模式下所述第一作业之前所有作业的任务信息,预估所述所有作业中未结束任务的任务结束时刻及其对应的可释放资源数量;
确定子模块,用于根据所述任务结束时刻及其对应的可释放资源数量、以及当前的可用资源数量,确定可用资源满足所述第一作业需求的第一时刻点。
其中,还包括:存储模块,用于保存所述未结束任务的任务结束时刻和释放资源数量。
其中,还包括:确定模块,用于根据所述第一作业的离线模式运行数据和在线模式运行数据,确定所述第一作业的等待时刻上限。
其中,所述确定模块,还用于从所述第一作业的提交请求中解析出用户预置的等待时长预设值;根据所述等待时长预设值,确定所述第一作业的等待时刻上限。
其中,所述处理模块,还用于在当前的可用资源不满足所述第一作业的需求且当前时刻点不大于预先配置的所述第一作业的等待时刻下限时,将所述第一作业加入到所述等待队列中或保持所述第一作业在所述等待队列中的等待状态。
其中,所述处理模块,还用于在所述第一时刻点不大于所述第一作业的等待时刻上限时,保持所述第一作业在所述等待队列中的等待状态。
一种作业调度装置,包括处理器和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:
对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较所述第一时刻点与所述第一作业的等待时刻上限;
在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
本申请包括以下优点:通过作业的任务信息预估可用资源满足第一作业需求的第一时刻点,在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行,如此,可结合等待队列中作业自身的运行情况及其等待状态下其他作业的运行情况对等待队列中的作业进行合理调度,从而达到提升分布式系统吞吐率和资源使用率的目的。
本申请还包括以下优点:基于第一作业的历史运行数据来确定所述第一作业的等待时刻上限,使得第一作业的调度依据更适合第一作业自身的运行情况,而不是使用一个固定值作为等待时长上限,有效提升等待队列中各作业调度的合理性,从而提升分布式系统的处理效率和资源利用率。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。
附图说明
图1为本申请作业调度方法的流程示意图;
图2为本申请直方图示例图;
图3为本申请作业调度方法中以直方图形式得到任务结束时刻及可释放资源数量的流程示意图;
图4为本申请作业调度方法的具体实现流程示意图;
图5是本申请作业调度装置的组成结构示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一个典型的配置中,客户端或服务器的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
实施例一
本实施例提供一种作业调度方法,如图1所示,包括如下步骤:
步骤101,对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
步骤102,比较所述第一时刻点与所述第一作业的等待时刻上限;
步骤103,在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
本实施例中,在被调度作业处于等待状态时,可随时根据被调度作业的自身情况以及当前其他作业的运行情况,预估可用资源能够满足被调度作业需求的第一时刻点,如果所述第一时刻点大于所述第一作业的等待时刻上限则直接将所述第一作业转至离线模式运行,如此,可以根据被调度作业自身的运行情况及当前其他作业的运行情况实现等待队列中各作业的合理调度,提升了分布式系统中的处理效率和资源利用率。
实际应用中,分布式系统会运行在一个有多个物理节点组成的集群上。本实施例的方法通过该所述集群中的主物理节点(Master)来实现。如果所述集群结构中主物理节点是通过多个指定物理节点(Client)并行执行一定算法来实现,那么本实施例的方法可通过该多个指定节点并行执行。
实际应用中,作业提交之后,若资源充足会立即被调度不会等待。如果当前的可用资源不满足所述作业的请求,会将所述作业加入到在线模式的等待队列中。本实施例中,对于在线模式下等待队列中的第一作业,可以根据所述第一作业之前所有作业中未结束任务的任务信息,预估可用资源满足所述第一作业需求的第一时刻点。其中,所述任务信息至少包括:未结束任务的运行时间、实例数量及每个实例的运行状态。
在分布式系统中,一个作业中包含多个任务,每个任务包含多个实例,实例是作业的最小单元,每个实例对应一个实际的物理进程。实例跟资源存在一定的对应关系,因此,一个作业中有多少个实例就需要多少个资源。分布式系统中每个作业的运行情况可以通过运行日志查询,所述运行日志中包含有作业中各个任务的任务信息,每条任务信息对应一个任务,可以包括任务标识(例如任务ID)、作业标识(例如作业ID)、任务运行状态(如标识任务运行中的信息、标识任务运行结束的信息等)、任务的运行时间(如,运行开始时刻、运行结束时刻等信息)、实例数量以及每个实例的运行状态(如,标识实例运行中的信息、标识实例运行结束的信息等)。
在一些实现方式中,可以采用如下方式预估所述第一时刻点:根据在线模式下所述第一作业之前所有作业中未结束任务的任务信息,预估所述未结束任务的任务结束时刻及其对应的可释放资源数量;根据所述任务结束时刻及其对应的可释放资源数量、以及当前的可用资源数量,确定可用资源满足所述第一作业需求的第一时刻点。如此,通过建立每个任务的任务结束时刻与可释放资源数量之间的映射关系,可实时得到每个任务结束时刻的可用资源数量,进而确定可用资源能够满足第一作业需求的第一时刻点。
具体的,可以根据未结束任务的运行时间以及当前时刻点,得到所述未结束任务的任务结束时刻;根据所述未结束任务的实例数量以及每个实例的运行状态,得到所述未结束任务中未结束运行的实例数量,并基于所述未结束任务中未结束运行的实例数量确定所述未结束任务的可释放资源数量。本实施例中,通过任务中的实例数量来预估任务结束后能够释放的资源数量,精确到更高。
本实施例中,在预估各作业中未结束任务的任务结束时刻和可释放资源数量之后,还可以将各作业中未结束任务的任务结束时刻和可释放资源数量进行对应保存,以便可以通过查询所保存的这些信息来预估所述第一时刻点,有利于提升处理效率。
本实施例中,所述未结束任务的任务结束时刻和可释放资源数量可以采用多种方式保存。例如,可以通过预定义的数据结构来保存所述未结束任务的任务结束时刻和释放资源数量。所述数据结构至少可以包括如下部分:记录任务结束时刻的第一部分;记录可释放资源数量的第二部分;记录任务标识(如任务ID和作业ID)的第三部分等。再例如,可以以直方图的形式记录所述未结束任务的任务结束时刻及释放资源数量。当然,实际应用中还可采用除上述形式之外的其他形式存储任务结束时刻及其对应的可释放资源数量等信息。
在一些实时方式中,任务结束时刻和可释放资源数量保存之后,还可以根据各任务的运行状态实时进行更新。在有任务结束运行时,将该任务对应的任务结束时刻和可释放资源数量删除,一方面可确保所保存的数据最符合当前作业的运行情况,有利于提升第一时刻点的预估准确度;另一方面,及时清除不需要的数据,节省存储空间。
本实施例中,根据第一作业的等待时长上限确定第一作业的等待时刻上限。例如,可以以第一作业的提交时刻与等待时长上限之和得到第一作业的等待时刻上限。
其中,第一作业的等待时长上限可以通过多种方式得到。例如,等待时长上限可以由用户设定,在第一作业提交之前设置在所示第一作业的提交请求中。再例如,可以根据第一作业的历史运行数据,确定第一作业的在线模式运行时长和离线模式运行时长,进而根据第一作业的在线模式运行时长和离线模式运行时长来确定所述作业的等待时长上限。
在一些实现方式中,所述历史运行数据中可以包含离线模式运行数据和在线模式运行数据,可以根据所述第一作业的离线模式运行数据和在线模式运行数据确定所述第一作业的等待时刻上限。
其中,所述第一作业的离线模式运行数据可以包括:所述第一作业中各任务的离线模式运行时间信息;所述第一作业的在线模式运行数据可以包括:所述第一作业中各任务的在在线模式运行时间信息。
具体的,可以根据所述第一作业中各任务的离线模式运行时间信息和在线模式运行时间信息,确定所述第一作业的离线模式运行时长和在线模式运行时长;根据所述第一作业的提交时刻、所述离线模式运行时长以及所述在线模式运行时长,确定所述第一作业的等待时刻上限。
例如,可以以提交时刻和离线模式运行时长减在线模式运行时长得到的差值之和作为所述第一作业的等待时刻上限,这样,只要判断出第一作业的实际等待时长大于离线模式运行时长与在线模式运行时长之差时即将第一作业转至离线模式下运行。
再例如,可以预先设置等待时长阈值,确定所述等待时长阈值和离线模式运行时长减在线模式运行时长的差值之间的最大值,以该最大值与第一作业的提交时刻之和作为所述第一作业的等待时刻上限。当然,实际应用中还可采用其他方式确定第一作业的等待时刻上限,对此,本文不作限制。
实际应用中,分布式系统运行的作业逻辑相同,只有输入数据量不同。根据输入数据执行作业时,会将所述作业的在线模式运行数据和离线模式运行数据记录在数据库中。本实施例中可以根据数据库中记录的运行数据获得一个作业在离线模式下的运行时长和在线模式下的运行时长。
在一些实现方式中,根据作业的历史运行数据和当前的输入数据量,预估所述作业的在线模式运行时长和离线模式运行时长。也就是说,可以根据作业的历史运行数据和输入数据量预估本轮执行所述作业时在线模式的运行时长和离线模式的运行时长。例如,可以根据历史运行数据估算作业中每个任务的运行时长,再由每个任务的运行时长之和得到所述作业的运行时长。
实际应用中,作业的历史运行数据可以包括:作业的输入数据量、任务数目、每个任务中的实例数目、每个任务的运行时间。例如,可以根据所述作业中各任务的运行时间估算所述作业的单个实例运行时长。由于作业的输入数据量与其实例数目成正比,因此,可以根据本轮所述作业的输入数据量估算本轮所述作业的实例总数,以实例总数与所述单个实例运行时长之乘积可以估算得到本轮所述作业的运行时长。在线模式运行时长和离线模式运行时长均可通过上述方式估算。此外,也可采用其他方式估算,本文不作限制。对于正在运行的作业,可以从运行日志中获得正在运行的作业的任务信息,包括哪些任务已经结束、哪些任务正在运行等信息。对于正在运行的任务,还可以获得该任务需要运行多长时间(即运行时长)、该任务中还有哪些实例正在运行等信息,根据这些信息可以得到作业的任务信息可以估算出其运行任务信息,运行任务信息至少可以包括运行任务的任务结束时刻、可释放资源数量、任务ID、作业ID等。其中,运行任务的任务结束时刻可以由当前时刻与该任务的运行时长得到,可释放资源数量可以由该任务的运行实例数量得到。如此,可以预估作业的结束时刻及其释放资源数量,进而估计资源满足等待队列中作业需求的时刻。
在一些实现方式中,还可以从所述第一作业的提交请求中解析出用户预置的等待时长取值;根据所述等待时长取值,确定所述第一作业的等待时刻上限。例如,可以以提交时刻和所述等待时长取值之和作为所述第一作业的等待时刻上限;再例如,可以预先设置等待时长阈值,确定所述等待时长阈值和用户预置的所述等待时长取值之间的最大值,以该最大值与第一作业的提交时刻之和作为所述第一作业的等待时刻上限。当然,实际应用中还可采用其他方式确定第一作业的等待时刻上限,对此,本文不作限制。
本实施例中,为确保第一作业在提交至在线模式至少可以加入等待队列,还可以预先配置所述第一作业的等待时长阈值;可以根据所述等待时长阈值,确定所述第一作业的等待时刻下限;在当前的可用资源不满足所述第一作业的需求且当前时刻点不大于所述第一作业的等待时刻下限时,将所述第一作业加入到所述等待队列中或保持所述第一作业在所述等待队列中的等待状态。
本实施例中,在所述第一时刻点不大于所述第一作业的等待时刻上限时,保持所述第一作业在所述等待队列中的等待状态。
在一些实现方式中,可以定时重新预估所述第一时刻点;定时重新比较所述第一时刻点与所述第一作业的等待时刻上限,以便实时对等待队列中作业的等待状态进行调整,有利于提升分布式系统的处理效率和资源利用率。
示例一
下面以示例的形式详细说明预估任务结束时刻及其对应的可释放资源数量的过程及其直方图的保存方式。
在对等待队列中的作业执行调度处理之前,可以预先估算该作业之前的作业中未结束任务的任务结束时刻及结束时的可释放资源数量,并转换成直方图,便于保存。
如图2所示为直方图示例,直方图中每个柱体对应一个未结束任务,柱体的宽度表示该未结束任务的可释放资源数量,柱体对应的时刻点为所述未结束任务的任务结束时刻。
如图3所示,可以通过如下流程估算任务结束时刻及其对应的可释放资源数量并转换为直方图元素:
步骤301,获取包含待调度作业之前所有作业的作业列表;
步骤302,遍历所述作业列表中的一个作业;
步骤303,从所述作业的历史运行数据中,获取所述作业在线模式下各任务的运行时间信息;
步骤304,遍历所述作业中的一个未结束任务;
步骤305,根据所述任务的运行时间信息中运行总时长减已运行时长的差值、以及当前时刻,计算所述任务的任务结束时刻,以所述任务中未结束的实例数量确定所述任务的可释放资源数量并填入直方图;
如果直方图中已经存在对应所述任务结束时刻的柱体元素,那么将所述任务的可释放资源数量与该柱体元素上已有任务的可释放资源数量合并;
如果直方图中不存在对应所述任务结束时刻的柱体元素,那么新建一个柱体元素,以该柱体元素记录所述任务的可释放资源数量。
步骤306,判断所述作业的所有未结束任务是否均已遍历,如果是,则继续步骤307,否则继续步骤304;
步骤307,判断是否所述作业列表中的所有作业都已遍历,如果是,则结束当前流程,否则返回步骤302遍历下一个作业。
示例二
下面以具体示例来详细说明本实施例中作业的等待时刻下限和等待时刻上限的确定方式。
实际应用中,可以通过下式确定等待时刻下限和等待时刻上限:
等待时刻下限=作业提交时刻+等待时长阈值;
等待时刻上限=作业提交时刻+max(等待时长阈值,Tx2-Tx1);
其中,Tx2表示所述作业的离线模式运行时长,Tx1表示所述作业的在在线模式运行时长,所述等待时长阈值可以是一个经验值,可以通过对在线模式下各作业的历史运行数据进行统计分析得到,例如,等待时长阈值可以取为10秒。
实际应用中,作业提交到在线模式时,若当前资源充足,会立即被调度不会有等待。如果当前资源不满足所述作业的AON请求,会将所述作业添加到在线模式下的等待队列中。本实施例中,每个作业设置一个等待时刻下限,以确保在线模式下所述作业能够至少加入到在线模式的等待队列中,等待一定时长之后再确定是否需要转至离线模式运行,一方面可兼容在线模式的原有处理流程,使得本实施例的方法更具兼容性,另一方面作业提交至线模式之后如不能及时调度则至少等待一定时长,也可更大限度的提升分布式系统的处理速度和吞吐率,有利于提升物理集群的整体利用率。
示例三
下面以示例的方式详细说明等待队列中作业调度的具体实现过程。
如图4所示,等待队列中作业调度的具体实现过程可以包括如下步骤:
步骤401,设置用于存储作业中未结束任务的相关信息的任务关联容器(RunningTaskSet),所述任务关联容器中设置有多个比较器(comparer),所述比较器与未结束任务一一对应,一个所述比较器记录一条任务的相关信息,该相关信息至少包含所述任务的任务结束时刻、可释放资源数量和任务ID。在所述任务关联容器中,多个所述比较器按照其记录的任务结束时刻(endTime)排序,任务结束时刻(endTime)越小排序越靠后。如果有任务结束运行,则将所述任务对应的比较器从所述任务关联容器中移除。
步骤402,遍历等待队列中的一个作业;
步骤403,将当前时刻与所述作业的等待时刻上限进行比较;
步骤404,如果当前时刻大于所述作业的等待时刻上限,则从所述等待队列中移除所述作业,并将所述作业转至离线模式进行批处理;
步骤405,如果当前时刻不大于所述作业的等待时刻上限,则通过从后往前的顺序遍历所述任务关联容器,确定资源完全满足所述作业需求的第一时刻点;
步骤406,将所述第一时刻点与所述作业的等待时刻上限进行比较;
步骤407,如果所述第一时刻点大于所述作业的等待时刻上限,则从所述等待队列中移除所述作业,并将所述作业转至离线模式进行批处理;
步骤408,如果所述第一时刻点不大于所述作业的等待时刻上限,则将所述作业继续保留在所述等待队列中,继续等待,并更新所述任务关联容器;
其中,更新所述任务关联容器的过程可以包括:
预估所述作业中每个任务的任务结束时刻和可释放资源数量,并将所述作业中各任务的任务结束时刻和可释放资源数量添加到所述任务关联容器中:在所述任务关联容器中添加对应所述作业中各任务的比较器,每个比较器中记录相应任务的任务结束时刻、可释放资源数量以及任务ID;
从所述任务关联容器中删除所述第一时刻点之前时刻的所有比较,将所述第一时刻点对应的比较器中包含的可释放资源数量更新为所有任务的可释放资源数量与所述作业将取走的资源数量之差;
步骤409,判断所述作业是否为所述等待队列中的最后一个作业,如果是,则结束当前流程,否则返回步骤402,继续遍历所述等待队列中的下一个作业。
实际应用中,等待队列中的作业会按照优先级排序,优先级高的作业排在前,优先级较低的作业排在后。本实施例中,按照等待队列的排序依次对每个作业进行遍历,从排在第一位的作业开始遍历,直至最后一个作业遍历完成。
本实施例中,如果当前时刻点大于所述等待时刻下限,那么将所述作业加入到所述等待队列中,通过图4所示处理流程确定所述作业继续等待还是转至离线模式;如果当前时刻点大于所述等待时刻上限,那么从所述等待队列中移除所述作业并转至离线模式,通过图4所示处理流程等待作业处理流程确定所述作业继续等待还是转至离线模式。实际应用中,对于等待队列,可以定时执行一次图4所示流程,以确定等待队列中各作业是继续等待还是直接转至离线模式。
本实施例的方法可适用于如下场景:对于快速处理小型作业的分布式系统的在线模式调度,可提升该分布式系统的物理集群整体利用率,提高分布式系统的处理速度和吞吐率。
实施例二
一种作业调度装置,如图5所示,可以包括:
预估模块51,用于对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较模块52,用于比较所述第一时刻点与所述第一作业的等待时刻上限;
处理模块53,用于在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
在一些实现方式中,所述预估模块51,可以包括:
估算子模块511,用于根据在线模式下所述第一作业之前所有作业的任务信息,预估所述所有作业中未结束任务的任务结束时刻及其对应的可释放资源数量;
确定子模块512,用于根据所述任务结束时刻及其对应的可释放资源数量、以及当前的可用资源数量,确定可用资源满足所述第一作业需求的第一时刻点。
在一些实现方式中,上述装置还可包括:存储模块54,用于保存所述未结束任务的任务结束时刻和释放资源数量。
在一些实现方式中,上述装置还可包括:确定模块55,用于根据所述第一作业的离线模式运行数据和在线模式运行数据,确定所述第一作业的等待时刻上限。
在一些实现方式中,确定模块55还可用于从所述第一作业的提交请求中解析出用户预置的等待时长预设值;根据所述等待时长预设值,确定所述第一作业的等待时刻上限。
在一些实现方式中,所述处理模块53,还可用于在当前的可用资源不满足所述第一作业的需求且当前时刻点不大于预先配置的所述第一作业的等待时刻下限时,将所述第一作业加入到所述等待队列中或保持所述第一作业在所述等待队列中的等待状态。
实际应用中,所述处理模块53,还可用于在所述第一时刻点不大于所述第一作业的等待时刻上限时,保持所述第一作业在所述等待队列中的等待状态。
本实施例中,所述预估模块51、比较模块52、处理模块53、存储模块54、确定模块55分别可以是软件、硬件或两者的结合。
本实施例的上述装置可以但不限于设置于分布式系统所对应物理集群的主节点中,也可以采用分布式方式设置在所述物理集群的多个物理节点中。
本实施例的其它实现细节可参考实施例一。
实施例三
一种作业调度装置,包括处理器和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:
对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较所述第一时刻点与所述第一作业的等待时刻上限;
在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
本实施例的上述装置可以但不限于设置于分布式系统所对应物理集群的主节点中,也可以采用分布式方式设置在所述物理集群的多个物理节点中。
本实施例的其它实现细节可参考实施例一。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。
Claims (20)
1.一种作业调度方法,包括:
对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较所述第一时刻点与所述第一作业的等待时刻上限;
在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
2.根据权利要求1所述的作业调度方法,其特征在于,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点,包括:
根据所述第一作业之前所有作业中未结束任务的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;其中,所述任务信息至少包括:未结束任务的运行时间、实例数量及每个实例的运行状态。
3.根据权利要求1或2所述的作业调度方法,其特征在于,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点,包括:
根据在线模式下所述第一作业之前所有作业中未结束任务的任务信息,预估所述未结束任务的任务结束时刻及其对应的可释放资源数量;
根据所述任务结束时刻及其对应的可释放资源数量、以及当前的可用资源数量,确定可用资源满足所述第一作业需求的第一时刻点。
4.根据权利要求3所述的作业调度方法,其特征在于,根据在线模式下所述第一作业之前所有作业的任务信息,预估所述所有作业中未结束任务的任务结束时刻及其对应的可释放资源数量,包括:
根据所述未结束任务的运行时间以及当前时刻点,得到所述未结束任务的任务结束时刻;
根据所述未结束任务的实例数量以及每个实例的运行状态,得到所述未结束任务中未结束运行的实例数量,并基于所述未结束任务中未结束运行的实例数量确定所述未结束任务的可释放资源数量。
5.根据权利要求3或4所述的作业调度方法,其特征在于,还包括:
以预定义的数据结构保存所述未结束任务的任务结束时刻和释放资源数量。
6.根据权利要求3或4所述的作业调度方法,其特征在于,还包括:
以直方图的形式存储所述未结束任务的任务结束时刻及释放资源数量。
7.根据权利要求1所述的作业调度方法,其特征在于,还包括:
根据所述第一作业的离线模式运行数据和在线模式运行数据,确定所述第一作业的等待时刻上限。
8.根据权利要求7所述的作业调度方法,其特征在于,
所述第一作业的离线模式运行数据,包括:所述第一作业中各任务的离线模式运行时间信息;
所述第一作业的在线模式运行数据,包括:所述第一作业中各任务的在在线模式运行时间信息;
所述确定所述第一作业的等待时刻上限,包括:
根据所述第一作业中各任务的离线模式运行时间信息和在线模式运行时间信息,确定所述第一作业的离线模式运行时长和在线模式运行时长;
根据所述第一作业的提交时刻、所述离线模式运行时长以及所述在线模式运行时长,确定所述第一作业的等待时刻上限。
9.根据权利要求1所述的作业调度方法,其特征在于,还包括:
从所述第一作业的提交请求中解析出用户预置的等待时长取值;
根据所述等待时长取值,确定所述第一作业的等待时刻上限。
10.根据权利要求1所述的作业调度方法,其特征在于,还包括:
预先配置所述第一作业的等待时长阈值;
根据所述等待时长阈值,确定所述第一作业的等待时刻下限;
在当前的可用资源不满足所述第一作业的需求且当前时刻点不大于所述第一作业的等待时刻下限时,将所述第一作业加入到所述等待队列中或保持所述第一作业在所述等待队列中的等待状态。
11.根据权利要求1所述的作业调度方法,其特征在于,还包括:
在所述第一时刻点不大于所述第一作业的等待时刻上限时,保持所述第一作业在所述等待队列中的等待状态。
12.根据权利要求11所述的作业调度方法,其特征在于,还包括:
定时重新预估所述第一时刻点;
定时重新比较所述第一时刻点与所述第一作业的等待时刻上限。
13.一种作业调度装置,包括:
预估模块,用于对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较模块,用于比较所述第一时刻点与所述第一作业的等待时刻上限;
处理模块,用于在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
14.根据权利要求13所述的作业调度装置,其特征在于,所述预估模块,包括:
估算子模块,用于根据在线模式下所述第一作业之前所有作业的任务信息,预估所述所有作业中未结束任务的任务结束时刻及其对应的可释放资源数量;
确定子模块,用于根据所述任务结束时刻及其对应的可释放资源数量、以及当前的可用资源数量,确定可用资源满足所述第一作业需求的第一时刻点。
15.根据权利要求14所述的作业调度装置,其特征在于,还包括:
存储模块,用于保存所述未结束任务的任务结束时刻和释放资源数量。
16.根据权利要求13所述的作业调度装置,其特征在于,还包括:
确定模块,用于根据所述第一作业的离线模式运行数据和在线模式运行数据,确定所述第一作业的等待时刻上限。
17.根据权利要求16所述的作业调度装置,其特征在于,
所述确定模块,还用于从所述第一作业的提交请求中解析出用户预置的等待时长预设值;根据所述等待时长预设值,确定所述第一作业的等待时刻上限。
18.根据权利要求13所述的作业调度装置,其特征在于,
所述处理模块,还用于在当前的可用资源不满足所述第一作业的需求且当前时刻点不大于预先配置的所述第一作业的等待时刻下限时,将所述第一作业加入到所述等待队列中或保持所述第一作业在所述等待队列中的等待状态。
19.根据权利要求13所述的作业调度装置,其特征在于,
所述处理模块,还用于在所述第一时刻点不大于所述第一作业的等待时刻上限时,保持所述第一作业在所述等待队列中的等待状态。
20.一种作业调度装置,包括处理器和存储器,其特征在于,所述存储器存储有计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如下方法:
对于在线模式下等待队列中的第一作业,根据所述第一作业之前所有作业的任务信息,预估可用资源满足所述第一作业需求的第一时刻点;
比较所述第一时刻点与所述第一作业的等待时刻上限;
在所述第一时刻点大于所述第一作业的等待时刻上限时,将所述第一作业转为离线模式运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710084410.2A CN108446169B (zh) | 2017-02-16 | 2017-02-16 | 一种作业调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710084410.2A CN108446169B (zh) | 2017-02-16 | 2017-02-16 | 一种作业调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446169A true CN108446169A (zh) | 2018-08-24 |
CN108446169B CN108446169B (zh) | 2022-04-26 |
Family
ID=63190741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710084410.2A Active CN108446169B (zh) | 2017-02-16 | 2017-02-16 | 一种作业调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446169B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198755A (zh) * | 2019-12-23 | 2020-05-26 | 曙光信息产业(北京)有限公司 | 一种基于slurm作业调度系统的预计费装置和方法 |
CN112130994A (zh) * | 2020-09-16 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 资源分配方法、装置、电子设备和存储介质 |
CN112486658A (zh) * | 2020-12-17 | 2021-03-12 | 华控清交信息科技(北京)有限公司 | 一种任务调度方法、装置和用于任务调度的装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336714A (zh) * | 2013-06-20 | 2013-10-02 | 北京奇虎科技有限公司 | 一种作业调度方法和装置 |
US20130339965A1 (en) * | 2012-06-18 | 2013-12-19 | International Business Machines Corporation | Sequential cooperation between map and reduce phases to improve data locality |
CN103473345A (zh) * | 2013-09-23 | 2013-12-25 | 深圳市融创天下科技股份有限公司 | 一种预估时长的方法 |
CN103645947A (zh) * | 2013-11-25 | 2014-03-19 | 北京航空航天大学 | Mil-std-1553b总线监控及数据分析系统 |
CN104598311A (zh) * | 2015-01-26 | 2015-05-06 | 上海卓悠网络科技有限公司 | 一种面向Hadoop的实时作业公平调度的方法和装置 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN105718312A (zh) * | 2016-01-20 | 2016-06-29 | 华南理工大学 | 面向生物基因测序计算任务的多队列回填作业调度方法 |
CN106095545A (zh) * | 2016-06-01 | 2016-11-09 | 东软集团股份有限公司 | 任务调度方法及装置 |
CN106156115A (zh) * | 2015-04-07 | 2016-11-23 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
CN106293950A (zh) * | 2016-08-23 | 2017-01-04 | 成都卡莱博尔信息技术股份有限公司 | 一种面向集群系统的资源优化管理方法 |
CN106406987A (zh) * | 2015-07-29 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 一种集群中的任务执行方法及装置 |
-
2017
- 2017-02-16 CN CN201710084410.2A patent/CN108446169B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130339965A1 (en) * | 2012-06-18 | 2013-12-19 | International Business Machines Corporation | Sequential cooperation between map and reduce phases to improve data locality |
CN103336714A (zh) * | 2013-06-20 | 2013-10-02 | 北京奇虎科技有限公司 | 一种作业调度方法和装置 |
CN103473345A (zh) * | 2013-09-23 | 2013-12-25 | 深圳市融创天下科技股份有限公司 | 一种预估时长的方法 |
CN103645947A (zh) * | 2013-11-25 | 2014-03-19 | 北京航空航天大学 | Mil-std-1553b总线监控及数据分析系统 |
CN104598311A (zh) * | 2015-01-26 | 2015-05-06 | 上海卓悠网络科技有限公司 | 一种面向Hadoop的实时作业公平调度的方法和装置 |
CN106156115A (zh) * | 2015-04-07 | 2016-11-23 | 中国移动通信集团云南有限公司 | 一种资源调度方法及装置 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN106406987A (zh) * | 2015-07-29 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 一种集群中的任务执行方法及装置 |
CN105718312A (zh) * | 2016-01-20 | 2016-06-29 | 华南理工大学 | 面向生物基因测序计算任务的多队列回填作业调度方法 |
CN106095545A (zh) * | 2016-06-01 | 2016-11-09 | 东软集团股份有限公司 | 任务调度方法及装置 |
CN106293950A (zh) * | 2016-08-23 | 2017-01-04 | 成都卡莱博尔信息技术股份有限公司 | 一种面向集群系统的资源优化管理方法 |
Non-Patent Citations (2)
Title |
---|
RAFAEL FERREIRA DA SILVA等: "Online Task Resource Consumption Prediction for Scientific Workflows", 《PARALLEL PROCESSING LETTERS》 * |
朱洁 等: "Hadoop下资源匹配最大集作业调度算法", 《计算机应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198755A (zh) * | 2019-12-23 | 2020-05-26 | 曙光信息产业(北京)有限公司 | 一种基于slurm作业调度系统的预计费装置和方法 |
CN112130994A (zh) * | 2020-09-16 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 资源分配方法、装置、电子设备和存储介质 |
CN112486658A (zh) * | 2020-12-17 | 2021-03-12 | 华控清交信息科技(北京)有限公司 | 一种任务调度方法、装置和用于任务调度的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108446169B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446176B (zh) | 一种任务分配方法、计算机可读存储介质及终端设备 | |
WO2017045553A1 (zh) | 一种任务分配方法和系统 | |
US9178824B2 (en) | Method and system for monitoring and analysis of network traffic flows | |
US20160292116A1 (en) | Quality of service for internal i/os using internal flow mechanism | |
US20100275212A1 (en) | Concurrent data processing in a distributed system | |
US20200219028A1 (en) | Systems, methods, and media for distributing database queries across a metered virtual network | |
CN107370667A (zh) | 多线程并行处理方法和装置、可读介质和存储控制器 | |
US10884667B2 (en) | Storage controller and IO request processing method | |
US9244737B2 (en) | Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN106095940A (zh) | 一种基于任务负载的数据迁移方法 | |
CN108446169A (zh) | 一种作业调度方法及装置 | |
US20120158451A1 (en) | Dispatching Tasks in a Business Process Management System | |
CN107908471B (zh) | 一种任务并行处理方法和处理系统 | |
CN112114960B (zh) | 一种适应互联网场景的遥感影像并行集群处理的调度策略 | |
JP6686371B2 (ja) | データステージング管理システム | |
CN112231098A (zh) | 任务处理方法、装置、设备及存储介质 | |
Monil et al. | QoS-aware virtual machine consolidation in cloud datacenter | |
CN116302453B (zh) | 量子电子混合平台的任务调度方法及装置 | |
US9367361B2 (en) | Information processing device, method for processing information, and non-transitory computer-readable recording medium having stored therein information processing program | |
Birke et al. | Meeting latency target in transient burst: A case on spark streaming | |
Magalhaes et al. | REPO: A Microservices Elastic Management System for Cost Reduction in the Cloud | |
CN111522647B (zh) | 一种最小化租赁成本的公有云服务租赁方法 | |
CN109189581A (zh) | 一种作业调度方法和装置 | |
CN115827178A (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 |