一种作业的调度方法及装置与流程

文档序号:11250708
一种作业的调度方法及装置与流程

本发明涉及资源管理技术领域,特别是涉及一种作业的调度方法及装置。



背景技术:

随着分布式计算系统的广泛应用,如何对作业进行合适的调度,以提高工作效率是一个比较现实的问题。

为了对作业进行合适的调度,目前使用的作业调度系统的工作方式为:根据当前个分布式节点的资源情况和作业所需的资源情况,选择出满足作业要求的分布式节点,再将作业调度至该分布式节点。

现有技术仅考虑了当前时刻各个分布式节点的计算资源量的情况,可能会把需要较强计算能力分布式节点的作业调度至计算能力比较差的分布式节点,导致当前作业所需的运行时间较长,速度慢。



技术实现要素:

本发明实施例的目的在于提供一种作业的调度方法及装置,以提高作业的运行速度。具体技术方案如下:

为达到上述目的,本发明实施例提供了一种作业的调度方法,应用于分布式计算系统的任务管理器,所述方法包括:

获得当前作业所需的计算资源;

获得当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源;

根据当前作业所需的计算资源和当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源,确定出当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长;

将所述作业在运行该作业耗时最短的时刻调度至对应的分布式节点;

将作业队列中,当前作业的下一作业确定为当前作业,并返回执行所述获得当前作业所需的计算资源的步骤。

可选的,所述获得当前作业所需的计算资源,包括:

获得用户针对所述当前作业设定的计算资源;或,

根据所述当前作业确定出需要的计算资源。

可选的,所述分布式节点,为:

一个分布式节点服务器或包括至少两个分布式节点服务器的服务器组。

可选的,所述获得当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源,为:

针对当前时刻的未来预设时长内每一时刻,排除所述作业队列中,所述当前作业之前的其他作业需要占用的计算资源后,根据各个分布式节点的硬件配置确定出在该时刻各个分布式节点的能够提供的计算资源。

可选的,所述将所述作业在运行该作业耗时最短的时刻调度至对应的分布式节点,包括:

从所述当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长中,选择出所述当前作业所需时长与该作业等待时长之和最短的第一时刻;

在所述第一时刻,将所述当前作业调度至所述第一时刻对应的分布式节点。

为达到上述目的,本发明实施例还提供了一种作业的调度装置,应用于分布式计算系统的任务管理器,所述装置包括:第一获得模块、第二获得模块、第一确定模块、调度模块和第二确定模块,其中,

所述第一获得模块,用于获得当前作业所需的计算资源;

所述第二获得模块,用于获得当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源;

所述第一确定模块,用于根据当前作业所需的计算资源和当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源,确定出当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长;

所述调度模块,用于将所述作业在运行该作业耗时最短的时刻调度至对应的分布式节点;

所述第二确定模块,用于将作业队列中,当前作业的下一作业确定为当前作业,并触发第一获得模块。

可选的,所述第一获得模块,具体用于:

获得用户针对所述当前作业设定的计算资源;或,

根据所述当前作业确定出需要的计算资源。

可选的,所述分布式节点,为:

一个分布式节点服务器或包括至少两个分布式节点服务器的服务器组。

可选的,所述第二获得模块,具体用于:

针对当前时刻的未来预设时长内每一时刻,排除所述作业队列中,所述当前作业之前的其他作业需要占用的计算资源后,根据各个分布式节点的硬件配置确定出在该时刻各个分布式节点的能够提供的计算资源。

可选的,所述调度模块,具体用于:

从所述当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长中,选择出所述当前作业所需时长与该作业等待时长之和最短的第一时刻;

在所述第一时刻,将所述当前作业调度至所述第一时刻对应的分布式节点。

本发明实施例提供的一种作业的调度方法及装置,应用于分布式计算系统的任务管理器,所述方法包括:根据当前作业所需的计算资源的大小和当前时刻的未来预设时长内每一时刻各个分布式节点的计算能力,确定出当前时刻的未来预设时长内每一时刻各个分布式节点计算完成该作业所需时长;将所述作业在计算完成该作业耗时最短的时刻调度至对应节点;将作业队列中,当前作业的下一作业确定为当前作业,并返回执行所述确定出当前时刻的未来预设时长内每一时刻各个分布式节点计算完成该作业所需时长的步骤。

应用本发明实施例,综合各个分布式节点提供的计算资源量和计算性能,并在未来预设时长内运行当前作业所需时间最短的时刻,将当前作业调度至对应的分布式节点,减少了运行当前作业的时间,提高了作业的运行速度。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种作业的调度方法的流程示意图;

图2为本发明实施例提供的一种作业的调度装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为解决现有技术问题,本发明实施例提供的一种作业的调度方法及装置,下面首先就本发明实施例提供的一种作业的调度方法进行介绍。

需要说明的是,本发明实施例提供的一种作业的调度方法及装置优选适用于分布式计算系统的任务管理器。

图1为本发明实施例提供的一种作业的调度方法的流程示意图;如图1所示,该方法包括:

S101:获得当前作业所需的计算资源。

具体的,可以获得用户针对所述当前作业设定的计算资源;或,

根据所述当前作业确定出需要的计算资源。

在实际应用中,用户可以设定运行当前作业Y所需的内存为1GB,或者任务管理器根据当前作业的计算量确定出运行当前作业Y所需的内存为1GB。

需要说明的是,计算资源包括但不仅限于内存大小、CPU计算能力、显存、显卡处理能力或者硬盘大小及其组合。

S102:获得当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源。

具体的,分布式节点可以为:一个分布式节点服务器或包括至少两个分布式节点服务器的服务器组。

具体的,还可以针对当前时刻的未来预设时长内每一时刻,排除所述作业队列中,所述当前作业之前的其他作业需要占用的计算资源后,根据各个分布式节点的硬件配置确定出在该时刻各个分布式节点的能够提供的计算资源。

在实际应用中,任务管理器接收用户发送过来的作业后,会根据接收作业的先后顺序形成一个作业队列,假设作业队列中含有作业X、Y、Z,其中作业X已经被调度至B。预设每隔2秒为一个时刻。任务管理器获得当前时刻0:00:00的未来6秒内的3个时刻的分布式节点A、分布式节点C能够提供的内存大小和排除运行作业X所需的计算资源后分布式节点B能够提供的内存大小。

例如,分布式节点A在0:00:02时刻提供的是大小为0.3GB、运行速度为2Mb/s的内存,在0:00:04时刻提供的是大小为0.8GB、运行速度为1Mb/s的内存、在0:00:06时刻提供的是大小为1.5GB、运行速度为1Mb/s的内存;

分布式节点B在排除运行作业X所需的内存后在0:00:02时刻提供的是大小为0.4GB、运行速度为1Mb/s的内存,在0:00:04时刻提供的是大小为1GB、运行速度为2Mb/s的内存,在0:00:06时刻提供的是大小为2GB,运行速度为2Mb/s的内存;

分布式节点C在0:00:02时刻提供的是大小为8GB、运行速度为1Mb/s的内存,在0:00:04时刻提供的是大小为1.2GB、运行速度为2Mb/s的内存,在0:00:06时刻提供的是大小为10GB、运行速度为2Mb/s的内存。

需要强调的是,可以将至少两个分布式节点组成服务器组用于运行各个作业。

S103:根据当前作业所需的计算资源和当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源,确定出当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长。

具体的,根据分布式节点A、B、C在0:00:02时刻、0:00:04时刻、0:00:06时刻能够提供的内存的大小和当前作业Y所需的内存,确定出当前时刻0:00:00的未来1分钟内的3个时刻各个分布式节点运行当前作业Y所需的时长。

例如,在运行当前作业Y需要1GB内存,分布式节点A在0:00:02时刻运行当前作业Y所需时长为1/(0.3*2)=1.67秒、在0:00:04时刻运行当前作业Y所需时长为1/(0.8*1)=1.25秒、在0:00:06时刻运行当前作业Y所需时长为1/(1.5*1)=0.67秒;

分布式节点B在排除运行作业X所需的内存后在0:00:02时刻运行当前作业Y所需时长为1/(0.4*1)=2.5秒、在0:00:04时刻运行当前作业Y所需时长为1/(1*2)=0.5秒、在0:00:06时刻运行当前作业Y所需时长为1/(2*2)=0.25秒;

分布式节点C在0:00:02时刻运行当前作业Y所需时长为1/(8*1)=0.125秒、在0:00:04时刻运行当前作业Y所需时长为1/(1.2*2)=0.42秒、在0:00:06时刻运行当前作业Y所需时长为1/(10*2)=0.05秒。

需要说明的是,用户预先可以通过对分布式节点进行压力测试,得到分布式节点的各项性能指标,包括但不限于硬盘读取速度、内存读取速度、CPU运行速度、网络传输速度。另外,通常情况下,分布式节点运行当前作业所需时间可以包括但不仅限于作业读取的时间、作业运行的时间和运行结果存储的时间。

示例性的,分布式节点在运行当前作业的过程,包括将作业从硬盘读取到内存的步骤、CPU运行当前作业的步骤和运行结果的存储步骤。分布式节点可以根据测试结果和当前作业的数据量确定出将当前作业从硬盘读取到内存的步骤耗时为T1;CPU运行当前作业的步骤耗时为T2;运行结果的存储步骤耗时为T3,则分布式节点运行当前作业所需的时间=T1+T2+T3。

需要强调的是,相邻两个时刻之间的时间间隔包括但不仅限于2秒。

S104:将所述作业在运行该作业耗时最短的时刻调度至对应的分布式节点。

具体的,可以从所述当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长中,选择出所述当前作业所需时长与该作业等待时长之和最短的第一时刻;

在所述第一时刻,将所述当前作业调度至所述第一时刻对应的分布式节点。

在实际应用中,确定出的各个分布式节点运行当前作业所需时长与该作业等待时长之和如下:

分布式节点A在0:00:02时刻运行当前作业Y所需时长与该作业等待时长之和为2+1.67=3.67秒、在0:00:04时刻运行当前作业Y所需时长与该作业等待时长之和为4+1.25=5.25秒、在0:00:06时刻运行当前作业Y所需时长与该作业等待时长之和为6+0.67=6.67秒;

分布式节点B在排除运行作业X所需的内存后在0:00:02时刻运行当前作业Y所需时长与该作业等待时长之和为2+2.5=4.5秒、在0:00:04时刻运行当前作业Y所需时长与该作业等待时长之和为4+0.5=4.5秒、在0:00:06时刻运行当前作业Y所需时长与该作业等待时长之和为6+0.25=6.25秒;

分布式节点C在0:00:02时刻运行当前作业Y所需时长与该作业等待时长之和为2+0.125=2.125秒、在0:00:04时刻运行当前作业Y所需时长与该作业等待时长之和为4+0.42=4.42秒、在0:00:06时刻运行当前作业Y所需时长与该作业等待时长之和为6+0.05=6.05秒。

由以上结果可以确定出分布式节点C在0:00:02时刻运行当前作业Y所需时长与该作业等待时长之和最短。在0:00:02时刻将当前作业Y调度至分布式节点C运行。

需要说明时,当前时刻的未来预设时长内每一时刻可以包括当前时刻。

S105:将作业队列中,当前作业的下一作业确定为当前作业,并返回执行所述获得当前作业所需的计算资源的步骤。

具体的,将当前作业Y的下一作业Z确定为当前作业,并返回执行S101步骤。

应用本发明图1所示实施例,综合各个分布式节点提供的计算资源量和计算性能,并在未来预设时长内运行当前作业所需时间最短的时刻,将当前作业调度至对应的分布式节点,减少了运行当前作业的时间,提高了作业的运行速度。

与图1所示实施例相对应,本发明实施例还提供了那个了一种作业的调度装置

图2为本发明实施例提供的一种作业的调度装置的结构示意图,如图2所示,该装置包括:第一获得模块201、第二获得模块202、第一确定模块203、调度模块204和第二确定模块205,其中,

第一获得模块201,用于获得当前作业所需的计算资源。

具体的,第一获得模块201,具体用于:获得用户针对所述当前作业设定的计算资源;或,根据所述当前作业确定出需要的计算资源。

第二获得模块202,用于获得当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源。

具体的,分布式节点,可以为:

一个分布式节点服务器或包括至少两个分布式节点服务器的服务器组。

在实际应用中,第二获得模块202,具体还用于:

针对当前时刻的未来预设时长内每一时刻,排除所述作业队列中,所述当前作业之前的其他作业需要占用的计算资源后,根据各个分布式节点的硬件配置确定出在该时刻各个分布式节点的能够提供的计算资源。

第一确定模块203,用于根据当前作业所需的计算资源和当前时刻的未来预设时长内每一时刻各个分布式节点能够提供的计算资源,确定出当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长。

调度模块204,用于将所述作业在运行该作业耗时最短的时刻调度至对应的分布式节点。

具体的,调度模块204,具体用于:

从所述当前时刻的未来预设时长内每一时刻各个分布式节点运行该作业所需时长中,选择出所述当前作业所需时长与该作业等待时长之和最短的第一时刻;

在所述第一时刻,将所述当前作业调度至所述第一时刻对应的分布式节点。

第二确定模块205,用于将作业队列中,当前作业的下一作业确定为当前作业,并触发第一获得模块201。

应用本发明图2所示实施例,综合各个分布式节点提供的计算资源量和计算性能,并在未来预设时长内运行当前作业所需时间最短的时刻,将当前作业调度至对应的分布式节点,减少了运行当前作业的时间,提高了作业的运行速度。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1