基于系统负载的mpp集群任务调度方法

文档序号:9547020阅读:840来源:国知局
基于系统负载的mpp集群任务调度方法
【技术领域】
[0001] 本发明属于数据库技术领域,主要涉及一种基于系统负载的MPP集群任务调度方 法。
【背景技术】
[0002] MPP集群由主控节点和若干个计算节点组成,前端提交的任务经主控节点调度后 发送至全部或部分计算节点并行执行,然后再由主控节点汇总执行结果并返回前端。通过 支持一定数量的并发,可以充分利用系统资源,提高系统的吞吐量。随着持续提高并发数, 系统资源达到最大利用率,系统吞吐量将稳定不再升高。如果继续增大并发,由于系统超负 荷工作,多任务之间会出现内存、IO等资源的争用,系统的吞吐量反而可能会下降。在MPP 集群分布式、低耦合的多个计算节点的组织结构下,如何控制并发、合理调度是MPP集群面 临的重要问题之一。
[0003] 针对上述问题,现有的解决方案主要有以下两种方式:(1)应用程序实现连接池, 通过连接池的容量限制并发数,超出连接池容量的任务等待;(2)MPP集群支持任务队列, 每次允许固定数量的任务并发执行,其余排队等待。上述两种解决方法均采用固定的并发 数,其通过理论计算或实际测试预先设定系统的最大并发数,避免系统过载,但是,由于任 务类型不同(执行节点规模、计算密集型、IO密集型等),固定并发数则意味着系统资源利 用率的不稳定。

【发明内容】

[0004] 本发明的目的在于克服现有技术的不足,提供一种设计合理、安全可靠且系统资 源利用率高的基于系统负载的MPP集群任务调度方法。
[0005] 本发明解决现有的技术问题是采取以下技术方案实现的:
[0006] -种基于系统负载的MPP集群任务调度方法,包括设置在MPP集群主控节点上的 多功能任务调度器和设置在各个节点上的系统负载计算模块,并按以下步骤实现:
[0007] 步骤1、各个节点上的系统负载计算模块实时监控节点的负载变化并反馈至MPP 集群主控节点上;
[0008] 步骤2、MPP集群主控节点上的多功能任务调度器根据任务的分布信息以及对应 节点的负载情况完成任务的排队和调度。
[0009] 而且,所述步骤1的具体处理方法包括以下步骤:
[0010] ⑴后台定时线程收集一定数量的瞬时系统负载值;
[0011] ⑵使用内置的计算模型,对第⑴步中收集到的瞬时系统负载值进行二次统计,计 算这段时间内的系统负载变化;
[0012] ⑶若第⑵步计算得到的新系统负载较原记录的负载基准值有稳定变化趋势,则更 新系统负载基准值,并将新的负载基准值推送至MPP主控节点。
[0013] 而且,所述步骤⑴瞬时系统负载值的计算方法为:
[0014] LoadDatum = CPULoad*a% +MemLoad^b % +I0Load*c%
[0015] 其中,a%、b%、c%分别表示CPU的占比率、内存的占比率、磁盘IO的占比率。
[0016] 而且,所述占比率根据访问代价和任务类型设置,a%、b%、c%分别设置为10%、 30%、60%〇
[0017] 而且,所述步骤⑵内置模型包括统计学中的算数平均数和样本标准差两个数学模 型;上述两个数学模型涉及如下信息:
[0018] η :需要连续采集的瞬时负载样本的数目;
[0019] L1:采集得到的第i个瞬时负载样本的值;
[0020] I :n个瞬时负载样本的平均值,使用算数平均数模型计算,其公式如下:
[0022] Sn 1:n个瞬时负载样本的离散度,使用样本标准差模型计算,其公式如下:
[0024] 而且,所述步骤⑶负载基准值有稳定变化趋势的判断方法采用如下公式计算:
[0027] Δ a :需要调整基准值的负载变化量;Δ b :n个瞬时负载样本的离散度上限;Ld:当 前记录的系统负载基准值;L_:新的负载基准值。
[0028] 而且,所述Aa和Ab的设置原则为:
[0029] ⑴Λ a = 100% /系统最大吞吐性能下的并发数;
[0030] ⑵ Ab〈Aa*50%。
[0031] 而且,步骤2所述多功能任务调度器包括多级任务队列模块、节点负载管理模块、 定时自检模块、任务状态标识管理模块,并通过以下步骤实现:
[0032] ⑴多功能任务调度器监听等待各类事件,依据事件类型进行相应的操作处理;
[0033] ⑵监听到有新任务提交,多功能任务调度器将新任务分级入队;跳转至第(7)步;
[0034] ⑶监听到有节点反馈负载变化,多功能任务调度器更新该节点的负载信息;跳转 至第(7)步;
[0035] ⑷监听到有任务执行结束,跳转至第(7)步;
[0036] (5)监听到前端交互操作时,多功能任务调度器立即进行相应的处理:强制结束任 务、调整任务队列等;跳转至第(7)步;
[0037] (6)监听到定时自检任务,多功能任务调度器依次检查各级队列的任务等待时间; 若低优先级任务排队超时,升级至中优先级;若中优先级任务排队超时,升级至高优先级; 若高优先级任务排队超时,暂时关闭抢占式调度;跳转至第(7)步;
[0038] (7)多功能任务调度器进行新一轮的任务调度;跳转至第⑴步。
[0039] 本发明的优点和积极效果是:
[0040] 本发明在MPP集群主控节点上设置多功能任务调度器并实时收集集群内所有计 算节点的系统负载信息,当多任务并发时,MPP集群依据任务的分布信息以及对应节点的负 载情况,完成对任务的排队和调度,通过对系统负载的实时监控,实现动态并发控制,可以 有效提尚资源的利用率,使系统达到最佳吞吐性能。
【附图说明】
[0041] 图1是本发明的工作原理图。
【具体实施方式】
[0042] 以下结合附图对本发明实施例做进一步详述:
[0043] -种基于系统负载的MPP集群任务调度方法,包括设置在MPP集群主控节点上的 多功能任务调度器和设置在各个节点上的系统负载计算模块。下面对多功能任务调度器和 系统负载计算模块的结构分别进行说明:
[0044] 1、多功能任务调度器
[0045] 本发明在MPP集群内部设计了一个多功能任务调度器,该多功能任务调度器作为 所有任务的统一入口,负责任务的排队和调度。如图1所示,多功能任务调度器由多级任务 队列、节点负载管理、定时自检、任务状态标识管理4大功能模块组成。
[0046] (1)多级任务队列模块
[0047] 多功能任务调度器内部设计有三条不同级别的任务队列,分别为低、中、高三级。 多功能任务调度器实时监控所有节点的负载情况,按照由高到低的优先级顺序依次调度任 务。另外,为了提高高优先级任务的实时性,本发明增加了抢占式调度机制,允许排队靠后 的高优先级任务在资源可用时抢先调度。
[0048] 注:不同任务的执行节点集合不同,所需的系统资源也不同,这是可以抢占调度的 前提。
[0049] (2)节点负载管理模块
[0050] 节点负载管理模块记录MPP集群内所有节点的负载信息,并且支持实时、定时两 种更新方式。多功能任务调度器在进行任务调度时,先判断任务执行节点的系统负载是否 全部低于警戒值(例如:95%),否则,排队等待。MPP集群的各个节点负责实时计算自己的 系统负载并推送至主控节点。
[0051] (3)定时自检功能模块
[0052] 持续提交级别高的任务会导致级别低的任务长时间排队,极端情况下可能导致级 别低的任务"饿死"。定时自检功能模块负责检查任务的排队时间,如果有任务排队超出了 预设的超时时间,则调高其优先级,升级至对应的队列,防止出现"饿死"情况。另外,如果 是高优先级任务排队超时,则暂时关闭抢占式调度,确保任务随后被立即调度,之后重新开 启。
[0053] (4)任务状态管理模块
[0054] 任务状态管理模块负责任务排队期间的外界交互。在任务排队期间,前端应用可 能需要对已提交的任务进行交互操作:强制取消、变更优先级等。任务状态管理模块及时响 应这些操作并记录对应的任务,由任务管理器统一处理。
[0055] 2、系统负载计算模块
[0056] 系统负载计算模块安装在各个节点上用于计算节点的负载情况。系统负载可以反 映系统资源的使用情况,系统资源主要包括CPU、内存、磁盘(本发明只考虑硬件资源,暂不 考虑线程等软件资源)。上述三类资源的使用率共同决定了系统的整体性能,资源的均衡使 用可以使系统达到最佳的吞吐性能。系统的瞬时负载可以使用如下公式计算:
[0057] LoadDatum = CPULoad^a % +MemLoad^b % +IOLoad^c %
[0058] 其中,a%、b%、c%分别表示CPU的占比率、内存的占比率、磁盘IO的占比率,占 比率的设定需要考虑以下两个方面:
[0059] (1)访问代价:访问代价可以理解为访问速度。在不考虑特殊硬件的情况下,这3 类资源的访问速度关系为:CPU〉内存〉磁盘。访问速度越慢,对系统性能影响越大,计算负 载时的占比率应该越高。
[0060] (2)任务类型:不同类型的任务对不同资源的使用要求也不尽相同,比如:计算密 集型、IO密集型、全内存应用。因此,任务类型也会影响计算负载时的资源占比率。
[0061] 为了不失一
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1