基于系统负载的MPP集群任务调度方法技术方案

技术编号:12826166 阅读:161 留言:0更新日期:2016-02-07 15:02
本发明专利技术涉及一种基于系统负载的MPP集群任务调度方法,其技术特点是包括设置在MPP集群主控节点上的多功能任务调度器和设置在各个节点上的系统负载计算模块,并按以下步骤实现:各个节点上的系统负载计算模块实时监控节点的负载变化并反馈至MPP集群主控节点上;MPP集群主控节点上的多功能任务调度器根据任务的分布信息以及对应节点的负载情况完成任务的排队和调度。本发明专利技术在MPP集群主控节点上设置多功能任务调度器并实时收集群内所有计算节点的系统负载信息,MPP集群主控节点依据任务的分布信息以及对应节点的负载情况,完成对任务的排队和调度,通过对系统负载的实时监控,实现动态并发控制,可以有效提高资源的利用率,使系统达到最佳吞吐性能。

【技术实现步骤摘要】

本专利技术属于数据库
,主要涉及一种基于系统负载的MPP集群任务调度方 法。
技术介绍
MPP集群由主控节点和若干个计算节点组成,前端提交的任务经主控节点调度后 发送至全部或部分计算节点并行执行,然后再由主控节点汇总执行结果并返回前端。通过 支持一定数量的并发,可以充分利用系统资源,提高系统的吞吐量。随着持续提高并发数, 系统资源达到最大利用率,系统吞吐量将稳定不再升高。如果继续增大并发,由于系统超负 荷工作,多任务之间会出现内存、IO等资源的争用,系统的吞吐量反而可能会下降。在MPP 集群分布式、低耦合的多个计算节点的组织结构下,如何控制并发、合理调度是MPP集群面 临的重要问题之一。 针对上述问题,现有的解决方案主要有以下两种方式:(1)应用程序实现连接池, 通过连接池的容量限制并发数,超出连接池容量的任务等待;(2)MPP集群支持任务队列, 每次允许固定数量的任务并发执行,其余排队等待。上述两种解决方法均采用固定的并发 数,其通过理论计算或实际测试预先设定系统的最大并发数,避免系统过载,但是,由于任 务类型不同(执行节点规模、计算密集型、IO密集型等),固定并发数则意味着系统资源利 用率的不稳定。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种设计合理、安全可靠且系统资 源利用率高的基于系统负载的MPP集群任务调度方法。 本专利技术解决现有的技术问题是采取以下技术方案实现的: -种基于系统负载的MPP集群任务调度方法,包括设置在MPP集群主控节点上的 多功能任务调度器和设置在各个节点上的系统负载计算模块,并按以下步骤实现: 步骤1、各个节点上的系统负载计算模块实时监控节点的负载变化并反馈至MPP 集群主控节点上; 步骤2、MPP集群主控节点上的多功能任务调度器根据任务的分布信息以及对应 节点的负载情况完成任务的排队和调度。 而且,所述步骤1的具体处理方法包括以下步骤: ⑴后台定时线程收集一定数量的瞬时系统负载值; ⑵使用内置的计算模型,对第⑴步中收集到的瞬时系统负载值进行二次统计,计 算这段时间内的系统负载变化; ⑶若第⑵步计算得到的新系统负载较原记录的负载基准值有稳定变化趋势,则更 新系统负载基准值,并将新的负载基准值推送至MPP主控节点。 而且,所述步骤⑴瞬时系统负载值的计算方法为: LoadDatum = CPULoad*a% +MemLoad^b % +I0Load*c% 其中,a%、b%、c%分别表示CPU的占比率、内存的占比率、磁盘IO的占比率。 而且,所述占比率根据访问代价和任务类型设置,a%、b%、c%分别设置为10%、 30%、60%〇 而且,所述步骤⑵内置模型包括统计学中的算数平均数和样本标准差两个数学模 型;上述两个数学模型涉及如下信息: η :需要连续采集的瞬时负载样本的数目; L1:采集得到的第i个瞬时负载样本的值; I :n个瞬时负载样本的平均值,使用算数平均数模型计算,其公式如下: Sn 1:n个瞬时负载样本的离散度,使用样本标准差模型计算,其公式如下: 而且,所述步骤⑶负载基准值有稳定变化趋势的判断方法采用如下公式计算: Δ a :需要调整基准值的负载变化量;Δ b :n个瞬时负载样本的离散度上限;Ld:当 前记录的系统负载基准值;L_:新的负载基准值。 而且,所述Aa和Ab的设置原则为: ⑴Λ a = 100% /系统最大吞吐性能下的并发数; ⑵ Ab〈Aa*50%。 而且,步骤2所述多功能任务调度器包括多级任务队列模块、节点负载管理模块、 定时自检模块、任务状态标识管理模块,并通过以下步骤实现: ⑴多功能任务调度器监听等待各类事件,依据事件类型进行相应的操作处理; ⑵监听到有新任务提交,多功能任务调度器将新任务分级入队;跳转至第(7)步; ⑶监听到有节点反馈负载变化,多功能任务调度器更新该节点的负载信息;跳转 至第(7)步; ⑷监听到有任务执行结束,跳转至第(7)步; (5)监听到前端交互操作时,多功能任务调度器立即进行相应的处理:强制结束任 务、调整任务队列等;跳转至第(7)步; (6)监听到定时自检任务,多功能任务调度器依次检查各级队列的任务等待时间; 若低优先级任务排队超时,升级至中优先级;若中优先级任务排队超时,升级至高优先级; 若高优先级任务排队超时,暂时关闭抢占式调度;跳转至第(7)步; (7)多功能任务调度器进行新一轮的任务调度;跳转至第⑴步。 本专利技术的优点和积极效果是: 本专利技术在MPP集群主控节点上设置多功能任务调度器并实时收集集群内所有计 算节点的系统负载信息,当多任务并发时,MPP集群依据任务的分布信息以及对应节点的负 载情况,完成对任务的排队和调度,通过对系统负载的实时监控,实现动态并发控制,可以 有效提尚资源的利用率,使系统达到最佳吞吐性能。【附图说明】 图1是本专利技术的工作原理图。【具体实施方式】 以下结合附图对本专利技术实施例做进一步详述: -种基于系统负载的MPP集群任务调度方法,包括设置在MPP集群主控节点上的 多功能任务调度器和设置在各个节点上的系统负载计算模块。下面对多功能任务调度器和 系统负载计算模块的结构分别进行说明: 1、多功能任务调度器 本专利技术在MPP集群内部设计了一个多功能任务调度器,该多功能任务调度器作为 所有任务的统一入口,负责任务的排队和调度。如图1所示,多功能任务调度器由多级任务 队列、节点负载管理、定时自检、任务状态标识管理4大功能模块组成。 (1)多级任务队列模块 多功能任务调度器内部设计有三条不同级别的任务队列,分别为低、中、高三级。 多功能任务调度器实时监控所有节点的负载情况,按照由高到低的优先级顺序依次调度任 务。另外,为了提高高优先级任务的实时性,本专利技术增加了抢占式调度机制,允许排队靠后 的高优先级任务在资源可用时抢先调度。 注:不同任务的执行节点集合不同,所需的系统资源也不同,这是可以抢占调度的 前提。 (2)节点负载管理模块 节点负载管理模块记录MPP集群内所有节点的负载信息,并且支持实时、定时两 种更新方式。多功能任务调度器在进行任务调度时,先判断任务执行节点的系统负载是否 全部低于警戒值(例如:95%),否则,排队等待。MPP集群的各个节点负责实时计算自己的 系统负载并推送至主控节点。 (3)定时自检功能模块 持续提交级别高的任务会导致级别低的任务长时间排队,极端情况下可能导致级 别低的任务"饿死"。定时自检功能模块负责检查任务的排队时间,如果有任务排队超出了 预设的超时时间,则调高其优先级,升级至对应的队列,防止出现"饿死"情况。另外,如果 是高优先级任务排队超时,则暂时关闭抢占式调度,确保任务随后被立即调度,之后重新开 启。 (4)任务状态管理模块 任务状态管理模块负责任务排队期间的外界交互。在任务排队期间,前端应用可 能需要对已提交的任务进行交互操作:强制取消、变更优先级等。任务状态管理模块及时响 应这些操作并记录对应的任务,由任务管理器统一处理。 2、系统负载计算模块 系统负载计算模块安装在各个节点上用于计算节点的负载情况。系统负载可以反 映系统资源的使用情况,系统资源主要包括CPU、内存、磁盘(本专利技术只考虑硬件资源,暂不 考虑线程等软件资源)。本文档来自技高网...

【技术保护点】
一种基于系统负载的MPP集群任务调度方法,其特征在于包括设置在MPP集群主控节点上的多功能任务调度器和设置在各个节点上的系统负载计算模块,并按以下步骤实现:步骤1、各个节点上的系统负载计算模块实时监控节点的负载变化并反馈至MPP集群主控节点上;步骤2、MPP集群主控节点上的多功能任务调度器根据任务的分布信息以及对应节点的负载情况完成任务的排队和调度。

【技术特征摘要】

【专利技术属性】
技术研发人员:王洋李晓鹏陈训逊赵殿奎吴震蒋旭谭炜波王洋洋赵雪静
申请(专利权)人:国家计算机网络与信息安全管理中心天津神舟通用数据技术有限公司
类型:发明
国别省市:北京;11

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

1