专利名称:一种基于资源状态信息的网格任务调度处理器及方法
技术领域:
本发明涉及的一种基于资源状态信息的网格任务调度处理器及调度任务的方法, 尤其是一种分布式调度模式并支持对不同节点上调度器的统一管理、均衡各个调度节点负 载的系统,以及一种通过获取的资源状态信息,评估资源节点的综合性能值,最终通过基于 概率空间的服务资源分配调度方法。
背景技术:
随着计算机和通信网络技术的迅猛发展,特别是Internet的广泛应用,并行与分 布计算技术将朝着基于高速网络的、面向大区域的高性能并行和分布计算-计算网格的技 术方向发展。。2000年初,在Web技术趋于成熟、集群技术高度发展的基础上,对网格计算 的研究、开发和应用快速发展起来,出现了计算网格技术,计算网格着重研究分布的高端资 源(如集群)的集成和利用。网格计算是利用网络中一些闲置的处理能力来解决复杂问题 的计算模式,即利用互联网技术,把分散在不同地理位置的计算机组成虚拟超级计算机。每 一台参与的计算机就是其中的一个“节点”,所有的计算机就组成了一张节点网_网格,网 格的计算能力强且费用低。在实质上来说“网格计算”是一种分布式应用,网格中的每一台 计算机只是完成工作的一个小部分,虽然计算机的运算能力有限,但成千上万台计算机组 合起来的计算能力就可以达到超级计算机的计算能力。在网格技术中,有效进行网格任务 调度和资源管理是网格技术必须要解决的问题。美国、加拿大、澳大利亚、日本等许多国家 的重要科研机构都开展了网格计算技术的相关研究。具有代表性的研究项目和成果主要有 Globus。Globus是美国多家研究机构的合作项目,其核心是一个工具集,包括一组执行基本 服务的组件,如安全控制、资源获取、资源管理、资源预约、数据管理和通信等。Globus提供 了调度组件作为其工具集的一部分,但没有提供具体的调度策略,它依赖高层调度器执行 任务调度。Globus包含的调度器中间件没有提供具体的资源调度策略,在执行资源调度过 程中缺乏收集网络上的资源实时状态的能力,而且调度节点之间缺乏协同能力,容易出现 单点失效的问题。现有技术中,在OMII支持下,英国帝国理工大学开发出的网格作业调度器中采用 了一个标准的基于web服务的作业提交和监控GridSAM模块,有效实现了对作业提交和监 控,但利用该网格作业调度器调度作业时存在调度作业类型简单化、无法实现负载均衡以 及难以实现全网络环境下的作业信息监控和管理能力等缺陷。目前,围绕着网格中的任务调度问题,国内外已经做了大量的研究,先后提出了各 种调度算法。这些算法按照调度策略可以分为在线模式和批模式两种。在线模式是当任务 到达调度器后尽量使它尽快匹配一个任务,通常采用先来先服务的策略,不考虑整个任务 集合的特点和要求,只是考虑目前到达的任务。批处理模式是当任务到达之后并不立即分 配,而是收集一个集合,根据一定的时间周期或者一定的系统事件触发,然后对于这个任务 集合按照预先调度方法进行处理。这两种方法各有优缺点,对于在线模式,由于当任务到达 时就考虑分配,尽可能及时地将任务进行调度,因此反应快、任务的延迟时间短,但是可能导致资源的分配不够优化。而批处理方式则能够考虑更多的请求和资源状况,潜在的能得 到更有效的网格资源利用率,但对于单个任务来说,延迟时间可能较长,对于某些服务质量 没有办法实施。在线调度算法的环境适应性好,在多种环境下操作性能良好,算法灵活,因 此在线模式更适合网格环境。许多网格中间件,如ChinaGrid支撑平台CGSP、VEGA和CR0WN, 均采用的是在线调度模式。但目前的在线调度算法在如下几个方面未作有效考虑首先, 网格环境下资源的性能与可用性均处在变化之中。目前的网格调度系统需要访问信息服务 获取资源的信息。但是信息服务中的服务信息更新周期长,而且访问信息学服务会产生延 迟。如果网格调度器单纯根据信息服务的信息进行调度,可能导致某些服务负载过重,而另 外一些服务利用率不高。之所以存在这些问题,主要是由于网格调度器没有有效地根据资 源节点的状态信息,而是根据信息服务中的非实时服务信息来进行任务调度。其次,目前网 格调度系统通常部署在服务器端,容易出现单点故障或者负载过重的现象。这使得现有的 网格任务调度算法在调度任务的执行效率和适用性方面存在一定的缺陷。任务调度是将计算任务合理地分配到资源上去,达到负载均衡和高吞吐率。任务 调度遵循以下两个分配原则(1)调度任务等待时间尽可能短;(2)调度任务执行调度时间 尽可能少。
发明内容
发明目的本发明的第一目的是针对现有技术中网格任务调度存在的缺陷和不 足,提供一种基于资源状态信息的网格任务调度处理器,该网格任务调度处理器通过采用 两级结构,实现多个调度器之间协同和统一管理,能够保证更多的利用空闲服务资源,同时 实现对多个调度器统一管理,避免出现在单一节点上的资源局部化和单点故障的问题。本发明的第二目的是针对无法实现快捷的资源状态收集与传递的缺陷,提供一种 优化的网格计算任务调度方法该方法采用独立的资源状态采集模块,预先收集服务资源 的状态,当资源状态发生改变时,同步更新本地的资源状态信息;同时,提供基于资源节点 综合性能评估值的调度方法,既考虑了资源节点的计算性能又兼容了资源节点的可靠性。技术方案为实现本发明第一目的,本发明所述的基于资源状态信息的网格任务 调度处理器,包括分布式的多个网格调度节点,每个网格调度节点都通过配置的方式与其 它若干个网格调度节点相连;所述网格调度节点为两层结构,顶层为虚拟调度管理器,底层为多个并列的调度 执行器;所述虚拟调度管理器由调度器管理模块和调度器协同模块组成,所述调度器管理 模块负责对同一个网格节点上多个运行的调度执行器进行统一管理、调度任务分配和执行 器之间的协同;调度执行器负责每个网格任务的实际调度处理,它实时收集资源的当前状 态数据,并评估资源当前的性能参数指标;同时,利用保存的资源节点处理任务的历史记录 和已执行过的任务的基本信息,综合推断当前的资源节点状态,从而实现对网格计算任务 的调度;每个调度执行器在启动时向所述虚拟调度管理器注册,在退出时向所述虚拟调度 管理器注销,定期向所述虚拟调度管理器上报状态信息。所述调度执行器包括调度请求接收模块、调度请求处理模块、调度器协同模块、调 度任务执行模块、调度任务监控模块、调度任务管理模块、调度线程管理模块、服务资源状 态反馈收集模块、服务资源查询模块;
所述的调度请求接收模块与所述调度请求处理模块相连,调度请求接收模块用于 接收所有的调度任务请求消息,并送入不同的消息队列中;当有新的调度消息到达时,调度 请求处理模块将根据调度消息的类型统一生成调度任务数据模型,并送入就绪任务队列;所述调度任务管理模块与调度器协同模块、任务状态监控模块相连,用于获取、存 储和提交调度任务的状态信息,根据每个调度执行器内部的任务队列长度以及调度执行器 的实时负载状态,为调度器执行器分配调度任务;所述服务资源状态反馈收集模块与所述调度任务执行模块连接,用于获取、存储 各类服务资源的实时状态信息,提供任务调度执行模块查询和分析;所述的服务资源状态 反馈收集模块是本地部署、本地查询,实时收集所管理的各类服务资源的实时状态信息,可 以为所述调度任务执行模块提供最新的服务资源状态,降低对服务资源状态的查询时间; 所述调度任务执行模块可以根据所述的服务资源状态反馈收集模块中实际的服务资源实 时状态为依据,实现对网格任务的调度;所述调度线程管理模块与所述调度任务执行模块连接,用于管理本地用于调度任 务执行的多线程池,监控每个线程的状态;所述调度任务执行模块中包含有多个执行不同 调度算法模型的调度模型线程池,所述调度模型线程池中包含多个调度策略模型,以支持 多个调度任务的并发,线程池数量可以根据本机的性能灵活配置。所述服务资源查询模块,与所述的调度任务执行模块连接,用于查询当前所有可 用的服务资源列表。为实现本发明的第二目的,本发明所述的网格任务调度处理方法,分析每个资源 节点的历史状态信息,降低收集资源实时状态信息的难度,缩短资源调度选择的时间开销, 提高任务调度的响应速度,其具体包含以下步骤步骤1 调度执行器通过调度器协同模块向调度器管理模块发送接入请求,同时 发送本节点的最大容纳任务队列长度、本节点计算性能等基本信息,并定期上报本调度节 点的任务队列的长度;步骤2 用户向所述调度器管理模块提交网格调度任务请求,并提交该请求所需 要服务资源特征信息;步骤3 所述调度器管理模块将提交的调度任务请求的基本信息保存,比较当前 已经接入的所有调度执行器的就绪任务队列长度,然后将该调度请求转发给调度任务等待 队列长度最小的调度执行器;Node = Min (Nodei, 1彡i彡η)其中,η为调度器数量(4)步骤4 所述调度执行器中的调度请求接收模块接收到调度请求信息后,对该请 求信息进行解析,生成调度任务,并更新该调度任务状态为就绪;步骤5 所述调度执行器中的调度任务管理模块监控到调度执行线程池中有空闲 线程时,如果就绪任务队列不为空,则通知调度执行线程获取调度任务并执行;调度线程管 理模块将该任务送入空闲线程,开始执行任务调度流程;如果调度任务有可用资源分配,则 跳转至步骤7 ;否则,执行步骤6 ;步骤6 所述调度执行器中的调度任务执行模块通知调度任务管理模块无可用资 源返回,调度任务管理模块则向相邻的调度执行器发送任务调度请求;步骤7 所述调度执行器中的调度任务执行模块根据调度模型线程池中的调度模型算法将调度任务分配给选中的资源,并通知调度任务管理模块该调度任务执行成功,更 新调度任务的状态;步骤8 调度器管理模块判断是否有新的调度请求到来,如果有,则返回步骤3,直 到所有网格任务调度执行器关闭。步骤3具体为步骤31 所述调度执行器接收用户提交的网格任务调度请求后,所述调度器管理 模块将收集所管理的所有网格调度执行器状态信息,包括每个调度执行器当前的任务列 表;步骤32 所述调度器管理模块根据下层每个调度执行器上的调度任务等待数量, 选择等待队列中任务数量最小的调度执行器;步骤33 所述调度器管理模块记录该调度请求基本信息以及分配的调度执行器 的基本信息,将调度任务请求转发给所选调度执行器。步骤4具体为步骤41 所述调度请求接收模块接收到由调度器管理模块发送的任务调度请求, 送入调度请求消息队列;步骤42 所述调度请求接收模块对任务调度请求进行分析并创建调度任务,同时 通知调度任务监控模块已创建一个新的调度任务;步骤43 所述调度请求接收模块将新创建的调度任务送入调度任务等待队列,通 过任务状态监控模块更新该调度任务状态为就绪,等待调度任务执行模块处理。步骤5具体为步骤51 所述调度任务执行模块等待调度模型线程池中是否有线程空闲,如果 有,则从等待任务队列中就绪调度任务,将该任务送入调度模型线程池中的空闲线程;若没 有空闲线程,则该调度任务继续等待;步骤52 调度策略模型根据调度请求消息中包含的服务资源特征信息,与服务资 源状态反馈收集模块交互,通过资源信息服务查询获取所有满足该特征信息的服务资源列 表;步骤53 调度任务执行模块中保存所有满足特征信息的服务资源列表,并与服务 资源状态反馈收集模块交互,获取列表中所有资源的实时状态信息;步骤54 所述调度任务执行模块根据可用资源列表中每个资源的实时状态,计算 资源的综合负载,综合负载包含两个要素资源节点的可靠性和资源节点的性能;步骤55 所述调度任务执行模块根据每个服务资源的提供的服务质量,选择一个 或者多个资源提供服务,将调度任务分配给该资源;如果无可用资源,则通知调度任务管理 模块无可用资源;反之,通知调度任务管理模块调度成功。上述技术方案中,所述步骤7中,调度任务执行模块建立调度任务与资源节点映 射关系的方法,与现有技术相结合,采用基于资源节点历史状态信息的方法,包括如下步 骤①对于每个资源节点,调度器收集其在一定时间周期内的性能参数值,设置观测 获得的资源节点性能参数值序列kih = 1,2...,取某一时间段τ = k-、作为计算周期;②调度器根据公式(5)计算每个资源节点的性能指标的预估值,性能指标包括CPU利用率和内存利用率;由于CPU利用率瞬时波动较大,因此为了获得较为平滑的整体系统负载信息, 使用低通滤波算法对CPU负载数据进行预处理,低通滤波器的传递函数为G(S) = 1/ (0.5·8+1),相应的递推公式为y (tn) = 0. 998 X y (^1) +0. 000999 X (u (tn) +u (t^)) (5)其中tn代表采样时刻,y (tn)为tn时刻的平滑值,u (tn)为tn时刻的实际观测值;对观测序列依次采用公式(5)计算每个时刻的平滑值,直到计算得到当前时刻tn 的平滑值为止;内存使用率计算方法与CPU负载计算方法一样,参照公式(5)即可;③调度器根据公式(6)计算该资源节点的性能综合评估值;在得到当前时刻tn WCPU使用率和内存使用率后,可以采用向量Qi(qi,q2)表示 该资源节点^的性能参数向量,Q1, Q2分别代表CPU利用率和内存利用率;资源节点A的 性能综合值计算公式如下
权利要求
一种基于资源状态信息的网格任务调度处理器,其特征在于包括分布式的多个网格调度节点,每个网格调度节点都通过配置的方式与其它若干个网格调度节点相连;所述网格调度节点为两层结构,顶层为虚拟调度管理器,底层为多个并列的调度执行器;所述虚拟调度管理器由调度器管理模块和调度器协同模块组成,所述调度器管理模块负责对调度执行器进行统一管理,调度执行器负责每个网格任务的实际调度处理,它实时收集资源的当前状态数据,并评估资源当前的性能参数指标;同时,利用保存的资源节点处理任务的历史记录和已执行过的任务的基本信息,综合推断当前的资源节点状态,从而实现对网格计算任务的调度;每个调度执行器在启动时向所述虚拟调度管理器注册,在退出时向所述虚拟调度管理器注销,定期向所述虚拟调度管理器上报状态信息。
2.根据权利要求1所述的基于资源状态信息的网格任务调度处理器,其特征在于所 述调度执行器包括调度请求接收模块、调度请求处理模块、调度器协同模块、调度任务执行 模块、调度任务监控模块、调度任务管理模块、调度线程管理模块、服务资源状态反馈收集 模块、服务资源查询模块;所述的调度请求接收模块与所述调度请求处理模块相连,调度请求接收模块用于接收 所有的调度任务请求消息,并送入不同的消息队列中;当有新的调度请求消息到达时,调度 请求处理模块将根据调度请求消息的类型统一生成调度任务数据模型,并送入就绪任务队 列;所述调度任务管理模块与调度器协同模块、任务状态监控模块相连,用于获取、存储和 提交调度任务的状态信息,根据每个调度执行器内部的任务队列长度以及调度执行器的实 时负载状态,为调度器执行器分配调度任务;所述服务资源状态反馈收集模块与所述调度任务执行模块连接,用于获取、存储各类 服务资源的实时状态信息,提供任务调度执行模块查询和分析;所述调度线程管理模块与所述调度任务执行模块连接,用于管理本地用于调度任务执 行的多线程池,监控每个线程的状态;所述服务资源查询模块,与所述的调度任务执行模块连接,用于查询当前所有可用的 服务资源列表。
3.根据权利要求2所述的基于资源状态信息的网格任务调度处理器,其特征在于所 述调度任务执行模块中包含有多个执行不同调度算法模型的调度模型线程池,所述调度模 型线程池中包含多个调度策略模型,以支持多个调度任务的并发。
4.一种网格任务调度处理方法,其特征在于包含以下步骤步骤1 调度执行器通过调度器协同模块向调度器管理模块发送接入请求,同时发送 本节点的最大容纳任务队列长度、本节点计算性能等基本信息,并定期上报本调度节点的 任务队列的长度;步骤2 用户向所述调度器管理模块提交网格调度任务请求,并提交该请求所需要服 务资源特征信息;步骤3 所述调度器管理模块将提交的调度任务请求的基本信息保存,比较当前已经 接入的所有调度执行器的就绪任务队列长度,然后将该调度请求转发给调度任务等待队列 长度最小的调度执行器;步骤4 所述调度执行器中的调度请求接收模块接收到调度请求信息后,对该请求信息进行解析,生成调度任务,并更新该调度任务状态为就绪;步骤5 所述调度执行器中的调度任务管理模块监控到调度执行线程池中有空闲线程 时,如果就绪任务队列不为空,则通知调度执行线程获取调度任务并执行;调度线程管理模 块将该任务送入空闲线程,开始执行任务调度流程;如果调度任务有可用资源分配,则跳转 至步骤7;否则,执行步骤6;步骤6 所述调度执行器中的调度任务执行模块通知调度任务管理模块无可用资源返 回,调度任务管理模块则向相邻的调度节点转发任务调度请求;步骤7 所述调度执行器中的调度任务执行模块根据调度模型线程池中的调度模型算 法将调度任务分配给选中的资源,并通知调度任务管理模块该调度任务执行成功,更新调 度任务的状态;步骤8 调度器管理模块判断是否有新的调度请求到来,如果有,则返回步骤3,直到所 有网格任务调度执行器关闭。
5.根据权利要求4所述的网格任务调度处理方法,其特征在于步骤3具体为步骤31 所述调度执行器接收用户提交的网格任务调度请求后,所述调度器管理模块 将收集所管理的所有网格调度执行器状态信息,包括每个调度执行器当前的任务列表;步骤32 所述调度器管理模块根据下层每个调度执行器上的调度任务等待数量,选择 等待队列中任务数量最小的调度执行器;步骤33 所述调度器管理模块记录该调度请求基本信息以及分配的调度执行器的基 本信息,将调度任务请求转发给所选调度执行器。
6.根据权利要求4所述的网格任务调度处理方法,其特征在于步骤4具体为步骤41 所述调度请求接收模块接收到由调度器管理模块发送的任务调度请求,送入 调度请求消息队列;步骤42 所述调度请求接收模块对任务调度请求进行分析并创建调度任务,同时通知 调度任务监控模块已创建一个新的调度任务;步骤43 所述调度请求接收模块将新创建的调度任务送入调度任务等待队列,通过任 务状态监控模块更新该调度任务状态为就绪,等待调度任务执行模块处理。
7.根据权利要求4所述的网格任务调度处理方法,其特征在于步骤5具体为步骤51 所述调度任务执行模块等待调度模型线程池中是否有线程空闲,如果有,则 从等待任务队列中就绪调度任务,将该任务送入调度模型线程池中的空闲线程;若没有空 闲线程,则该调度任务继续等待;步骤52 调度策略模型根据调度请求消息中包含的服务资源特征信息,与服务资源状 态反馈收集模块交互,通过资源信息服务查询获取所有满足该特征信息的服务资源列表;步骤53 调度任务执行模块中保存所有满足特征信息的服务资源列表,并与服务资源 状态反馈收集模块交互,获取列表中所有资源的实时状态信息;步骤54 所述调度任务执行模块根据可用资源列表中每个资源的实时状态,计算资源 的综合负载,综合负载包含两个要素资源节点的可靠性和资源节点的性能;步骤55 所述调度任务执行模块根据每个服务资源的提供的服务质量,选择一个或者 多个资源提供服务,将调度任务分配给该资源;如果无可用资源,则通知调度任务管理模块 无可用资源;反之,通知调度任务管理模块调度成功。
全文摘要
本发明公开一种基于资源状态信息的网格任务调度处理器,包括分布式的多个网格调度节点,每个网格调度节点都通过配置的方式与其它若干个网格调度节点相连;所述网格调度节点为两层结构,顶层为虚拟调度管理器,底层为多个并列的调度执行器。本发明还提供一种网格任务调度处理方法。本发明建立了分布式网格资源调度系统,通过采用二级调度节点管理方法,统一对本地调度执行器的管理和协同,可以避免某一个调度执行器的失效,同时避免调度任务在某一个调度执行器上过长时间的等待;通过采用基于资源节点性能的分析和评估方法,采用本地的资源状态反馈收集,可以降低通过网络获取资源状态的延迟,进一步提高网格计算任务调度的效率。
文档编号H04L29/08GK101957780SQ201010255520
公开日2011年1月26日 申请日期2010年8月17日 优先权日2010年8月17日
发明者宗士强, 朱双华, 林剑柠 申请人:中国电子科技集团公司第二十八研究所