专利名称:基于反馈机制的网格任务调度方法
技术领域:
本发明属于计算机系统结构领域的分布式计算技术,具体涉及一种基于反馈机制的网格任务调度方法(Feedback Based Grid Scheduling,FBGS)。
背景技术:
网格的根本目标是协调资源的共享。在网格环境中存在众多资源,这些资源的特性及资源所处的环境各不相同。如何从纷繁复杂的资源中,选择合适的资源供任务执行是网格计算着力解决的问题之一。该问题也就是所谓的任务调度问题。任务调度的目的是在包含大量不同资源的网格环境中,考虑各网格节点的状态、网络通信性能等参数,把不同的任务以合理的方式分配到相应的网格结点上去完成。但由于网格环境的特性,使得网格环境下的任务调度具有不同于传统调度的特征。首先,在网格环境中资源节点具有相当大的自治性,各节点自行决定本地的调度策略。网格平台既不能象传统调度一样对资源进行完全控制,如暂停其上正在运行的任务,也不能对其调度策略进行规定。其次,网格各资源的性能及负载等状态是动态变化的,网格平台很难准确了解网格资源的状态。第三,同类型的网格资源可能存在多个,这就使得网格环境下可以有多种选择。最后,网格资源分布在网络上,网络通信的延迟会对任务调度的性能造成影响。特别是随着网格资源互联互通的发展,网格资源都以服务的形式表现,出现了基于服务的网格标准,这进一步增加了网格任务调度的延迟。基于此分析,网格环境下的任务调度同传统环境下的任务调度相比有着多方面不同,网格环境下的任务调度是一个非常困难的问题。
目前,围绕着网格中的任务调度问题,国内外已经做了大量的研究工作,先后提出了各种调度算法。这些算法按调度策略可以分为在线模式和批模式两种。在线模式是任务一到来就加以映射,而批模式则是把任务收集起来等映射事件到来后才对这些任务进行集中映射。相对而言,批模式得到了大量的资源信息,从而可以做出更合理的任务映射策略。但批模式算法需要花费大量时间计算任务调度表,算法缺少灵活性;任何变化,如任务添加、删除或任务特征改变等,都需要重新计算调度表。而且批模式算法每隔一定周期进行一次调度,因此越早到达的任务,等待时间越长,从而使得任务的响应时间过长。在线调度算法的环境适应性好,在多种环境下操作性能良好,算法灵活,因此在线模式更适合于网格环境。许多网格中间件,如ChinaGrid支撑平台CGSP、VEGA和CROWN,均采用的是在线调度模式。但目前的在线调度算法在如下几个方面未作有效考虑首先,网格环境下资源的性能与可用性均处于变化之中。目前的网格调度系统需要访问信息服务获取资源的信息。但是信息服务中的服务信息更新周期长,而且访问信息服务会产生延迟。如果网格调度器单纯根据信息服务的信息进行调度,可能导致某些服务负载过大,而另外一些服务利用率不高。之所以存在这些问题,主要是由于网格调度器没有有效地根据资源节点的状态信息,而是根据信息服务中的非实时服务信息来进行任务调度。其次,目前网格调度系统通常假设知道或能够获取网格上所有节点的状态,而且能够获知节点上的调度策略。最后,大多数网格调度算法未考虑网络通信延迟。在网格环境中资源节点是自治的,网格调度器不能够对资源节点实现完全控制。由于网络通信的开销,如果网格调度器将一子任务调度到一性能下降的资源节点上执行,那么子任务可能会等待很长时间才能得到处理。极端情况下,延迟过大,网格调度器认为该服务不可用,从而不得不重新调度该子任务到新的资源节点上。这两种情况都会使得任务的响应时间增大。这些都使得现有的网格任务调度算法在调度时效性、适用性方面存在一定的缺陷。
发明内容
本发明的目的就是针对现有技术的不足,提供一种基于反馈机制的网格任务调度方法,该方法能够很好地适应网格环境的动态性,提高网格平台的吞吐率,降低任务的平均完成时间,提高网格的响应速度。
本发明提供的基于反馈机制的网格任务调度方法,其步骤包括(1)网格调度器设置本地缓存,并利用缓存定时检测操作清理缓存中长期不用的资源记录信息;(2)当请求到达网格调度器时,将其放入网格调度器的请求队列中;(3)从上述请求队列中取出一个请求,并从该请求中提取可执行任务;(4)从缓存中选取与该任务所请求资源相匹配的资源集合R;(5)判断该任务获取的资源集合R是否为空,是则跳转至步骤(6),否则跳转至步骤(7);(6)根据任务所请求资源及缓存更新操作对缓存中的资源记录信息进行更新,然后返回步骤(4);(7)对获得的资源集合R,根据资源记录的最近响应时间TR由小到大进行排序,获取排序后的资源集合中的排头资源,即最近响应时间TR最小的资源r,并将其作为候选资源;(8)根据候选资源r,按照下述过程从资源集合R中选取最优的资源作最终选定资源rs(C1)判断当前候选资源r的资源利用权值 是否在权值变动范围 之内,其中σ‾r=TR‾rTV‾r-1,]]>TVr为最近一次提交任务到资源r的相邻提交时间间隔,TRr为最近一次资源r的响应时间,RCr为等待资源r提供服务的任务个数,是则将资源r作为最终选定资源rs并跳转至(C6),否则跳转到(C2);(C2)构建未检测队列,将资源集合中除候选资源外的其他资源放入未检测队列;(C3)取未检测队列的队首资源为待检测资源i,并在未检测队列中删除资源i;(C4)计算候选资源r与待检资源i最近响应时间差ΔTRn,候选资源r响应时间波动差ΔTRjr,待检资源i响应时间波动差ΔTRji,如果(ΔTRri-ΔTRjr+ΔTRji)≤0,]]>即待检资源i提交后的响应时间小于候选资源r提交后的响应时间,则跳转到(C5),否则跳转到(C3);(C5)判断资源i的资源利用权值 是否在权值变动范围 之内,其中,σ‾i=TR‾iTV‾i-1,]]>TVi为最近一次提交任务到资源I的相邻提交时间间隔,TRi为最近一次资源i的响应时间,RCi为等待资源i提供服务的任务个数,是则将资源i作为最终选定资源rs并跳转至(C6),否则跳转到(C3);(C6)将最终选定资源rs返回网格任务调度方法;(9)将该任务提交给最终选定资源rs,资源提供服务的任务计数器RCrs加1;(10)资源处理完请求后返回到网格调度器,计算缓存中相应资源的平均响应时间ART,该资源提供服务的任务计数器RCrs减1,并更新资源最近响应时间LRT及最近一次更新资源时间RUT;(11)判断请求队列是否仍有请求或者有新请求到来,是则返回步骤(2),直到网格调度器关闭。
本发明针对当前网格环境下任务调度方法所存在的缺陷,提出了一种基于反馈机制的网格任务调度方法。该调度方法收集最近访问到的资源信息,如资源名、资源性能、资源前一次响应时间、资源平均响应时间及最近一次更新时间等信息,并将其放入缓存中来辅助网格调度器进行调度决策(这里所提到的缓存是指本地一块存储区域,它既可以是内存,也可以是其它存储设备)。与现有的网格调度方案相比,本发明方法主要有如下特点(1)该方法以网格调度器实际收集的资源状态数据为依据,利用资源节点处理任务的历史数据来推断资源节点的状态,不需要每隔一段时间采集资源的状态,具有相当的实时性和准确性;(2)该方法不会对资源的性能产生额外影响,而且不会额外增加网络通信负担;
(3)该方法减少了同信息服务交互所导致的网络延迟,使得任务的响应时间缩短。
图1为本网格任务调度方法流程示意图;图2为缓存定时检测操作的流程示意图;图3为缓存更新操作的流程示意图;图4为资源检测操作的流程示意图。
具体实施例方式
本方法对硬件环境没有特殊要求,软件环境为网格平台。基于反馈机制的网格任务调度方法中最重要的是缓存更新和反馈调度。
缓存更新的基本原理是网格调度器在调度任务时设置缓存,缓存中存放最近访问过的服务信息,如资源名、资源最近响应时间LRT(Last Response Time)、资源平均响应时间ART(Average Response Time)、上一次提交任务时间等信息。这些信息是网格任务调度的依据,可帮助网格调度器正确地决策将任务提交给哪些资源来完成。资源性能可能会随配置、程序升级等方面的变化而改变,新的资源也有可能加入到网格环境中,这都使得网格资源处于动态变化之中。因此网格调度器需要及时更新缓存中的资源信息,使其能够反映网格资源的最新变化。缓存中的信息更新包括两个方面一方面是缓存中已有资源信息的更新,这部分通常可以根据最近一次资源执行任务的情况来完成更新;另一方面是将新的性能更优的网格资源信息加入到缓存中或根据信息服务中的信息更新缓存中的信息,这部分通常需要与缓存中已有资源的性能进行比较后才能确定新资源能否加入缓存中。为了防止用过时的信息更新缓存,每次更新都需要记载最近一次更新资源时间RUT(Recent Update Time)。更新后的缓存中的资源需要根据性能及最近访问时间进行排序,以便网格调度器能够有效地选取资源。如果缓存空间不够,需要删除缓存中那些在一定时间内未使用的资源信息。
反馈调度的基本原理是假设网格调度器提交任务到同一资源的相邻提交时间间隔为TV,资源的最近响应时间为TR。如果服务的执行时间大于TV,那么后续到达该服务的任务将会形成队列。此时请求需在队列中等待一段时间,以便服务处理完前面的任务后再来响应该任务。如果服务的执行时间小于TV,那么服务处理完所有任务后就一直处在间断空闲状态,直到下一任务的到来。理想情况下应是一个服务处理完一个任务以后,后面一个任务此时恰恰到达,这时任务的等待时间最短,服务利用率也最高。但等待时间最短,并不能说明处理时间最短,调度任务时不但要考虑等待时间,也要考虑处理时间。因此反馈调度主要依据提交任务到资源的时间间隔以及资源的响应时间来推断资源的当前状态,以决定是否能够向该资源提交任务。
下面结合附图对本发明作进一步详细的说明。
首先,我们将σ‾r=TR‾rTV‾r-1]]>作为判断资源状态的指标,其中 表示到目前为止资源r的平均响应时间, 表示到目前为止网格调度器提交任务到资源r的平均相邻提交时间间隔。如图1所示,本发明调度方法包括以下步骤(1)网格调度器设置本地缓存,并定时检测操作清理缓存中长期不用的资源记录信息;缓存定时检测操作的具体过程如图2所示,包括(A1)设置计时器中断时间间隔t,推荐值为60秒;(A2)计时器计时;(A3)判断计时器是否到时,是则跳转到(A4),否则跳转到(A2);(A4)判断缓存是否有剩余空间,是则跳转到(A2),否则跳转到(A5);(A5)读取缓存中未检测的资源记录信息;(A6)判断该记录信息所记录资源是否在2t时间间隔内未使用过,是则删除该资源;(A7)判断缓存中是否还有未检测的资源记录,是则跳转到(A5),否则跳转到(A8);
(A8)判断网格调度器是否要关闭,是则结束缓存定时检测操作,否则跳转到(A2)。
(2)当请求到达网格调度器时,将其放入网格调度器的请求队列中;(3)从上述请求队列中取出一个请求,并从该请求中提取可执行任务;(4)从缓存中选取与该任务所请求资源相匹配的资源集合R;(5)判断该任务获取的资源集合R是否为空,是则跳转至步骤(6),否则跳转至步骤(7);(6)根据任务所请求资源及缓存更新操作对缓存中的资源记录信息进行更新,然后返回步骤(4);缓存更新操作的具体过程如图3所示,包括(B1)判断缓存中是否有剩余空间,是则跳转到(B5),否则跳转到(B2);(B2)读取缓存中未检测的资源记录信息;(B3)判断该记录信息所记录资源是否在2t时间间隔内未使用过,t的推荐值为120秒,是则删除该资源;(B4)判断缓存中是否还有未检测的资源记录,是则跳转(B2),否则跳转到(B5);(B5)访问信息服务器,获取任务所请求资源的同一类资源,将其加入到缓存中并计算最近响应时间TR,返回网格任务调度方法。
(7)对获得的资源集合R,根据资源记录的最近响应时间TR由小到大进行排序,获取排序后的资源集合中的排头资源,即最近响应时间TR最小的资源r,并将其作为候选资源;(8)根据候选资源r和资源检测操作从资源集合R中选取最终选定资源rs;资源检测操作的具体过程如图4所示,包括(C1)判断当前候选资源r的资源利用权值 是否在权值变动范围 之内,其中TVr为最近一次提交任务到资源r的相邻提交时间间隔,TRr为最近一次资源r的响应时间,RCr为等待资源r提供服务的任务个数,是则将资源r作为最终选定资源rs并跳转至(C6),否则跳转到(C2);(C2)构建未检测队列,将资源集合中除候选资源外的其他资源放入未检测队列;(C3)取未检测队列的队首资源为待检测资源i,并在未检测队列中删除资源i;(C4)计算候选资源r与待检资源i最近响应时间差ΔTRri,候选资源r响应时间波动差ΔTRjr,待检资源i响应时间波动差ΔTRji,如果(ΔTRri-ΔTRjr+ΔTRji)≤0,]]>即待检资源i提交后的响应时间小于候选资源r提交后的响应时间,则跳转到(C5),否则跳转到(C3);(C5)判断资源i的资源利用权值 是否在权值变动范围 之内,其中TVi为最近一次提交任务到资源i的相邻提交时间间隔,TRi为最近一次资源i的响应时间,RCi为等待资源i提供服务的任务个数,是则将资源i作为最终选定资源rs并跳转至(C6),否则跳转到(C3);(C6)将最终选定资源rs返回网格任务调度方法。
(9)将该任务提交给最终选定资源rs,资源提供服务的任务计数器RCrs加1;(10)资源处理完请求后返回到网格调度器,计算缓存中相应资源的平均响应时间ART,该资源提供服务的任务计数器RCrs减1,并更新资源最近响应时间LRT及最近一次更新资源时间RUT;(11)判断请求队列是否仍有请求或者有新请求到来,是则返回步骤(2),直到网格调度器关闭。
实例为了验证基于反馈机制的网格任务调度方法的有效性,我们在分布式仿真网格支撑平台GCDSP上实现了FBGS,并同无FBGS的GCDSP进行比较。本实验共采用了12台计算机,,其性能指标如表1,其中2台分别作为调度服务器和信息服务器,剩余10台作为网格服务的提供者。测试所使用的服务是之前已经开发好的用于仿真物流运输情况的网格服务,包括Production服务,Consumption服务,Transport服务,Manager服务和Viewer服务。我们在这10台机器上都部署了这5种网格服务。由于10台机器的性能不同,并且5种网格服务的处理时间也不相同,因此共形成了50种性能彼此不同的网格服务。
表1实验机器性能列表
为了全面测试性能,我们共进行了四次实验。四次实验中提交给调度器进行处理的请求数分别为50,100,200和400。测试结果如表2所示,其中性能提升比的计算公式为
与GCDSP默认的网格任务调度器相比,采用FBGS的网格任务调度器性能更高,并且这种趋势随着提交给调度器进行处理的请求数的增加而更显突出。
表2总的调度性能比较
权利要求
1.一种基于反馈机制的网格任务调度方法,其步骤包括(1)网格调度器设置本地缓存,并利用缓存定时检测操作清理缓存中长期不用的资源记录信息;(2)当请求到达网格调度器时,将其放入网格调度器的请求队列中;(3)从上述请求队列中取出一个请求,并从该请求中提取可执行任务;(4)从缓存中选取与该任务所请求资源相匹配的资源集合R;(5)判断该任务获取的资源集合R是否为空,是则跳转至步骤(6),否则跳转至步骤(7);(6)根据任务所请求资源及缓存更新操作对缓存中的资源记录信息进行更新,然后返回步骤(4);(7)对获得的资源集合R,根据资源记录的最近响应时间TR由小到大进行排序,获取排序后的资源集合中的排头资源,即最近响应时间TR最小的资源r,并将其作为候选资源;(8)根据候选资源r,按照下述过程从资源集合R中选取最优的资源作最终选定资源rs(C1)判断当前候选资源r的资源利用权值 是否在权值变动范围 之内,其中σ‾r=TR‾rTV‾r-1]]>,TVr为最近一次提交任务到资源r的相邻提交时间间隔,TRr为最近一次资源r的响应时间,RCr为等待资源r提供服务的任务个数,是则将资源r作为最终选定资源rs并跳转至(C6),否则跳转到(C2);(C2)构建未检测队列,将资源集合中除候选资源外的其他资源放入未检测队列;(C3)取未检测队列的队首资源为待检测资源i,并在未检测队列中删除资源i;(C4)计算候选资源r与待检资源i最近响应时间差ΔTRri,候选资源r响应时间波动差ΔTRjr,待检资源i响应时间波动差ΔTRji,如果(ΔTRri-ΔTRjr+ΔTRji)≤0,]]>即待检资源i提交后的响应时间小于候选资源r提交后的响应时间,则跳转到(C5),否则跳转到(C3);(C5)判断资源i的资源利用权值 是否在权值变动范围 之内,其中σ‾i=TR‾iTV‾i-1,]]>TVi为最近一次提交任务到资源i的相邻提交时间间隔,TRi为最近一次资源i的响应时间,RCi为等待资源i提供服务的任务个数,是则将资源i作为最终选定资源rs并跳转至(C6),否则跳转到(C3);(C6)将最终选定资源rs返回网格任务调度方法;(9)将该任务提交给最终选定资源rs,资源提供服务的任务计数器RCrs加1;(10)资源处理完请求后返回到网格调度器,计算缓存中相应资源的平均响应时间ART,该资源提供服务的任务计数器RCrs减1,并更新资源最近响应时间LRT及最近一次更新资源时间RUT;(11)判断请求队列是否仍有请求或者有新请求到来,是则返回步骤(2),直到网格调度器关闭。
2.根据权利要求1所述的调度方法,其特征在于所述步骤(1)采用下述步骤进行定时检测(A1)设置计时器中断时间间隔t;(A2)计时器计时;(A3)判断计时器是否到时,是则跳转到(A4),否则跳转到(A2);(A4)判断缓存是否有剩余空间,是则跳转到(A2),否则跳转到(A5);(A5)读取缓存中未检测的资源记录信息;(A6)判断该记录信息所记录资源是否在2t时间间隔内未使用过,是则删除该资源;(A7)判断缓存中是否还有未检测的资源记录,是则跳转到(A5),否则跳转到(A8);(A8)判断网格调度器是否要关闭,是则结束缓存定时检测操作,否则跳转到(A2)。
3.根据权利要求1所述的调度方法,其特征在于步骤(6)包括以下过程(B1)判断缓存中是否有剩余空间,是则跳转到(B5),否则跳转到(B2);(B2)读取缓存中未检测的资源记录信息;(B3)判断该记录信息所记录资源是否在2t时间间隔内未使用过,是则删除该资源;(B4)判断缓存中是否还有未检测的资源记录,是则跳转(B2),否则跳转到(B5);(B5)访问信息服务器,获取任务所请求资源的同一类资源,将其加入到缓存中并计算最近响应时间TR,返回网格任务调度方法。
全文摘要
本发明公开了一种基于反馈机制的网格任务调度方法。该方法以网格调度器实际收集的资源状态数据为依据,利用资源节点处理任务的历史数据来推断资源节点的状态,从而实现对网格任务的调度。具体步骤为①开启网格调度器,设置本地缓存;②从请求队列中取一请求,并从该请求中提取可执行任务;③从缓存中选取与该任务相匹配的资源集合R;④在资源集合R中选取最优资源;⑤将该任务提交给资源,并记录提交时间;⑥返回步骤①。该方法不需要每隔一段时间采集资源的状态,具有相当的实时性和准确性。该方法不会对资源的性能产生额外影响,而且不会额外增加网络通信负担。同时,该方法减少了同信息服务交互所导致的网络延迟,使得任务的响应时间缩短。
文档编号G06F9/50GK101013386SQ20071005149
公开日2007年8月8日 申请日期2007年2月6日 优先权日2007年2月6日
发明者金海 , 袁平鹏, 曹文治, 侯东晖, 邝坪, 何亨 申请人:华中科技大学