基于多因子协同的任务调度方法、装置、及存储介质制造方法及图纸

技术编号:26596822 阅读:27 留言:0更新日期:2020-12-04 21:18
本发明专利技术提供了一种基于多因子协同的任务调度方法、装置、及存储介质,其中,方法包括:唤起待调度任务,并将待调度任务加入等待队列;根据各待调度任务的重要程度,为各待调度任务定义优先级;计算各调度子服务器的第一调度因子和第二调度因子,以及相关平台的第三调度因子,其中,第一调度因子与调度子服务器的资源情况相关,第二调度因子与调度子服务器的负载情况相关,第三调度因子与相关平台的资源情况相关;根据各待调度任务的优先级,以及第一调度因子、第二调度因子、第三调度因子,将各待调度任务向各调度子服务器调度。本发明专利技术能够达到调度及时的效果,并且不会发生高并发任务积压、调度子服务器高负载所导致的内存崩溃的现象。

【技术实现步骤摘要】
基于多因子协同的任务调度方法、装置、及存储介质
本专利技术涉及计算机应用
,尤其是指一种基于多因子协同的任务调度方法、装置、及存储介质。
技术介绍
任务调度是操作系统的重要组成部分,而对于实时操作系统而言,任务调度会直接影响其实时性能。目前,任务调度的算法类型可分为两种,一种是基于时间驱动的任务调度算法,常用的工具有quartz、linux的crontab以及JAVA自带的Timer等;另一种是基于事件驱动的任务调度算法。基于时间驱动的任务调度算法主要是根据预先配置的时间,在特定的时间做特定的操作。基于事件驱动的任务调度算法主要是按照事件的优先级及先后顺利,对任务的执行顺序进行安排。对于企业的数据处理来说,后台每天都会有成千上万的数据采集、抽取、加工、分析等任务。这些任务要求能够按时并且稳定地执行。现有的开源调度产品,只能按时调度任务,无法顾及资源、权限等其他因素。同时,由于机器性能、高并发、大数据量等因素,往往会出现任务调度不及时,高并发任务积压、调度执行服务器高负载所导致的内存崩溃等现象。因此,有必要对上述任务调度的方法进行改进。
技术实现思路
本专利技术所要解决的技术问题是:提供一种基于多因子协同的任务调度方法、装置、调度设备及存储介质,旨在解决现有的任务调度方法出现任务调度不及时,高并发任务积压、调度执行服务器高负载所导致的内存崩溃的现象的问题。为了解决上述技术问题,本专利技术采用的技术方案为:本专利技术实施例第一方面提供了一种基于多因子协同的任务调度方法,所述方法用于将各待调度任务分别调度至各调度子服务器,以运行所述待调度任务,所述方法,包括:唤起所述待调度任务,并将所述待调度任务加入等待队列;根据各所述待调度任务的重要程度,为各所述待调度任务定义优先级;计算各所述调度子服务器的第一调度因子和第二调度因子,以及相关平台的第三调度因子,其中,所述第一调度因子与调度子服务器的资源情况相关,所述第二调度因子与调度子服务器的负载情况相关,所述第三调度因子与相关平台的资源情况相关;根据各所述待调度任务的优先级,以及所述第一调度因子、第二调度因子、第三调度因子,将各所述待调度任务向各调度子服务器调度。在一些实施方案中,所述计算各所述调度子服务器的第一调度因子,具体包括:获取各所述调度子服务器的剩余CPU或剩余内存;分别判断各所述调度子服务器的剩余CPU或剩余内存是否低于预设阈值;将所述剩余CPU或剩余内存低于预设阈值的调度子服务器定义为饱和调度子服务器,所述饱和调度子服务器不接收待调度任务;将所述剩余CPU或剩余内存大于或等于预设阈值的调度子服务器的剩余CPU或剩余内存乘以第一权重系数,得到各所述调度子服务器的第一调度因子。在一些实施方案中,所述计算各所述调度子服务器的第二调度因子,具体包括:获取各所述调度子服务器正在运行的任务数;基于各所述调度子服务器完成一任务的平均时间,计算各所述调度子服务器正在运行的任务的预计完成时间总数;根据各所述调度子服务器正在运行的任务数,以及各所述调度子服务器正在运行的任务的预计完成时间总数,生成各所述调度子服务器的负载因数,其中,所述调度子服务器正在运行的任务的预计完成时间总数相同时,所述调度子服务器正在运行的任务数越多,所述负载因数越小,所述调度子服务器正在运行的任务数相同时,所述调度子服务器正在运行的任务的预计完成时间总数越大,所述负载因数越小;将各所述调度子服务器的负载因数乘以第二权重系数,得到各所述调度子服务器的第二调度因子。在一些实施方案中,所述计算相关平台的第三调度因子,具体包括:获取所述相关平台的资源上限值及当前资源值;根据所述相关平台的资源上限值及当前资源值,生成资源因数,所述相关平台的当前资源值越接近资源上限值,所述资源因数越小;将所述资源因数乘以第三权重系数,得到所述相关平台的第三调度因子。在一些实施方案中,所述根据各所述待调度任务的优先级,以及所述第一调度因子、第二调度因子、第三调度因子,将各所述待调度任务向各调度子服务器调度,具体包括:根据各所述待调度任务的优先级,得到各所述待调度任务被调度的先后顺序;将所述第一调度因子乘以第四权重系数,加上所述第二调度因子乘以第五权重系数,再加上所述第三调度因子乘以第六权重系数,得到各所述调度子服务器的调度分值;根据各所述调度子服务器的调度分值的大小,得到各所述调度子服务器接收待调度任务的先后顺序;根据各所述待调度任务被调度的先后顺序,以及各所述调度子服务器接收待调度任务的先后顺序,将各所述待调度任务向各调度子服务器调度。在一些实施方案中,所述第四权重系数、第五权重系数及第六权重系数的总和为1。在一些实施方案中,所述根据各所述待调度任务的重要程度,为各所述待调度任务定义优先级之后,还包括:对各所述调度子服务器进行高频心跳检测,得到僵死的调度子服务器,所述僵死的调度子服务器不接收待调度任务。在一些实施方案中,所述唤起所述待调度任务,具体包括:按照预设的时间唤起所述待调度任务;或者,按照预设的事件唤起所述待调度任务。本专利技术实施例第二方面提供了一种基于多因子协同的任务调度装置,包括:唤起模块,用于唤起所述待调度任务,并将所述待调度任务加入等待队列;优先级定义模块,用于根据各所述待调度任务的重要程度,为各所述待调度任务定义优先级;计算模块,用于计算各所述调度子服务器的第一调度因子和第二调度因子,以及相关平台的第三调度因子,其中,所述第一调度因子与调度子服务器的资源情况相关,所述第二调度因子与调度子服务器的负载情况相关,所述第三调度因子与相关平台的资源情况相关;调度模块,用于根据各所述待调度任务的优先级,以及所述第一调度因子、第二调度因子、第三调度因子,将各所述待调度任务向各调度子服务器调度。本专利技术实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,所述可执行指令被执行时执行如本专利技术实施例第一方面所述的方法。从上述描述可知,与现有技术相比,本专利技术的有益效果在于:在唤起待调度任务后,不是立即将待调度任务调度至调度子服务器进行运行,而是将唤起的待调度任务加入等待队列,并为等待队列中的各待调度任务定义优先级。同时,基于与调度子服务器的资源情况相关第一调度因子、与调度子服务器的负载情况相关的第二调度因子、与相关平台的资源情况相关的第三调度因子及各待调度任务的优先级,将等待队列中的各待调度任务依次调度至各调度子服务器。本专利技术在唤起待调度任务后,综合考虑了各待调度任务的重要程度,以及各调度子服务器的资源、负载情况,以及相关平台的资源情况,使得在整个任务的调度过程中,能够达到调度及时的效果,并且不会发生高并发任务积压、调度子服务器高负载所导致的内存崩溃的现象。附图说明为了更清楚地说明本专利技术实施本文档来自技高网...

【技术保护点】
1.一种基于多因子协同的任务调度方法,其特征在于,所述方法用于将各待调度任务分别调度至各调度子服务器,以运行所述待调度任务,所述方法,包括:/n唤起所述待调度任务,并将所述待调度任务加入等待队列;/n根据各所述待调度任务的重要程度,为各所述待调度任务定义优先级;/n计算各所述调度子服务器的第一调度因子和第二调度因子,以及相关平台的第三调度因子,其中,所述第一调度因子与调度子服务器的资源情况相关,所述第二调度因子与调度子服务器的负载情况相关,所述第三调度因子与相关平台的资源情况相关;/n根据各所述待调度任务的优先级,以及所述第一调度因子、第二调度因子、第三调度因子,将各所述待调度任务向各调度子服务器调度。/n

【技术特征摘要】
1.一种基于多因子协同的任务调度方法,其特征在于,所述方法用于将各待调度任务分别调度至各调度子服务器,以运行所述待调度任务,所述方法,包括:
唤起所述待调度任务,并将所述待调度任务加入等待队列;
根据各所述待调度任务的重要程度,为各所述待调度任务定义优先级;
计算各所述调度子服务器的第一调度因子和第二调度因子,以及相关平台的第三调度因子,其中,所述第一调度因子与调度子服务器的资源情况相关,所述第二调度因子与调度子服务器的负载情况相关,所述第三调度因子与相关平台的资源情况相关;
根据各所述待调度任务的优先级,以及所述第一调度因子、第二调度因子、第三调度因子,将各所述待调度任务向各调度子服务器调度。


2.如权利要求1所述的基于多因子协同的任务调度方法,其特征在于,所述计算各所述调度子服务器的第一调度因子,具体包括:
获取各所述调度子服务器的剩余CPU或剩余内存;
分别判断各所述调度子服务器的剩余CPU或剩余内存是否低于预设阈值;
将所述剩余CPU或剩余内存低于预设阈值的调度子服务器定义为饱和调度子服务器,所述饱和调度子服务器不接收待调度任务;
将所述剩余CPU或剩余内存大于或等于预设阈值的调度子服务器的剩余CPU或剩余内存乘以第一权重系数,得到各所述调度子服务器的第一调度因子。


3.如权利要求2所述的基于多因子协同的任务调度方法,其特征在于,所述计算各所述调度子服务器的第二调度因子,具体包括:
获取各所述调度子服务器正在运行的任务数;
基于各所述调度子服务器完成一任务的平均时间,计算各所述调度子服务器正在运行的任务的预计完成时间总数;
根据各所述调度子服务器正在运行的任务数,以及各所述调度子服务器正在运行的任务的预计完成时间总数,生成各所述调度子服务器的负载因数,其中,所述调度子服务器正在运行的任务的预计完成时间总数相同时,所述调度子服务器正在运行的任务数越多,所述负载因数越小,所述调度子服务器正在运行的任务数相同时,所述调度子服务器正在运行的任务的预计完成时间总数越大,所述负载因数越小;
将各所述调度子服务器的负载因数乘以第二权重系数,得到各所述调度子服务器的第二调度因子。


4.如权利要求3所述的基于多因子协同的任务调度方法,其特征在于,所述计算相关平台的第三调度因子,具体包括:
获取所述相关平台的资源上限值及当前资源值;
根据所述相关平台的资源上限值及当前资源值,生成资源因数,所述相关平台的当前资源值越接近资源上限值...

【专利技术属性】
技术研发人员:陈国礼彭传强杨静何国庆罗赞陈友
申请(专利权)人:深圳天源迪科信息技术股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1