一种针对IO密集型任务的调度方法及系统技术方案

技术编号:39036943 阅读:9 留言:0更新日期:2023-10-10 11:50
本发明专利技术涉及数据处理技术领域,具体公开了一种针对IO密集型任务的调度方法及系统,包括:任务管理模块接收任务配置,录入任务代码、节点偏好,并将任务代码中的IO操作替换为统一的IO接口;任务调度模块接收任务执行节点上报的节点负载和进度信息,维护活跃节点的负载情况;任务调度模块接收任务执行请求,根据任务偏好、节点负载任务和过往执行耗时情况,得到适合执行的节点,并下发任务;任务执行节点执行接收到的任务请求,并在任务完成后上报任务结果以及执行耗时情况给任务调度模块;任务调度模块将任务执行结果保存,并将任务执行耗时更新到任务管理模块。本发明专利技术既提高了CPU的利用率,提高了吞吐量,又避免了平均耗时的明显增加。增加。增加。

【技术实现步骤摘要】
一种针对IO密集型任务的调度方法及系统


[0001]本专利技术属于数据处理
,特别涉及一种针对IO密集型任务的调度方法及系统。

技术介绍

[0002]随着计算机技术的不断发展,业务对任务调度系统的效率要求也越来越高,如果在有限资源的场景下尽可能提高吞吐量,是一个亟待解决的问题。尤其是在任务中包含较多IO操作的时候(如网络收发、磁盘读写),任务容易阻塞在IO操作上,造成CPU资源的浪费;另外,如果想通过增加任务队列来弥补CPU空闲的损失,又会因为调度系统无法预知IO操作阻塞的时长,从而可能造成任务堆积。
[0003]以上
技术介绍
内容的公开仅用于辅助理解本专利技术的专利技术构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述
技术介绍
不应当用于评价本申请的新颖性和创造性。

技术实现思路

[0004]本专利技术的目的在于提供一种针对IO密集型任务的调度方法及系统,能够结合节点负载来控制任务队列,既提高了CPU的利用率,提高了吞吐量,又避免了平均耗时的明显增加,放置任务堆积。
[0005]为实现上述目的,本专利技术提供采用如下技术方案:一种针对IO密集型任务的调度方法,包括以下步骤:S1、接收任务的配置信息,录入任务代码、以及节点偏好,并将任务代码中IO操作部分替换成统一的IO接口;S2、根据任务执行节点上报的各个节点负载和进度信息,维护所有活跃节点负载情况;S3、接收任务执行请求,根据任务的节点偏好、节点负载情况以及过往执行耗时情况,选择合适执行节点,并下发任务;S4、执行节点执行任务执行请求,并在任务完成后上报任务结果以及执行耗时,同时将任务结果进行保存、将任务执行耗时进行更新作为过往执行耗时。
[0006]优选的,上述步骤S1中的IO接口包括HTTP请求封装接口和DB请求封装接口。
[0007]优选的,所述HTTP请求封装接口支持GET和POST请求,接收body、headers以及cookies参数。
[0008]优选的,所述DB请求封装接口支持Postgredb和MySQL,各自包含一个建立连接方法CreateConnection,需要提供DB的host、ip、用户名以及密码,且还提供一个query方法。
[0009]优选的,上述步骤S4具体步骤以下:S41、根据任务的节点偏好和节点负载情况,选择合适的执行节点;S42、将任务追加到该执行节点就绪任务队列中;S43、执行节点运行中的任务数未达到上线前,从就绪任务队列中的任务取出并执行;若就绪任务队列为空,则请求下发新任务;S44、任务执行到IO接口时,执行节点重新获得控制权,将任务加入到等待任务队列;S45、IO接口返回后,执行节点将该任务从等待任务队列移动到就绪任务队列;S46、任务全部完成后,执行节点负责上报任务完成信息、并更新IO操作耗时以及总体耗时,最后
删除该任务。
[0010]优选的,上述步骤S45中,每个所述执行节点运行一个daemon程序,所述daemon程序负责将该任务挂起,并且根据先进先出原则决定从就绪队列选择一个任务,或者请求下发新任务执行。
[0011]一种针对IO密集型任务的调度系统,用于实现上述的的调度方法,包括任务管理模块、任务调度模块以及任务执行节点:所述任务管理模块包括配置管理单元和特性管理单元,所述配置管理单元用于管理每个调度任务的静态配置信息;所述特性管理单元用于管理每个调度任务的动态信息;所述任务调度模块包括节点管理单元、任务分发单元以及结果管理单元;所述节点管理单元用于接收所有节点上报的负载和任务完成度信息,为任务分发提供依据;所述任务分发单元用于将任务分发到合适的节点;所述结果管理单元用于接收任务执行节点返回的任务结果和任务消耗时间以及IO占比;所述任务执行节点包括IO操作代理单元、执行管理单元以及进度负载管理单元;所述IO操作代理单元接管修改后的任务代码执行过程中的IO操作;所述执行管理单元,用于从就绪队列中获取待执行的任务进行执行;所述进度负载管理单元,用于更新各个任务的进度,并上报给任务调度模块。
[0012]优选的,上述步骤S2任务配置信息包括任务的静态配置信息和动态信息;所述静态信息包括任务代码和任务偏好;所述动态信息包括平均耗时和平均IO占比。
[0013]优选的,所述进度负载管理单元还把任务队列数量、进度、任务执行节点的CPU、内存信息上报到任务调度模块。
[0014]优选的,所述执行管理单元具体为:如果遇到IO操作代理单元的IO接口,则将当前任务追加到任务阻塞队列末尾,并且从任务就绪队列开头继续获取任务执行。
[0015]与现有的技术相比,本专利技术具有如下有益效果:本专利技术中,通过将任务代码封装成统一的IO接口,且并结合执行节点负载来控制任务队列,既提高了CPU的利用率,提高了吞吐量,又避免了平均耗时的明显增加。
[0016]本专利技术中,执行节点中提供IO操作封装接口的实现,提供两种类型的接口:HTTP请求接口和DB请求接口,任务执行节点能够将任务在即将阻塞在IO之前将任务挂起,放入阻塞队列,从而不至于阻塞线程,且能够将任务进入IO等待队列中,大大提高了吞吐量。
附图说明
[0017]图1是本专利技术中调度方法流程图。
[0018]图2是本专利技术调度系统框架图。
具体实施方式
[0019]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0020]在本专利技术的描述中,需要说明的是,术语“中心”、“纵向”、“横向”“上”、“下”、“前”、“后”“左”、“右”、“竖直”、“水平”、“顶”、“底”、“顶部”、“底部”、“顶面”、“底面”、“内”、“外”、“内侧”、“外侧”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0021]在本专利技术的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到术语“第一”、“第二”、“第三”只是用于描述目的以及区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
[0022]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“设置”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对IO密集型任务的调度方法,其特征在于,包括以下步骤:S1、接收任务的配置信息,录入任务代码、以及节点偏好,并将任务代码中IO操作部分替换成统一的IO接口;S2、根据任务执行节点上报的各个节点负载和进度信息,维护所有活跃节点负载情况;S3、接收任务执行请求,根据任务的节点偏好、节点负载情况以及过往执行耗时情况,选择合适执行节点,并下发任务;S4、执行节点执行任务执行请求,提供IO接口的实现,并在任务完成后上报任务结果以及执行耗时,同时将任务结果进行保存、将任务执行耗时进行更新作为过往执行耗时。2.根据权利要求1所述的一种针对IO密集型任务的调度方法,其特征在于,上述步骤S4中的IO接口的实现包括HTTP请求封装接口和DB请求封装接口。3.根据权利要求2所述的一种针对IO密集型任务的调度方法,其特征在于,所述HTTP请求封装接口支持GET和POST请求,接收body、headers以及cookies参数。4.根据权利要求2所述的一种针对IO密集型任务的调度方法,其特征在于,所述DB请求封装接口支持Postgredb和MySQL,各自包含一个建立连接方法CreateConnection,需要提供DB的host、ip、用户名以及密码,且还提供一个query方法。5.根据权利要求1所述的一种针对IO密集型任务的调度方法,其特征在于,上述步骤S4具体步骤以下:S41、根据任务的节点偏好和节点负载情况,选择合适的执行节点;S42、将任务追加到该执行节点就绪任务队列中;S43、执行节点运行中的任务数未达到上线前,从就绪任务队列中的任务取出并执行;若就绪任务队列为空,则请求下发新任务;S44、任务执行到IO接口时,执行节点重新获得控制权,将任务加入到等待任务队列;S45、IO接口返回后,执行节点将该任务从等待任务队列移动到就绪任务队列;S46、任务全部完成后,执行节点负责上报任务完成信息、并更新IO操作耗时以及总体耗时,最后删除该任务。6.根据权利要求...

【专利技术属性】
技术研发人员:黄云杨程覃迪唐红艳曾民钊钟方富杨友盛孙钟晓农怡静陈奕宏
申请(专利权)人:广西计算中心有限责任公司
类型:发明
国别省市:

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

1