一种分布式节点组内任务调度方法及系统的制作方法

文档序号:9891511阅读:545来源:国知局
一种分布式节点组内任务调度方法及系统的制作方法
【技术领域】
[0001] 本发明的技术方案属于解决分布式环境下任务调度的问题,因此需要考虑资源余 量、负载均衡等多种性能指标,适用于分布时环境下的任务调度,具体涉及一种分布式节点 组内任务调度方法及系统。
【背景技术】
[0002] 目前在许多分布式计算环境中,如云计算、网格计算、P2P网络等,都存在将请求任 务在多个可选择节点间如何进行调度和执行的问题。现有的调度类型基于多任务的调度和 工作流调度等。
[0003] 多任务调度是指有多个并发任务共同到达云分布式计算环境,需要进行调度和资 源分配,从而满足各个执行节点的负载均衡等要求。常见的有Min-Min算法和Max-Min算 法。Min-Min算法首先预测出当前任务队列中每一个任务在各个处理器上的最小完成时 间,然后将具有最小完成时间的任务分配给相应的处理器,同时更新相应的处理器的就绪 时间,将被分配的任务从任务队列移去,如此重复分配剩余的任务,直至整个任务队列为 空。Min-Min算法易出现负载不均衡现象。Max-Min算法与Min-Min算法不同之处在于,在 确定了每个任务在各个处理器上的最早完成时间之后,将具有最大的最早完成时间的任务 分配给相应的处理器,并及时更新相应的处理器就绪时间,对于剩下的任务进行重复处理。 Max-Min算法在负载均衡方面比Min-Min算法有所改善。
[0004] 另外一类是针对某个工作流内部的多级时序相关子任务的调度算法,从而满足减 少总执行时间和能耗等需求。EDTS算法是针对一个任务内部的N步子任务进行最优调度的 方法,算法首先预测出各个子任务在所有机器上执行所花费的时间及能耗,然后为送一连 串任务设定了总截止时间,在固定的总截止时间下,结合已有的时序关系,找出尽可能节能 的子任务分配方式,是针对一个任务进行拆分、调度,实现的是一个任务自身的性能最优。
[0005] 上述方法大多是通过中必式的服务器进行调度方案的计算和资源分配,然而,在 大规模分布式网络中,如大规模计算集群、P2P网络等环境,中必式的计算并不现实,其效率 和计算消耗难W满足实时、准实时等应用的需求。

【发明内容】

[0006] 本发明提出的适用于解决单一任务在多资源约束、包含多服务节点的节点组的情 况下的分布式调度方法。
[0007] 为了实现上述目的,本发明提供了一种分布式节点组内的任务调度方法,所述方 法包含:
[0008] 步骤101)收集组内各节点的资源状态信息和历史服务信息;
[0009] 步骤102)接收服务请求命令,解析请求命令获得请求的任务;
[0010] 步骤 10:3)
[0011] 根据各节点的资源状态信息和历史状态信息,计算由组内每个节点加载任务后的 资源利用率增量和组内各类资源的占用情况;
[0012] 依据使组内各节点的资源利用率增量尽量低和对组内各类资源的占用尽量均衡 的原则选择组内的服务执行节点,由选择的服务执行节点提供请求的任务。
[0013] 可选的,上述步骤101)进一步包含:
[0014] 步骤101-1)组内的各节点均维护本节点的资源状态信息和历史服务信息;
[0015] 步骤101-2)各节点将维护的资源状态信息和历史服务信息传输至调度执行节 点,其中,所述调度执行节点用于从组内选择针对一个具体任务的执行节点且该调度执行 节点用于接收用户的服务请求命令0。
[0016] 解析请求命令即根据任务需求的历史服务信息进行计算和估计,获取任务对N种 资源的任务需求资源向量0 = {〇1,〇2,...,cU ;其中,所述历史服务信息包含:每个已执行 任务对资源的实际需求和运行时间。
[0017] 可选的,上述步骤103)进一步包含:
[0018] 步骤103-1)根据节点的资源状态信息采用如下公式计算组内各节点的资源占用 率,其中,节点的资源状态信息包含:节点的可用资源向量和节点已占用的资源向量:
[001 引 rCj = {ci, j,C2, j,. . .,Cn, j}
[0020] Ci, j = (Si, j-s〇i, j)/si, j
[0021] 上述rc,表示组内任意一个节点p,当前的资源占用率向量,Ci,,表示属于节点p, 的第i种资源的占用率;
[0022] 步骤103-2)计算将任务0分配至节点P,处理的属于本节点的各类资源的占用 率;
[0023] 步骤103-3)计算将任务0加载到节点P,后与加载之前属于本节点的各种资源的 占用率的增加量,即求解步骤103-2)得到的资源占用率与步骤103-1)得到的资源占用率 的差值,进而得到任务0对组内任意一个节点P,的资源占用率增量向量;
[0024] 步骤 103-4)
[0025] 根据资源占用率增量向量中的各元素计算节点P,的资源占用影响率;
[0026] 根据节点P,的不同类型的资源占用率之间的方差,采用如下公式得到节点内资源 均衡度σ J ;
[0027]
[0028] 其中,
r〇i, i表示节点Pi对任务0进行处理时第i类资源的占用率, N表示一个节点组中所有节点一共可W支持的资源类型总数,i表示任一资源类型;
[0029] 步骤103-5)将节点组内资源均衡度0 ,和资源占用影响率μ ,较小的节点作为执 行节点得到执行节点集合Ρκ,具体采用如下公式得到节点集合Ρκ :
[0030] Ρ|( = {pj 二班卵1〇川.j,σ .j)T,j Ε [1,Μ']
[0031] 上述Μ'表示满足条件的执行节点集合中的节点数目,argmin表示使得μ ,和σ , 取得最小值的对应节点;
[0032] 步骤103-6)从执行节点集合Ρκ中选择一个节点为最终执行节点,再将任务0转 发给最终执行节点进行处理。
[0033] 为了实现上述方法,本发明提供一种分布式节点组内的任务调度系统,所述系统 包含:
[0034] 位于组内各节点的信息汇集模块,用于收集本节点的资源状态信息和历史服务信 息;
[0035] 位于组内调度执行节点上的服务命令接收模块,用于接收服务请求命令,解析请 求命令获得请求的任务;
[0036] 位于组内调度执行节点上的调度处理模块,用于:
[0037] 根据各节点的资源状态信息和历史状态信息,计算由组内每个节点加载任务后的 资源利用率增量和组内各类资源的占用情况;
[0038] 依据资源利用率增量尽量低和各类资源的占用尽量均衡的原则选择服务执行节 点,由服务执行节点提供请求的任务。
[0039] 可选的,上述信息汇集模块进一步包含:
[0040] 信息获取子模块,用于获取本节点的资源状态信息和历史服务信息,所述资源状 态信息包含节点的可用资源向量和节点已占用的资源向量;
[0041] 发送子模块,用于将维护的资源状态信息和历史服务信息传输至调度执行节点, 其中,所述调度执行节点用于从组内选择针对一个具体任务的执行节点且该调度执行节点 用于接收用户的服务请求命令0。
[0042] 综上所述,本发明的一个节点组由一个或者多个服务执行节点组成,服务执行节 点是可提供多种类型服务的服务主体,其中,接收到用户服务请求0的节点为调度执行节 点,是节点组的核必,主要承担服务调度决策、计算W及相关工作。在节点组中,每个节点都 需要维护本节点的资源状态信息、历史服务信息,并通过一定规则交换给调度执行节点,为 调度选择过程做准备。调度执行节点根据所接收到的任务请求的资源需求量,首先计算节 点组中每个节点加载该任务后的资源利用率增量,W及不同资源间资源占用情况均衡度, W此作为主要评估准则。之后,进行调度节点选择,选择原则为在满足资源利用率增量尽量 低,不同类型资源的占用尽量均衡的情况下,选择合适的节点作为任务执行节点。本发明设 计的一种分布式调度算法(即,分布式是指每个节点都可W承担任务执行节点的作用,不 需要全局统筹),该算法面向单一任务,在多资源约束和多服务节点的条件下,对任务进行 合理的指派,不仅保障执行效率,同时考虑负载均衡、资源利用率等多种因素,从而提高系 统的整体服务性能。
[0043] 与现有技术相比,本发明的技术优势在于:
[0044] 本发明技术方案提供的算法面向单一任务,在多资源约束和多服务节点的条件 下,对任务进行合理的指派,不仅保障执行效率,同时考虑负载均衡、资源利用率等多种因 素,从而提高系统的整体服务性能。
【附图说明】
[0045] 图1是本发明的调度节点搜索过程示意图;
[0046] 图2是本发明提供的任务调度方法的流程图。
【具体实施方式】
[0047] 下面结合附图对本发明的技术方案进行详细说明。
[004引 实施例1
[0049] 本发明提供一种分布式节点组内任务调度方法,如图2所示:
[0050] 本发明提出的适用于解决单一任务在多
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1