一种任务调度方法及装置与流程

文档序号:14990297发布日期:2018-07-20 22:05阅读:134来源:国知局
本发明涉及数据存储技术,尤其涉及一种任务调度方法及装置。
背景技术
:近几年,随着计算机技术以及网络技术的高速发展,分布式存储系统得到了长足的发展。分布式存储系统是由多个存储设备或者服务器(统称为节点)通过网络连接而成,并通过节点间的数据分散布局实现高效低廉的数据存储。分布式存储系统通过存储接口向应用程序提供服务,例如:读、写操作等。分布式存储系统的通用接口可以包括:块存储接口、文件系统接口以及对象存储接口等。在现有的分布式存储系统中,分布式存储系统也会向上层应用程序提供一些基本服务功能,通过通用接口向上层应用程序提供的基本服务功能的任务称为“前端任务”。此外,分布式存储系统也会向上层应用程序提供一些高级服务功能,例如:负载均衡、缓存脏数据回刷、重复数据删除以及数据压缩等。但是,分布式存储系统向上层应用程序提供高级服务功能是不通过通用接口的,不通过通用接口向上层应用程序提供的高级服务功能的任务称为“后台任务”。具体地,前台任务的特征可以有如下两个:第一、前端任务是由上层应用主动发起;第二前台任务是通过分布式存储系统提供的接口进行触发执行的。另外,后台任务的特征也可以有如下两个:第一、后台任务对上层应用透明,即:上层应用对后台任务的执行是不知情的;第二、后台业务的执行不是依靠分布式存储系统提供的接口触发的,是由分布式存储内部触发的。不论是前端任务还是后台任务,都需要一定的系统资源才能运行,这些系统资源包括:内存、cpu、io以及网络带宽等。由于系统资源是有限的,如果不对前端任务和后台任务的执行加以控制,将会造成前端任务和后台任务之间对于系统资源的无序竞争。例如客户端c1正在向磁盘d1进行写数据操作,此时缓存中的脏数据也同时向磁盘d1进行回刷,磁盘d2正在向磁盘d1执行数据均衡,那么,后台任务无疑抢占了本属于前端任务的io资源,后台任务严重干扰了前端任务的执行,其结果是造成客户端c1的本次写入操作时延显著增大,前端任务的性能受到严重的负面影响。因此,分布式存储系统需要对前端任务和后台任务的执行资源进行合理的分配,达到存储服务质量控制(quantityofservice,qos)的目的。在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:在现有的任务调度方法中,针对后台任务设置系统资源上限。该方法虽较好地保证了前端任务执行时所需要的系统资源,但是由于其灵活性欠佳,在系统空闲时后台任务也无法充分利用系统资源,这样不仅浪费了系统资源,而且降低了后台任务的执行效率。技术实现要素:为解决现有存在的技术问题,本发明实施例期望提供一种任务调度方法及装置,不仅可以有效地利用系统资源,而且还可以提高任务调度的灵活性。为达到上述目的,本发明实施例的技术方案是这样实现的:本发明实施例提供了一种任务调度方法,所述方法包括:确定前一时间周期对应的负载指标;根据所述负载指标对当前时间周期内的后台任务进行调度。在上述实施例中,所述确定前一时间周期对应的负载指标,包括:统计所述前一时间周期内已完成任务的第一总数量以及全部已完成任务中满足预设条件的已完成任务的第二总数量;其中,所述预设条件包括:预设时延条件或者预设带宽条件;根据所述第一总数量和所述第二总数量确定所述负载指标;其中,所述负载指标为所述第二总数量占所述第一总数量之比。在上述实施例中,所述前一时间周期内已完成任务包括:前端任务;或者,前端任务和后台任务。在上述实施例中,所述预设时延条件包括:所述已完成任务在所述前一时间周期内的服务时间大于预先设置的延迟门限值;所述预设带宽条件包括:所述已完成任务在所述前一时间周期内的系统带宽小于预先设置的带宽门限值。在上述实施例中,所述根据所述负载指标对当前时间周期内的后台任务进行调度,包括:判断所述负载指标是否小于预先设置的第一阈值;当所述负载指标小于所述第一阈值时,在所述当前时间周期内对全部后台任务进行调度。在上述实施例中,所述方法还包括:当所述负载指标大于等于所述第一阈值时,判断所述负载指标是否小于预先设置的第二阈值;其中,所述第一阈值小于所述第二阈值;当所述负载指标小于所述第二阈值时,在所述当前时间周期内对第一优先级的后台任务进行调度。本发明实施例还提供了一种任务调度装置,所述装置包括:确定单元和调度单元;其中,所述确定单元,用于确定前一时间周期对应的负载指标;所述调度单元,用于根据所述负载指标对当前时间周期内的后台任务进行调度。在上述实施例中,所述确定单元包括:统计子单元和确定子单元;其中,所述统计子单元,用于统计所述前一时间周期内已完成任务的第一总数量以及全部已完成任务中满足预设条件的已完成任务的第二总数量;其中,所述预设条件包括:预设时延条件或者预设带宽条件;所述确定子单元,用于根据所述第一总数量和所述第二总数量确定所述负载指标;其中,所述负载指标为所述第二总数量占所述第一总数量之比。在上述实施例中,所述前一时间周期内已完成任务包括:前端任务;或者,前端任务和后台任务。在上述实施例中,所述预设时延条件包括:所述已完成任务在所述前一时间周期内的服务时间大于预先设置的延迟门限值;所述预设带宽条件包括:所述已完成任务在所述前一时间周期内的系统带宽小于预先设置的带宽门限值。在上述实施例中,所述调度单元包括:判断子单元和调度子单元;其中,所述判断子单元,用于判断所述负载指标是否小于预先设置的第一阈值;所述调度子单元,用于当所述负载指标小于所述第一阈值时,在所述当前时间周期内对全部后台任务进行调度。在上述实施例中,所述判断子单元,还用于当所述负载指标大于等于所述第一阈值时,判断所述负载指标是否小于预先设置的第二阈值;其中,所述第一阈值小于所述第二阈值;所述调度子单元,还用于当所述负载指标小于所述第二阈值时,在所述当前时间周期内对第一优先级的后台任务进行调度。由此可见,本发明实施例的技术方案中,先确定前一时间周期对应的负载指标,然后根据负载指标对当前时间周期内的后台任务进行调度。也就是说,在本发明实施例的技术方案中,可以根据前一时间周期对应的负载指标对当前时间周期内的后台任务进行调度。而现有技术中,针对后台任务设置系统资源上限,其灵活性欠佳,无法充分利用系统资源。因此,和现有技术相比,本发明实施例提出的任务调度方法及装置,不仅可以有效地利用系统资源,而且还可以提高任务调度的灵活性;并且,本发明实施例的技术方案实现简单方便,便于普及,使用范围更广。附图说明图1为本发明实施例中任务调度方法的实现流程示意图;图2为本发明实施例中确定负载指标的实现方法流程示意图;图3为本发明实施例中逻辑阀的实现方法示意图;图4为本发明实施例中任务调度装置的第一组成结构示意图;图5为本发明实施例中任务调度装置的第二组成结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在本发明的具体实施例中,图1为本发明实施例中任务调度方法的实现流程示意图。如图1所示,任务调度方法可以包括以下步骤:步骤101、确定前一时间周期对应的负载指标。在本发明的具体实施例中,可以先判断后台队列中的后台任务是否为空;当后台队列中的后台任务不为空时,可以确定前一时间周期对应的负载指标;当后台队列中的后台任务为空时,可以在当前时间周期内不调度后台任务。具体地,在本发明的具体实施例中,前端任务可以是通过通用接口向上层应用程序提供的基本服务功能的任务;后台任务可以是不通过通用接口向上层应用程序提供的高级服务功能的任务。图2为本发明实施例中确定负载指标的实现方法流程示意图。如图2所示,确定负载指标的方法可以包括以下步骤:步骤201、统计前一时间周期内已完成任务的第一总数量以及全部已完成任务中满足预设条件的已完成任务的第二总数量。在本发明的具体实施例中,可以统计前一时间周期内已完成任务的第一总数量以及全部已完成任务中满足预设条件的已完成任务的第二总数量;其中,预设条件包括:预设时延条件或者预设带宽条件。具体地,预设时延条件包括:已完成任务在前一时间周期内的服务时间大于预先设置的延迟门限值;预设带宽条件包括:已完成任务在前一时间周期内的系统带宽小于预先设置的带宽门限值。也就是说,当已完成任务在前一时间周期内的服务时间大于预先设置的延迟门限值时,可以判定该已完成任务为满足预设条件的已完成任务;或者,当已完成任务在当前时间周期内的系统带宽小于预先设置的带宽门限值时,也可以判定该已完成任务为满足预设条件的已完成任务。较佳地,在本发明的具体实施例中,前一时间周期内已完成任务包括:前端任务;或者,前端任务和后台任务。例如,假设前一时间周期内的前端任务包括:前端任务1、前端任务2和前端任务3;假设前一时间周期内的后台任务包括:后台任务1、后台任务2和后台任务3。在本发明的具体实施例中,已完成任务可以包括:前端任务1、前端任务2和前端任务3;或者,已完成任务也可以包括:前端任务1、前端任务2、前端任务3以及后台任务1、后台任务2和后台任务3。具体地,在本发明的具体实施例中,可以统计前一时间周期内已完成任务的第一总数量以及在前一时间周期内的服务时间大于预先设置的延迟门限值的已完成任务的第二总数量;或者,还可以统计前一时间周期内已完成任务的第一总数量以及在前一时间周期内的系统带宽小于预先设置的带宽门限值的已完成任务的第二总数量。例如,假设前一时间周期内已完成任务包括:前端任务1、前端任务2和前端任务3,在本步骤中,可以在全部前端任务中统计前一时间周期内已完成任务的第一总数量以及在前一时间周期内的服务时间大于预先设置的延迟门限值的已完成任务的第二总数量;或者,还可以在全部前端任务中统计前一时间周期内已完成任务的第一总数量以及在前一时间周期内的系统带宽小于预先设置的带宽门限值的已完成任务的第二总数量。再例如,假设前一时间周期内的已经完成任务包括:前端任务1、前端任务2和前端任务3,以及后台任务1、后台任务2和后台任务3,在本步骤中,可以在全部前端任务和全部后台任务中统计前一时间周期内已完成任务的第一总数量以及在前一时间周期内的服务时间大于预先设置的延迟门限值的已完成任务的第二总数量;或者,还可以在全部前端任务和全部中统计前一时间周期内已完成任务的第一总数量以及在前一时间周期内的系统带宽小于预先设置的带宽门限值的已完成任务的第二总数量。步骤202、根据第一总数量和第二总数量确定负载指标。在本发明的具体实施例中,在确定了前一时间周期内已完成任务的第一总数量以及全部已完成任务中满足预设条件的已完成任务的第二总数量之后,可以根据第一总数量和第二总数量确定负载指标。具体地,可以采用以下公式计算负载指标:负载指标=第二总数量/第一总数量。根据上述的描述可知,通过上述的步骤201~202,可以确定前一时间周期对应的负载指标,然后可以根据负载指标对当前时间周期内的后台任务进行调度。步骤102、根据负载指标对当前时间周期内的后台任务进行调度。在本发明的具体实施例中,可以预先设置各个阈值与后台任务的优先级的对应关系。具体地,各个阈值与后台任务的优先级的对应关系可以如下述表1所示:阈值优先级第二阈值第一优先级第三阈值第二优先级……第m+1阈值第m优先级表1如上述表1所示,第二阈值可以对应第一优先级;第二阈值可以对应第二优先级;…;第m+1阈值可以对应第m优先级m;其中,m为大于等于1的自然数。在本发明的具体实施例中,在确定了前一时间周期对应的负载指标之后,可以根据负载指标对当前时间周期内的后台任务进行调度。具体地,可以先判断负载指标是否小于预先设置的第一阈值;当负载指标小于第一阈值时,可以在当前时间周期内对全部后台任务进行调度;当负载指标大于第一阈值时,可以判断负载指标是否小于预先设置的第二阈值;其中,第一阈值小于第二阈值;当负载指标小于第二阈值时,可以在当前时间周期内对第一优先级的后台任务进行调度;当负载指标大于第二阈值时,可以判断负载指标是否小于预先设置的第三阈值;其中,第二阈值小于第三阈值;当负载指标小于第三阈值时,可以在当前时间周期内对第二优先级的后台任务进行调度;当负载指标大于第三阈值时,可以判断负载指标是否小于预先设置的第四阈值;其中,第三阈值小于第四阈值;当负载指标小于第四阈值时,可以在当前时间周期内对第三优先级的后台任务进行调度。以此类推。例如,假设第1个时间周期p1内全部已完成任务的第一总数量为71个,在第1个时间周期p1内满足预设条件的已完成任务的第二总数量为5个,假设第一阈值为0.1。因此,采用以下公式:负载指标=第二总数量/第一总数量,可以计算出第1个时间周期p1对应的负载指标为0.07,小于第一阈值,可以在当前时间周期内对全部后台任务进行调度。再例如,假设第1个时间周期p1内全部已完成任务的第一总数量为71个,在第1个周期p1内满足预设条件的已完成任务的第二总数量为10个,采用以下公式:负载指标=第二总数量/第一总数量,可以计算出第1个时间周期p1对应的负载指标为0.14,大于第一阈值,可以进一步判断负载指标是否小于预先设置的第二阈值;当负载指标小于第二阈值时,可以在当前时间周期内对第一优先级的后台任务进行调度。如上述表1所示,第二阈值对应第一优先级,因此,可以在当前时间周期内对第一优先级的后台任务进行调度。当负载指标大于等于第二阈值时,还可以进一步判断负载指标是否小于第三阈值;当负载指标小于第三阈值时,可以在当前时间周期内对第二优先级的后台任务进行调度。如上述表1所示,第三阈值对应第二优先级,因此,当负载指标小于第三阈值时,可以在当前时间周期内对第二优先级的后台任务进行调度。当负载指标大于第三阈值时,可以判断负载指标是否小于预先设置的第四阈值;当负载指标小于第四阈值时,可以在当前时间周期内对第三优先级的后台任务进行调度。以此类推。较佳地,在本发明的具体实施例中,当负载指标不小于任意一个阈值时,可以在当前时间周期内对任意一个后台任务均不进行调度。也就是说,可以在当前时间周期内只对全部前端任务进行调度,而对任意一个后台任务均不进行调度。例如,假设第1个时间周期p1内全部已完成任务的第一总数量为71个,在第1个周期p1内满足预设条件的已完成任务的第二总数量为10个,采用以下公式:负载指标=第二总数量/第一总数量,可以计算出第1个时间周期p1对应的负载指标为0.14,如果该值不小于任意一个阈值,则可以在第2个时间周期p2内对任意一个后台任务均不进行调度。图3为本发明实施例中逻辑阀的实现方法示意图。如图3所示,当对任意一个后台任务进行调度时,可以打开该后台任务对应的逻辑阀,在当前周期内对该后台任务进行调度;当对任意一个后台任务不进行调度时,可以关闭该后台任务对应的逻辑阀,在当前时间周期内对该后台任务均不进行调度。本发明实施例提出的任务调度方法,先确定前一时间周期对应的负载指标,然后根据负载指标对当前时间周期内的后台任务进行调度。也就是说,在本发明实施例的技术方案中,可以根据前一时间周期对应的负载指标对当前时间周期内的后台任务进行调度。而现有技术中,针对后台任务设置系统资源上限,其灵活性欠佳,无法充分利用系统资源。因此,和现有技术相比,本发明实施例提出的任务调度方法,不仅可以有效地利用系统资源,而且还可以提高任务调度的灵活性;并且,本发明实施例的技术方案实现简单方便,便于普及,使用范围更广。图4为本发明实施例中任务调度装置的第一组成结构示意图。如图4所示,任务调度装置包括:确定单元401和调度单元402;其中,所述确定单元401,用于确定前一时间周期对应的负载指标;所述调度单元402,用于根据所述负载指标对当前时间周期内的后台任务进行调度。图5为本发明实施例中任务调度装置的第二组成结构示意图。如图5所示,所述确定单元401包括:统计子单元4011和确定子单元4012;其中,所述统计子单元4011,用于统计所述前一时间周期内已完成任务的第一总数量以及全部已完成任务中满足预设条件的已完成任务的第二总数量;其中,所述预设条件包括:预设时延条件或者预设带宽条件;所述确定子单元4012,用于根据所述第一总数量和所述第二总数量确定所述负载指标;其中,所述负载指标为所述第二总数量占所述第一总数量之比。进一步的,所述前一时间周期内已完成任务包括:前端任务;或者,前端任务和后台任务。进一步的,所述预设时延条件包括:所述已完成任务在所述前一时间周期内的服务时间大于预先设置的延迟门限值;所述预设带宽条件包括:所述已完成任务在所述前一时间周期内的系统带宽小于预先设置的带宽门限值。进一步的,所述调度单元402包括:判断子单元4021和调度子单元4022;其中,所述判断子单元4021,用于判断所述负载指标是否小于预先设置的第一阈值;所述调度子单元4022,用于当所述负载指标小于所述第一阈值时,在所述当前时间周期内对全部后台任务进行调度。进一步的,所述判断子单元4021,还用于当所述负载指标大于等于所述第一阈值时,判断所述负载指标是否小于预先设置的第二阈值;其中,所述第一阈值小于所述第二阈值;所述调度子单元4022,还用于当所述负载指标小于所述第二阈值时,在所述当前时间周期内对第一优先级的后台任务进行调度。在实际应用中,所述确定单元401和调度单元402均可由位于任务调度装置中的中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)、或现场可编程门阵列(fpga)等实现。另外,在本实施例中的各个单元可以单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台目标主机(可以是个人移动终端,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。具体来讲,本实施例中usb设备的配置方法对应的程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与usb设备的配置方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:确定前一时间周期对应的负载指标;根据所述负载指标对当前时间周期内的后台任务进行调度。本发明实施例提出的任务调度装置,先确定前一时间周期对应的负载指标,然后根据负载指标对当前时间周期内的后台任务进行调度。也就是说,在本发明实施例的技术方案中,可以根据前一时间周期对应的负载指标对当前时间周期内的后台任务进行调度。而现有技术中,针对后台任务设置系统资源上限,其灵活性欠佳,无法充分利用系统资源。因此,和现有技术相比,本发明实施例提出的任务调度装置,不仅可以有效地利用系统资源,而且还可以提高任务调度的灵活性;并且,本发明实施例的技术方案实现简单方便,便于普及,使用范围更广。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1