基于云平台的任务调度方法、云平台及计算机存储介质与流程

文档序号:15615155发布日期:2018-10-09 21:11阅读:178来源:国知局

本发明涉及云计算技术领域,尤其涉及一种基于云平台的任务调度方法、云平台及计算机存储介质。



背景技术:

云计算(cloudcomputing)是分布式计算(distributedcomputing)、并行计算(parallelcomputing)、效用计算(utilitycomputing)、网络存储(networkstoragetechnologies)、虚拟化(virtualization)、负载均衡(loadbalance)、热备冗余(highavailable)等传统计算机和网络技术发展融合的产物,云计算以极小的管理开销,迅速供应用户所需的系统资源与高级服务。云平台部署在大规模服务器集群上,为云计算提供强大的计算能力。云平台中负责任务执行的集群节点称为任务节点。云平台任务调度的主要作用是将用户的资源申请任务通过一定的策略方法分配至各个任务节点,由各个任务节点完成用户的任务请求。然而,现有的任务调度机制比较复杂,造成调度任务的响应时间较长,从而增加用户的等待时间,用户体验不佳。



技术实现要素:

本发明的主要目的在于提供一种基于云平台的任务调度方法、云平台及计算机存储介质,旨在解决现有的任务调度机制比较复杂,造成调度任务的响应时间较长,从而影响用户体验的技术问题。

为实现上述目的,本发明提供一种基于云平台的任务调度方法,所述方法包括:

在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;

根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;

根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

可选地,所述运行状态信息包括硬件状态信息和等待被执行的任务数,所述根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力的步骤包括:

根据各个任务节点的所述硬件状态信息,确定各个任务节点的硬件处理能力;

根据各个任务节点的所述等待被执行的任务数,确定各个任务节点的任务承载能力;

根据各个任务节点的所述硬件处理能力和任务承载能力,确定各个任务节点的任务处理能力。

可选地,所述硬件状态信息包括cpu占用率、内存使用率、网络资源使用率和cpu温度,所述根据各个任务节点的所述硬件状态信息,确定各个任务节点的硬件处理能力的步骤包括:

根据各个任务节点的所述cpu占用率、内存使用率、网络资源使用率和cpu温度,以及预设计算公式,计算各个任务节点的硬件处理能力。

可选地,所述根据各个任务节点的所述等待被执行的任务数,确定各个任务节点的任务承载能力的步骤包括:

确定云平台任务节点集群执行单个任务的平均时间;

根据所述执行单个任务的平均时间和各个任务节点的等待被执行的任务数,计算各个任务节点的预等待时间;

根据所述各个任务节点的预等待时间,确定各个任务节点的任务承载能力。

可选地,所述确定云平台任务节点集群执行单个任务的平均时间的步骤包括:

确定当前周期之前待计算的各个周期;

获取云平台任务节点集群在所述待计算的各个周期内完成的任务总数;

计算云平台任务节点集群在所述待计算的各个周期内的单个任务完成时间;

计算所述单个任务完成时间的平均值,作为云平台任务节点集群执行单个任务的平均时间。

可选地,所述根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点的步骤包括:

对各个任务节点对应的任务处理能力按大小进行排序;

选取任务处理能力最大的任务节点,作为执行所述待调度任务的目标任务节点。

可选地,所述根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点的步骤,还包括:

分别将各个任务节点的任务处理能力与预设任务处理能力阈值进行比对;

将任务处理能力大于预设任务处理能力阈值的任务节点确定为待选任务节点集合,并从所述待选任务节点集合中选取任务节点,作为执行所述待调度任务的目标任务节点。

可选地,所述根据所述各个任务节点的预等待时间,确定各个任务节点的任务承载能力的步骤之前,包括:

分别将各个任务节点的预等待时间与预设等待时间阈值进行比对;

将预等待时间超出预设等待时间阈值的任务节点,作为无效任务节点。

此外,为实现上述目的,本发明还提供一种云平台,所述云平台包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于云平台的任务调度程序,所述基于云平台的任务调度程序被所述处理器执行时实现如下步骤:

在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;

根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;

根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有基于云平台的任务调度程序,所述基于云平台的任务调度程序被处理器执行时实现如下步骤:

在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;

根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;

根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

本发明基于当前周期内云平台各个任务节点的运行状态信息,确定各个任务节点的任务处理能力,依据各个任务节点的任务处理能力调度待调度任务,运算机制简单,能够有效提高任务调度的速度,从而降低用户等待的时间,提升了用户体验。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明基于云平台的任务调度方法方法第一实施例的流程示意图;

图3为本发明基于云平台的任务调度方法方法第一实施例的细化流程示意图;

图4为本发明基于云平台的任务调度方法方法第一实施例的另一细化流程示意图;

图5为本发明基于云平台的任务调度方法方法第二实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端是云平台。

如图1所示,该终端可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于云平台的任务调度程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于云平台的任务调度程序,并执行以下操作:

在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;

根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;

根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

进一步地,所述运行状态信息包括硬件状态信息和等待被执行的任务数,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

根据各个任务节点的所述硬件状态信息,确定各个任务节点的硬件处理能力;

根据各个任务节点的所述等待被执行的任务数,确定各个任务节点的任务承载能力;

根据各个任务节点的所述硬件处理能力和任务承载能力,确定各个任务节点的任务处理能力。

进一步地,所述硬件状态信息包括cpu占用率、内存使用率、网络资源使用率和cpu温度,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

根据各个任务节点的所述cpu占用率、内存使用率、网络资源使用率和cpu温度,以及预设计算公式,计算各个任务节点的硬件处理能力。

进一步地,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

确定云平台任务节点集群执行单个任务的平均时间;

根据所述执行单个任务的平均时间和各个任务节点的等待被执行的任务数,计算各个任务节点的预等待时间;

根据所述各个任务节点的预等待时间,确定各个任务节点的任务承载能力。

进一步地,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

确定当前周期之前待计算的各个周期;

获取云平台任务节点集群在所述待计算的各个周期内完成的任务总数;

计算云平台任务节点集群在所述待计算的各个周期内的单个任务完成时间;

计算所述单个任务完成时间的平均值,作为云平台任务节点集群执行单个任务的平均时间。

进一步地,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

对各个任务节点对应的任务处理能力按大小进行排序;

选取任务处理能力最大的任务节点,作为执行所述待调度任务的目标任务节点。

进一步地,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

分别将各个任务节点的任务处理能力与预设任务处理能力阈值进行比对;

将任务处理能力大于预设任务处理能力阈值的任务节点确定为待选任务节点集合,并从所述待选任务节点集合中选取任务节点,作为执行所述待调度任务的目标任务节点。

进一步地,处理器1001可以调用存储器1005中存储的基于云平台的任务调度程序,还执行以下操作:

分别将各个任务节点的预等待时间与预设等待时间阈值进行比对;

将预等待时间超出预设等待时间阈值的任务节点,作为无效任务节点。

基于上述终端的硬件结构,提出本发明基于云平台的任务调度方法的各个实施例。

参照图2,本发明基于云平台的任务调度方法第一实施例提供一种基于云平台的任务调度方法,所述方法包括:

步骤s10,在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;

本发明实施例中,云平台可以接收用户发送的任务请求,用户发送的任务请求携带有待调度任务。云平台在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息。在本发明实施例中,云平台每间隔时间t,可以接收到各个任务节点发送的运行状态信息,该运行状态信息包括任务节点在当前周期内的硬件状态信息和等待被执行的任务数,硬件状态信息包括各个任务节点在当前周期内的cpu占用率、内存使用率、网络资源使用率和cpu温度。

步骤s20,根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;

之后,云平台根据各个任务节点的运行状态信息,确定各个任务节点的任务处理能力。具体地,参照图3,步骤s20,可以包括:

步骤s21,根据各个任务节点的所述硬件状态信息,确定各个任务节点的硬件处理能力;

步骤s22,根据各个任务节点的所述等待被执行的任务数,确定各个任务节点的任务承载能力;

步骤s23,根据各个任务节点的所述硬件处理能力和任务承载能力,确定各个任务节点的任务处理能力。

在本发明实施例中,可基于任务节点的硬件处理能力和任务承载能力衡量任务节点的任务处理能力。任务节点的硬件处理能力基于任务节点的硬件状态信息确定,也就是基于任务节点在当前周期内的cpu占用率、内存使用率、网络资源使用率和cpu温度进行确定。具体地,参照图4,步骤s21,可以包括:

步骤s210,根据各个任务节点的所述cpu占用率、内存使用率、网络资源使用率和cpu温度,以及预设计算公式,计算各个任务节点的硬件处理能力。

在本发明实施例中,可以针对任务节点的硬件状态信息设置对应的权重值。将cpu占用率所对应的权重用a1表示;将内存使用率所对应的权重用a2表示;将网络资源使用率所对应的权重用a3表示;将cpu温度所对应的权重用a4表示,且a1+a2+a3+a4=1。本发明实施例中预先设置有任务节点的硬件处理能力计算公式,如下所示:

a=a1x1+a2x2+a3x3+a4x4

其中,a表示任务节点的硬件处理能力;

x1表示cpu占用率,x2表示内存使用率,x3表示网络资源使用率,x4表示cpu温度。

当然,若任务节点的硬件状态信息还包括其他因子时,依次类推,可以针对硬件状态信息的每一个因子设置一个权重值,那么,任务节点的硬件处理能力计算公式即为:

a=a1x1+a2x2+a3x3+a4x4+…+anxn

其中,x1、x2、x3...xn分别表示硬件状态信息的各个因子;

a1、a2、a3...an表示硬件状态信息各个因子对应的权重大小,且a1+a2+a3+...+an=1。

由此,基于各个任务节点的cpu占用率、内存使用率、网络资源使用率和cpu温度,以及上述硬件处理能力计算公式,即可分别计算任意一个任务节点对应的硬件处理能力,从而得到各个任务节点的硬件处理能力。

在本发明实施例中,各个任务节点的任务承载能力基于任务节点的等待被执行的任务数确定。具体地,继续参照图4,步骤s22可以包括:

步骤s220,确定云平台任务节点集群执行单个任务的平均时间;

步骤s221,根据所述执行单个任务的平均时间和各个任务节点的等待被执行的任务数,计算各个任务节点的预等待时间;

步骤s222,根据所述各个任务节点的预等待时间,确定各个任务节点的任务承载能力。

在本发明例中,云平台每间隔时间t,还可以接收到各个任务节点发送的已完成任务总数。云平台可以根据任务节点集群在当前周期之前各个周期t内完成的任务总数,确定云平台任务节点集群执行单个任务的平均时间。基于云平台任务节点集群执行单个任务的平均时间和任意一个任务节点的等待被执行的任务数,即可计算任意一个任务节点若执行当前待调度任务所需等待的时间,定义任意一个任务节点若执行当前待调度任务所需等待的时间为预等待时间,计算预等待时间的计算公式如下:

tw=mt

其中,tw表示预等待时间;

m表示任意一个任务节点的等待被执行的任务数;

t表示云平台任务节点集群执行单个任务的平均时间。

基于云平台任务节点集群执行单个任务的平均时间和任意一个任务节点的等待被执行的任务数,以及上述预等待时间的计算公式,可分别计算任意一个任务节点的预等待时间,由此,即可得到各个任务节点对应的预等待时间。之后,可以针对各个任务节点对应的预等待时间设置对应的权重值,用来表示各个任务节点对应的任务承载能力。

进一步地,将任意一个任务节点对应的硬件处理能力和任务承载能力进行加权计算后,即可确定该任务节点的任务处理能力。需要说明的是,相应权重值的具体数值大小,可以预先设置,也可以根据实际情况进行确定和调整,本发明实施例对此不作限定。

步骤s30,根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

其中,根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的任务节点的步骤,可以包括:

步骤s31,对各个任务节点对应的任务处理能力按大小进行排序;

步骤s32,选取任务处理能力最大的任务节点,作为执行所述待调度任务的目标任务节点。

云计算平台在得到各个任务节点的任务处理能力后,对各个任务节点对应的任务处理能力按照大小进行排序,然后选择任务处理能力最大的任务节点作为执行所述待调度任务的目标任务节点,将待调度任务调度至该任务节点。

根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的任务节点的步骤,还可以包括:

步骤s33,分别将各个任务节点的任务处理能力与预设任务处理能力阈值进行比对;

步骤s34,将任务处理能力大于预设任务处理能力阈值的任务节点确定为待选任务节点集合,并从所述待选任务节点集合中选取任务节点,作为执行所述待调度任务的目标任务节点。

在更多的实施中,还可以预先设置一个任务处理能力阈值,将任务处理能力大于任务处理能力阈值的任务节点确定为待选任务节点集合,由此,可以在待选任务节点集合中随机选择一个任务节点作为执行所述待调度任务的目标任务节点,将待调度任务调度至该任务节点。

本发明实施例基于当前周期内云平台各个任务节点的运行状态信息,确定各个任务节点的任务处理能力,依据各个任务节点的任务处理能力调度待调度任务,运算机制简单,能够有效提高任务调度的速度,从而降低用户等待的时间,提升了用户体验。

进一步地,参照图5,本发明基于云平台的任务调度方法第二实施例提供一种基于云平台的任务调度方法,基于上述图2所示的实施例,步骤s220,可以包括:

步骤s2200,确定当前周期之前待计算的各个周期;

步骤s2201,获取云平台任务节点集群在所述待计算的各个周期内完成的任务总数;

步骤s2202,计算云平台任务节点集群在所述待计算的各个周期内的单个任务完成时间;

步骤s2203,计算所述单个任务完成时间的平均值,作为云平台任务节点集群执行单个任务的平均时间。

在本发明实施例中,为了计算各个任务节点的预等待时间,需确定云平台任务节点集群执行单个任务的平均时间。具体地,云平台每间隔时间t,可以接收到各个任务节点发送的已完成任务总数。为了减少计算量,不影响云平台的性能,不必基于当前周期之前的所有周期,来确定云平台任务节点集群执行单个任务的平均时间,本发明实施例选取当前周期之前任意n个周期作为待计算的周期,且n≥2。针对待计算的周期中的任意一个周期ti,首先基于云平台任务节点集群在ti内完成的任务总数m,计算ti与m的比值,即得到云平台任务节点集群在ti内的单个任务完成时间ti,由此,可得到云平台任务节点集群在待计算的各个周期内的单个任务完成时间,然后计算单个任务完成时间的平均值,作为云平台任务节点集群执行单个任务的平均时间。

在本实施例中,基于当前周期之前各个周期内的完成的任务总数,可以确定云平台任务节点集群执行单个任务的平均时间,由此可以计算各个任务节点的预等待时间,从而确定各个任务节点的任务承载能力。

进一步地,本发明基于云平台的任务调度方法第三实施例提供一种基于云平台的任务调度方法,基于上述图2所示的实施例,步骤s222之前,可以包括:

步骤s223,分别将各个任务节点的预等待时间与预设等待时间阈值进行比对;

步骤s224,将预等待时间超出预设等待时间阈值的任务节点,作为无效任务节点。

在本发明实施例中,当云平台任务节点的预等待时间过长时,说明该任务节点负载较重,为了避免影响该任务节点的性能,保证待调度任务的及时处理,本发明实施例可以预先设置等待时间阈值。云平台在计算得到各个任务节点对应的预等待时间后,分别将各个任务节点的预等待时间与预设等待时间阈值进行比对。对于预等待时间超出预设等待时间阈值的任务节点,说明当前负载较重,不作为处理待调度任务所要考虑的任务节点。需要说明的是,等待时间阈值可以根据实际情况进行灵活设置,本发明实施例对此不作限定。

在本发明实施例中,通过设置等待时间阈值,并将各个任务节点对应的预等待时间与等待时间阈值进行比较,可以有效避免云平台选取负载较重的任务节点作为处理待调度任务的任务节点。

此外,本发明实施例还提出一种计算机存储介质,

本发明计算机存储介质上存储有基于云平台的任务调度程序,所述基于云平台的任务调度程序被处理器执行时实现如下操作:

在接收到待调度任务时,获取当前周期内云平台各个任务节点的运行状态信息;

根据各个任务节点的所述运行状态信息,确定各个任务节点的任务处理能力;

根据各个任务节点的所述任务处理能力,确定执行所述待调度任务的目标任务节点,并将所述待调度任务调度至所述目标任务节点。

本发明计算机存储介质的具体实施例与上述基于云平台的任务调度方法各实施例基本相同,在此不作赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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