集群负载预测方法及分布式集群管理系统转让专利

申请号 : CN201210005401.7

文献号 : CN102624865B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王总辉张涛王云霄陈建海陈文智

申请人 : 浙江大学

摘要 :

本发明涉及一种集群负载预测方法及分布式集群管理系统。本发明的方法包括步骤:接收用户预测需求信息并解析,并将已解析的用户预测需求信息与算法池内存储的预测算法进行匹配;对算法池内的预测算法进行更新;选择匹配程度最大的预测算法及其相关参数信息建立负载预测模型,并用获取的负载数据训练该负载预测模型;使用训练好的负载预测模型对集群负载进行预测,得到预测结果。本发明的系统包括:集群调度模块、负载监控模块、负载预测模块以及决策实施模块;所述的负载预测模块包括配置文件、算法控制器以及算法执行器。本发明的技术方案应用于集群系统中,支持预测需求可配置、支持预测算法的自适应选择以及支持预测算法的可插拔。

权利要求 :

1.一种集群负载预测方法,应用于分布式集群系统,包括步骤:

在系统中设置预测算法存储单元与算法池;

预先在算法池内储存能够对集群负载进行预测的预测算法及其相关参数信息,并对算法池内的预测算法及其相关参数信息实时更新;

接收外部写入的用户预测需求信息,解析该用户预测需求信息并将该信息存储于系统中;

将已解析的用户预测需求信息逐一地与算法池内存储的预测算法进行匹配,选择出匹配程度最大的预测算法并将该预测算法及其相关参数信息更新至预测算法存储单元;

获取系统提供的负载数据;

基于预测算法存储单元内的预测算法及其相关参数信息建立负载预测模型,利用负载数据训练负载预测模型;

使用训练好的负载预测模型对集群负载进行预测,得到预测结果。

2.根据权利要求1所述的集群负载预测方法,其特征在于,所述的用户预测需求信息包括用户所需的预测精度信息、预测规律类型信息、预测周期信息以及预测算法特性信息。

3.根据权利要求1所述的集群负载预测方法,其特征在于,所述的接收外部写入的用户预测需求信息中,接收到的用户预测需求信息是以键-值对的方式或以XML格式存储于系统的配置文件中。

4.根据权利要求3所述的集群负载预测方法,其特征在于,所述的解析该用户预测需求信息并将该信息存储于系统中,包括:对以键-值对的方式存储于配置文件中的用户预测需求信息,从配置文件中逐条读取所有的用户预测需求信息并判断读取的信息是否合法:若读取的信息为合法输入,则按键-值分隔符对该信息进行分割并将分割后的键信息和值信息分别存储于系统中;

若读入的信息为非法输入则系统报错;

如此反复,直到配置文件的末尾;

对以XML格式存储于配置文件中的用户预测需求信息,首先解析用户预测需求信息的数据根节点,并将根节点及其属性信息存储于系统中,再以循环遍历的方式解析用户预测需求信息的子节点及其属性信息,并存储至系统中;以此类推,直到所有的用户预测需求信息的节点信息都已解析完毕。

5.根据权利要求1所述的集群负载预测方法,其特征在于,将已解析的用户预测需求信息逐一地与算法池内存储的预测算法进行匹配,选择出匹配程度最大的预测算法并将该预测算法及其相关参数信息更新至预测算法存储单元,包括步骤:读取第一条用户预测需求信息,并以此为关键词搜寻算法池内匹配该信息的预测算法;当遇到第一个与该信息适配的预测算法时,停止搜索;

针对该预测算法匹配下一条用户预测需求信息;

若该预测算法对所有的用户预测需求信息逐一适配,将该预测算法及其相关参数信息更新至预测算法储存单元;

若该预测算法对所有的用户预测需求信息不能逐一适配,则将该预测算法及其相关参数信息备份于系统中,并对算法池内未经搜索的预测算法重复上述步骤;

若算法池内所有的预测算法均不能对所有的用户预测需求逐一适配,选择备份于系统中的预测算法中与所有的用户预测需求信息最大匹配者,并将该预测算法及其相关参数信息更新至预测算法储存单元。

6.一种分布式集群管理系统,包括集群调度模块、负载监控模块、负载预测模块以及决策实施模块,其特征在于,所述的负载预测模块包括配置文件、算法控制器以及算法执行器;

所述的集群调度模块,将外部输入的用户预测需求信息存储于配置文件;

所述的算法控制器,包括存储能够对集群负载进行预测的预测算法及其相关参数信息的算法池;所述的算法控制器对算法池内的预测算法及其相关参数信息实时更新,并解析配置文件中的用户预测需求信息;将已解析的用户预测需求信息逐一地与算法池内储存的预测算法进行匹配,选择匹配程度最大的预测算法,并将该预测算法及其相关参数信息发送至算法执行器;

所述的算法执行器,接收预测算法及其相关参数信息,并请求负载监控模块或外部设备监测到的负载数据;根据该预测算法及其相关参数信息建立负载预测模型,利用请求到的负载数据训练负载预测模型;使用训练好的负载预测模型对集群负载进行预测,并将得到预测结果返回至集群调度模块;

所述的集群调度模块,接收该预测结果并将该预测结果作为调度决策的参考,输出调度决策至决策实施模块;

所述的决策实施模块,接收该调度决策,根据系统所处的实际物理环境执行调度决策。

7.根据权利要求6所述的分布式集群管理系统,其特征在于,所述的用户预测需求信息包括用户所需的预测精度信息、预测规律类型信息、预测周期信息以及预测算法特性信息。

8.根据权利要求6所述的分布式集群管理系统,其特征在于,所述的用户预测需求信息以键-值对的方式或以XML格式存储于配置文件中。

9.根据权利要求8所述的分布式集群管理系统,其特征在于,所述的算法控制器包括信息需求存储单元;

对以键-值对的方式存储于配置文件中的用户预测需求信息,所述的算法控制器从配置文件中逐条读取所有的用户预测需求信息并判断读取的信息是否合法:若读取的信息为合法输入,则按键-值分隔符对该信息进行分割并将分割后的键信息和值信息分别存储于所述的信息需求存储单元中;

若读入的信息为非法输入则算法控制器报错;

如此反复,直到配置文件的末尾;

对以XML格式存储于配置文件中的用户预测需求信息,所述的算法控制器首先解析用户预测需求信息的数据根节点,并将根节点及其属性信息存储于所述的信息需求存储单元中,再以循环遍历的方式解析用户预测需求信息的子节点及其属性信息,并存储至信息需求存储单元中;以此类推,直到所有的用户预测需求信息的节点信息都已解析完毕。

10.根据权利要求7所述的分布式集群管理系统,其特征在于,

所述的算法控制器包括预测算法储存单元,所述的算法控制器实现以下步骤:读取第一条用户预测需求信息,并以此为关键词搜寻算法池内匹配该信息的预测算法;当遇到第一个与该信息适配的预测算法时,停止搜索;

针对该预测算法匹配下一条用户预测需求信息;

若该预测算法对所有的用户预测需求信息逐一适配,将该预测算法及其相关参数信息更新至预测算法储存单元;

若该预测算法对所有的用户预测需求信息不能逐一适配,则将该预测算法及其相关参数信息备份于系统中,并对算法池内未经搜索的预测算法重复上述步骤;

若算法池内所有的预测算法均不能对所有的用户预测需求逐一适配,选择备份于系统中的预测算法中与所有的用户预测需求信息最大匹配者,并将该预测算法及其相关参数信息更新至预测算法储存单元。

说明书 :

集群负载预测方法及分布式集群管理系统

技术领域

[0001] 本发明涉及分布式集群系统,特别涉及一种集群负载预测方法及其对应的分布式集群管理系统。

背景技术

[0002] 随着当今社会计算机技术的不断发展,分布式集群愈来愈广泛地应用于不同领域。然而,随着集群的规模的不断增大,传统的集群管理方法已不能满足规模集群的需求,因此,分布式大规模集群管理调度技术应用而生,即分布式集群管理系统。根据该系统是否对集群负载进行预测,其工作流程可分为两种类型:
[0003] 第一种类型,系统对集群负载未进行预测:集群调度模块直接从负载监控模块读取负载数据,然后对数据进行解析,做出调度决策,再将调度决策发送到决策实施模块,决策实施模块根据其所处的实际物理环境对决策进行实施执行;
[0004] 第二种类型,系统对集群负载进行预测:集群调度模块根据实际情况向负载预测模块发送用户预测需求信息,这种需求信息可以是人为配置的,也可以是系统根据集群当前的负载情况做出的实时需求,负载预测模块根据预测需求使用预测算法对负载进行预测,给出预测后的负载数据,发送到集群调度模块,集群调度模块分析负载数据,做出调度决策,发送到决策实施模块进行实际的实施执行。
[0005] 在大规模分布式虚拟化集群资源调度领域中,由于业务的差异性造成对集群资源的使用不均衡,所以必须在间隔一定的时间内对集群整体的资源做一次调度,使集群中物理资源的使用达到一个均衡的状态;或通过调度决策使集群中的物理资源利用率提高,同时减少一些不必要的物理资源,以达到节能减排的目的。在调度的过程中,若采用如前所述的不对负载进行预测的系统时,由于集群规模大,做一次调度决策以及决策实施的时间会比较长,使得监控系统监控到的集群的实际负载数据相对滞后,系统做出的调度决策也会出现滞后的情况,不能体现实时的负载特性。据此,调度决策不能用当前的负载作为决策依据。
[0006] 现有技术一种能够对集群负载进行预测分布式集群管理系统主要分为四个模块:数据监控模块、负载预测模块、集群调度模块以及决策实施模块。负载预测模块内的负载预测过程基本分为预测模型的训练阶段和预测阶段。在预测模型的训练阶段,通过对集群负载监控模块获得的历史数据进行分析,使用满足需求的预测算法建立学习模型,来挖掘资源数据变化的规律性,训练出一种预测模型;在预测阶段,在给定单位时间粒度获取监测数据,利用学习到的预测模型预测出下一时间段的性能资源数据,为资源调度决策提供基本依据。
[0007] 目前的集群负载预测模型根据不同的原理主要有基于时间序列的指数加权移动平均EWMA算法和基于集群负载规律性的神经网络算法BP-NN,以及一些其他的预测算法。这些算法都是针对不同的负载规律进行预测,且各自具有不同优缺点。由于同一集群环境在不同的应用场景下,业务对集群的资源需求有很大差异,会呈现出不同的业务规律性,而预测这些不同规律性的集群负载需要采用不同的预测算法。现有技术对上述不同算法的建立是针对每一种不同的规律都开发出不同的接口以满足集群负载预测的需求。这种做法虽然可以暂时解决问题,但缺乏自适应性和灵活性。针对不同的业务规律需要选择不同的预测算法来满足负载预测需求,按当前的做法不能自适应的去选择相应的算法,需要手动修改代码完成相关需求;当有新的负载规律出现时,需要重新开发独立的接口以满足需求,而开发过程中需要重新考虑集群环境及负载类型等问题,做了很多不必要的重复工作。

发明内容

[0008] 本发明要解决上述技术所存在的缺陷,提供一种自适应的算法可插拔的分布式集群负载预测方法,弥补了现有预测方法所存在的不能自适应选择算法和缺乏灵活性的问题;相应地,提供了一种分布式集群管理系统。
[0009] 一种集群负载预测方法,应用于分布式集群系统,包括步骤:
[0010] 在系统中设置预测算法存储单元与算法池;
[0011] 预先在算法池内储存能够对集群负载进行预测的预测算法及其相关参数信息,并对算法池内的预测算法及其相关参数信息实时更新;
[0012] 接收外部写入的用户预测需求信息,解析该用户预测需求信息并将该信息存储于系统中;
[0013] 将已解析的用户预测需求信息逐一地与算法池内存储的预测算法进行匹配,选择出匹配程度最大的预测算法并将该预测算法及其相关参数信息更新至预测算法存储单元;
[0014] 获取系统提供的负载数据;
[0015] 基于预测算法存储单元内的预测算法及其相关参数信息建立负载预测模型,利用负载数据训练负载预测模型;
[0016] 使用训练好的负载预测模型对集群负载进行预测,得到预测结果。
[0017] 所述的用户预测需求信息包括用户所需的预测精度信息、预测规律类型信息、预测周期信息以及预测算法特性信息。
[0018] 进一步地,所述的接收外部写入的用户预测需求信息中,接收到的用户预测需求信息是以键-值对的方式或以XML格式存储于系统的配置文件中。
[0019] 进一步地,所述的解析该用户预测需求信息并将该信息存储于系统中,包括:
[0020] 对以键-值对的方式存储于配置文件中的用户预测需求信息,从配置文件中逐条读取所有的用户预测需求信息并判断读取的信息是否合法:
[0021] 若读取的信息为合法输入,则按键-值分隔符对该信息进行分割并将分割后的键信息和值信息分别存储于系统中;
[0022] 若读入的信息为非法输入则系统报错;
[0023] 如此反复,直到配置文件的末尾;
[0024] 对以XML格式存储于配置文件中的用户预测需求信息,首先解析用户预测需求信息的数据根节点,并将根节点及其属性信息存储于系统中,再以循环遍历的方式解析用户预测需求信息的子节点及其属性信息,并存储至系统中;以此类推,直到所有的用户预测需求信息的节点信息都已解析完毕。
[0025] 进一步地,将已解析的用户预测需求信息逐一地与算法池内存储的预测算法进行匹配,选择出匹配程度最大的预测算法并将该预测算法及其相关参数信息更新至预测算法存储单元,包括步骤:
[0026] 读取第一条用户预测需求信息,并以此为关键词搜寻算法池内匹配该信息的预测算法;当遇到第一个与该信息适配的预测算法时,停止搜索;
[0027] 针对该预测算法匹配下一条用户预测需求信息;
[0028] 若该预测算法对所有的用户预测需求信息逐一适配,将该预测算法及其相关参数信息更新至预测算法储存单元;
[0029] 若该预测算法对所有的用户预测需求信息不能逐一适配,则将该预测算法及其相关参数信息备份于系统中,并对算法池内未经搜索的预测算法重复上述步骤;
[0030] 若算法池内所有的预测算法均不能对所有的用户预测需求逐一适配,选择备份于系统中的预测算法中与所有的用户预测需求信息最大匹配者,并将该预测算法及其相关参数信息更新至预测算法储存单元。
[0031] 本发明的集群负载预测方法具有以下技术效果:
[0032] 一、支持用户预测需求可配置,通过在系统中写入用户的预测需求,且可以根据该用户的预测需求,例如用户对于负载预测的预测精度以及预测特性等预测需求完成对于负载的预测;
[0033] 二、支持预测算法的自适应选择,根据已解析的用户预测需求信息对算法池中的预测算法进行匹配,实现系统自适应地选择与用户预测需求信息最大匹配的预测算法;
[0034] 三、支持预测算法的可插拔,本发明的方法能够对算法池内的预测算法及其相关参数信息实时更新,即对系统不必要的预测算法进行注销及删除,对新增的预测算法进行注册及增加,简单有效;
[0035] 除上述三个有益的技术效果外,本发明的方法还具有算法可控性强和可扩展性强的特性;除了分布式集群管理系统中的负载预测应用场景,本发明的方法可以应用到其他有类似需求的场景中。
[0036] 一种分布式集群管理系统,包括集群调度模块、负载监控模块、负载预测模块以及决策实施模块,其特征在于,所述的负载预测模块包括配置文件、算法控制器以及算法执行器;
[0037] 所述的集群调度模块,将外部输入的用户预测需求信息存储于配置文件;
[0038] 所述的算法控制器,包括存储能够对集群负载进行预测的预测算法及其相关参数信息的算法池;所述的算法控制器对算法池内的预测算法及其相关参数信息实时更新,并解析配置文件中的用户预测需求信息;将已解析的用户预测需求信息逐一地与算法池内储存的预测算法进行匹配,选择匹配程度最大的预测算法,并将该预测算法及其相关参数信息发送至算法执行器;
[0039] 所述的算法执行器,接收预测算法及其相关参数信息,并请求负载监控模块或外部设备监测到的负载数据;根据该预测算法及其相关参数信息建立负载预测模型,利用请求到的负载数据训练负载预测模型;使用训练好的负载预测模型对集群负载进行预测,并将得到预测结果返回至集群调度模块;
[0040] 所述的集群调度模块,接收该预测结果并将该预测结果作为调度决策的参考,输出调度决策至决策实施模块;
[0041] 所述的决策实施模块,接收该调度决策,根据系统所处的实际物理环境执行调度决策。
[0042] 所述的用户预测需求信息包括用户所需的预测精度信息、预测规律类型信息、预测周期信息以及预测算法特性信息。
[0043] 进一步地,所述的用户预测需求信息以键-值对的方式或以XML格式存储于配置文件中。
[0044] 进一步地,所述的算法控制器包括信息需求存储单元;
[0045] 对以键-值对的方式存储于配置文件中的用户预测需求信息,所述的算法控制器从配置文件中逐条读取所有的用户预测需求信息并判断读取的信息是否合法:
[0046] 若读取的信息为合法输入,则按键-值分隔符对该信息进行分割并将分割后的键信息和值信息分别存储于所述的信息需求存储单元中;
[0047] 若读入的信息为非法输入则算法控制器报错;
[0048] 如此反复,直到配置文件的末尾;
[0049] 对以XML格式存储于配置文件中的用户预测需求信息,所述的算法控制器首先解析用户预测需求信息的数据根节点,并将根节点及其属性信息存储于所述的信息需求存储单元中,再以循环遍历的方式解析用户预测需求信息的子节点及其属性信息,并存储至信息需求存储单元中;以此类推,直到所有的用户预测需求信息的节点信息都已解析完毕。
[0050] 进一步地,所述的算法控制器包括预测算法储存单元,所述的算法控制器实现以下步骤:
[0051] 读取第一条用户预测需求信息,并以此为关键词搜寻算法池内匹配该信息的预测算法;当遇到第一个与该信息适配的预测算法时,停止搜索;
[0052] 针对该预测算法匹配下一条用户预测需求信息;
[0053] 若该预测算法对所有的用户预测需求信息逐一适配,将该预测算法及其相关参数信息更新至预测算法储存单元;
[0054] 若该预测算法对所有的用户预测需求信息不能逐一适配,则将该预测算法及其相关参数信息备份于系统中,并对算法池内未经搜索的预测算法重复上述步骤;
[0055] 若算法池内所有的预测算法均不能对所有的用户预测需求逐一适配,选择备份于系统中的预测算法中与所有的用户预测需求信息最大匹配者,并将该预测算法及其相关参数信息更新至预测算法储存单元。
[0056] 在算法控制器中需完成对配置文件进行解析,以获取配置文件中写入的用户预测需求信息,所以算法控制器中所能解析的文件的格式必须和配置文件的格式一致;算法控制器根据解析的配置文件的需求信息选择满足条件的预测算法,并将与所选算法相关的参数信息一并发送到算法执行器,实现了本发明系统中预测算法的自适应选择;另外,算法控制器还负责新的预测算法的注册/和注销,当有新的满足需求的预测算法被实现时,可以通过算法控制器进行注册,算法控制器将其信息添加到可供选择的预测算法池中,以供选择;当有的算法已不能满足当前选择或为了提升算法选择效率时,可以通过算法控制器将其在算法池中进行注销,则系统在进行下一次预测算法选择时将会屏蔽此算法的信息,即对算法池内的预测算法及其相关参数信息实时更新,实现了本发明系统中算法池内预测算法的可插拔。
[0057] 算法执行器根据算法控制器提供的预测算法及相关的参数信息,使用历史的负载数据对预测模型进行学习和训练,当训练完成后,可以将监测到的负载数据输入到预测模型,得到预测后的负载数据输出值,输出数据可用做集群资源调度决策的参考依据或做其他处理;另外,可以先将针对某一预测算法的预测模型存储起来,等需要用到这种预测模型时可以直接使用存储的预测模型,这样可以节省预测模型学习和训练所带来的消耗,提高效率。
[0058] 综上,本发明的技术方案应用于集群系统中,支持预测需求可配置、支持预测算法的自适应选择以及支持预测算法的可插拔;同时本发明的技术方案具有预测算法可控性强和可扩展性强的特性。

附图说明

[0059] 图1为本发明实施例1的集群负载预测方法的流程示意图;
[0060] 图2为本发明实施例3的分布式集群管理系统的结构示意图。

具体实施方式

[0061] 下面结合附图对本发明的具体实施过程作具体阐述。
[0062] 实施例1
[0063] 如图1所示的一种集群负载预测方法,包括步骤:
[0064] S1在系统中设置预测算法存储单元与算法池。
[0065] S2预先在算法池内储存能够对集群负载进行预测的预测算法及其相关参数信息,并对算法池内的预测算法及其相关参数信息实时更新。
[0066] S3接收外部写入的用户预测需求信息,所述的用户预测需求信息包括用户所需的预测精度信息、预测规律类型信息、预测周期信息以及预测算法特性信息;接收到的用户预测需求信息是以键-值对的方式存储于系统的配置文件中的;接收到的用户预测需求信息进行解析并储存,具体包括步骤:
[0067] S301从配置文件中逐条读取所有的用户预测需求信息并判断读取的信息是否合法:
[0068] 若读取的信息为合法输入,则按键-值分隔符对该信息进行分割并将分割后的键信息和值信息分别存储于系统中;
[0069] S302重复S301,直到配置文件的末尾;
[0070] 若S301中读入的信息为非法输入则系统报错,并可以跳出系统的步骤,等待外部重新写入用户预测需求信息;
[0071] S4将已解析的用户预测需求信息逐一地与算法池内存储的预测算法进行匹配,选择出匹配程度最大的预测算法并将该预测算法及其相关参数信息更新至预测算法存储单元;具体包括步骤:
[0072] S401读取第一条用户预测需求信息,并以此为关键词搜寻算法池内匹配该信息的预测算法;当遇到第一个与该信息适配的预测算法时,停止搜索;
[0073] S402针对该预测算法匹配下一条用户预测需求信息;
[0074] S403若该预测算法对所有的用户预测需求信息逐一适配,将该预测算法及其相关参数信息更新至预测算法储存单元;
[0075] S404若该预测算法对所有的用户预测需求信息不能逐一适配,则将该预测算法及其相关参数信息备份于系统中,并对算法池内未经搜索的预测算法重复S401以及S402;
[0076] S405若算法池内所有的预测算法均不能对所有的用户预测需求逐一适配,选择备份于系统中的预测算法中与所有的用户预测需求信息最大匹配者,并将该预测算法及其相关参数信息更新至预测算法储存单元。
[0077] S5获取系统提供的负载数据。
[0078] S6基于预测算法存储单元内的预测算法及其相关参数信息建立负载预测模型,利用负载数据训练负载预测模型。
[0079] S7使用训练好的负载预测模型对集群负载进行预测,得到预测结果。
[0080] 实施例2
[0081] 本实施例的具体步骤与实施例1一致,但在步骤S3中,接收到的用户预测需求信息是以XML格式存储于系统的配置文件中的,因此在对接收到的用户预测需求信息进行解析并储存时,具体包括步骤:
[0082] 解析用户预测需求信息的数据根节点,并将根节点及其属性信息存储于系统中,再以循环遍历的方式解析用户预测需求信息的子节点及其属性信息,并存储至系统中;
[0083] 以此类推,直到所有的用户预测需求信息的节点信息都已解析完毕。
[0084] 在实施例1和实施例2中,算法池可以具体为指定的系统目录下的文件或在算法信息量比较大的情况下选择的数据库,即预测算法及相关参数信息以一定格式存储于指定系统目录下的文件或者在算法信息量比较大的情况下存储于数据库。预测算法的种类很多,能够应用到分布式集群系统负载的预测算法主要包括基于模拟人脑训练活动的神经网络算法BP-NN(Back Propagation Neural Network)和基于时间序列的指数加权移动平均算法EWMA(Exponentially Weighted Moving-Average)。
[0085] 写入系统的用户预测需求信息可以以键-值对的方式或以XML格式存储在配置文件中。在对配置文件中的用户预测需求信息进行解析时,首先需要判断配置文件的格式类型:
[0086] 如果需求信息是以键-值对的方式存储(本发明的实施例1采用此种存储方式),则从配置文件中逐条读入数据信息并对其进行解析:
[0087] 若读取的信息为合法输入,则按键-值分隔符对信息进行分割并将分割后的键信息和值信息分别存储在预先设计好的数据结构中;
[0088] 若读入的信息为非法输入则系统报错;
[0089] 如此反复,直到文件末尾;
[0090] 如果需求信息是以XML格式存储(本发明的实施例2采用此种存储方式),则首先解析数据根节点,并将根节点及其属性信息存储到预先设计好的数据结构中,再以循环遍历的方式解析子节点及其属性信息,并存储到相应的数据结构中。依次类推,直到所有的节点信息都已解析完。
[0091] 配置文件准确的解析完后,预测需求信息便存储在预先设计好的数据结构中,当需要用到预测需求信息时可以直接通过相应的数据结构索引访问到所需的预测需求信息。
[0092] 根据已解析的用户预测需求信息逐一地从算法池中匹配预测算法,直到选择出与用户预测需求信息最为匹配的预测算法。基于实施例1以及实施例2的相关步骤,在具体的实施过程中可进一步遵循如下步骤:
[0093] a算法控制器读取第一条预测需求信息,并以此为关键词从预测算法文件或数据库中匹配;
[0094] b当遇到第一个匹配到的算法时,存储到相应的预测算法存储数据结构中(此数据结构只存储最大匹配的预测算法信息),并针对此算法匹配下一条预测需求信息,若能继续匹配,则依次类推,直到所有的预测信息完全匹配或存在某一条预测需求信息不能匹配;
[0095] 若所有的预测信息都已完全匹配,则将匹配后的算法信息更新到预测算法存储数据结构中,提示匹配成功,退出算法选择流程;
[0096] 若存在某条预测需求信息不能匹配,则先将预测算法数据结构中的已匹配的算法信息进行备份,并清空预测算法存储数据结构,再在未进行匹配的算法信息中,继续从步骤b开始执行;
[0097] c若预测算法存储文件或数据库中的所有算法都不能完全匹配预测需求信息时,算法控制器根据用户需求的强烈程度提供三种选择:
[0098] i在用户对预测算法不做要求的情况下(使用默认的配置文件),算法控制器选择默认的预测算法并将其信息更新到预测算法存储数据结构中,提示使用默认预测算法,退出预测算法选择流程;
[0099] ii在用户对预测算法需求比较温和的情况下,算法控制器比较预测算法存储数据结构和备份数据结构中最大匹配的预测算法信息并更新到预测算法存储数据结构中,提示使用温和选择模式,退出预测算法选择流程;
[0100] iii在用户对预测算法需求强烈的情况下,由于预测算法存储文件或数据库中没有能够满足要求的算法,则清空预测算法存储数据结构和备份数据结构,提示算法选择失败,退出预测算法选择流程;
[0101] d对预测算法的选择返回结果,进行相应处理。
[0102] 实施例3
[0103] 如图2所示的一种分布式集群管理系统,包括集群调度模块1、负载监控模块2、负载预测模块3以及决策实施模块4,负载预测模块3进一步包括配置文件301、算法控制器302以及算法执行器303。
[0104] 集群调度模块1,将外部输入的用户预测需求信息存储于配置文件301,具体储存的形式在具体实施过程中可以为键-值对的方式或以XML格式。
[0105] 算法控制器302,包括存储能够对集群负载进行预测的预测算法及其相关参数信息的算法池320;算法控制器302对算法池320内的预测算法及其相关参数信息实时更新,并解析配置文件301中的用户预测需求信息;将已解析的用户预测需求信息逐一地与算法池320内储存的预测算法进行匹配,选择匹配程度最大的预测算法,并将该预测算法及其相关参数信息发送至算法执行器303。
[0106] 算法执行器303,接收预测算法及其相关参数信息,并请求负载监控模块2监测到的负载数据,该负载数据也可以由外部设备提供;算法控制器302得到负载数据后,根据该预测算法及其相关参数信息建立负载预测模型,并利用该负载数据训练负载预测模型;使用训练好的负载预测模型对集群负载进行预测,并将得到预测结果返回至集群调度模块1。
[0107] 集群调度模块1,接收该预测结果并将该预测结果作为调度决策的参考,输出调度决策至决策实施模块4。
[0108] 决策实施模块4,接收该调度决策,根据系统所处的实际物理环境执行调度决策。
[0109] 本实施例输入的用户预测需求信息包括用户所需的预测精度信息、预测规律类型信息、预测周期信息以及预测算法特性信息。
[0110] 算法控制器302内设有信息需求存储单元321,用以储存已解析的用户预测需求信息;因配置文件301中写入的用户预测需求信息的储存方式有所不同,算法控制器302的具体解析过程包括如下两种方式:
[0111] 对以键-值对的方式存储于配置文件301中的用户预测需求信息,算法控制器302从配置文件301中逐条读取所有的用户预测需求信息并判断读取的信息是否合法:
[0112] 若读取的信息为合法输入,则算法控制器302按键-值分隔符对该信息进行分割并将分割后的键信息和值信息分别存储于信息需求存储单元321中;
[0113] 若读入的信息为非法输入则算法控制器302报错;
[0114] 如此反复,直到配置文件301的末尾。
[0115] 对以XML格式存储于配置文件301中的用户预测需求信息,算法控制器302首先解析用户预测需求信息的数据根节点,并将根节点及其属性信息存储于信息需求存储单元321中,再以循环遍历的方式解析用户预测需求信息的子节点及其属性信息,并存储至信息需求存储单元321中;以此类推,直到所有的用户预测需求信息的节点信息都已解析完毕。
[0116] 算法控制器302还包括预测算法储存单元322,用以储存最大匹配的预测算法及其相关参数信息。算法控制器302具体的匹配流程包括以下步骤:
[0117] 读取第一条用户预测需求信息,并以此为关键词搜寻算法池内匹配该信息的预测算法;当遇到第一个与该信息适配的预测算法时,停止搜索;
[0118] 针对该预测算法匹配下一条用户预测需求信息:
[0119] 若该预测算法对所有的用户预测需求信息逐一适配,将该预测算法及其相关参数信息更新至预测算法储存单元322;
[0120] 若该预测算法对所有的用户预测需求信息不能逐一适配,则将该预测算法及其相关参数信息备份于系统中,并对算法池320内未经搜索的预测算法重复上述步骤;
[0121] 若算法池内所有的预测算法均不能对所有的用户预测需求逐一适配,选择备份于系统中的预测算法中与所有的用户预测需求信息最大匹配者,并将该预测算法及其相关参数信息更新至预测算法储存单元322。
[0122] 在本实施例中,算法池可以具体为指定的系统目录下的文件或在算法信息量比较大的情况下选择的数据库,即预测算法及相关参数信息以一定格式存储于指定系统目录下的文件或者在算法信息量比较大的情况下存储于数据库。预测算法的种类很多,能够应用到分布式集群系统负载的预测算法主要包括基于模拟人脑训练活动的神经网络算法BP-NN(Back Propagation Neural Network)和基于时间序列的指数加权移动平均算法EWMA(Exponentially Weighted Moving-Average)
[0123] 将本实施例的分布式集群管理系统用于具体物理机调度的部分关键实验过程如下:
[0124] 用户预测需求信息为:预测周期为3、精度为0.001;具体将该系统应用于2台物理机,负载监测模块2提供该2台物理机的负载数据;
[0125] 集群调度模块1将用户预测需求信息输入到xml格式的配置文件301中:
[0126]
[0127]
[0128]
[0129]
[0130]
[0131] 算法控制器302根据用户预测需求信息选择出满足需求的预测算法,即神经网络算法BP-NN,选择后的预测算法及其相关参数信息用xml格式表示如下:
[0132]
[0133]
[0134]
[0135] [0136]
[0137]
[0138]
[0139]
[0140] 算法控制器302将该预测算法及其相关参数信息发送到算法执行器303,算法执行器303根据该预测算法及其相关参数信息建立预测模型,并基于输入的负载数据对该预测模型进行训练,将训练好的预测模型用于负载预测,并将预测结果输出。输入的负载信息用xml格式表示如下(时间间隙为15秒):
[0141] 第一组训练数据:
[0142]
[0143]
[0144]
[0145]
[0146]
[0147] 第二组训练数据:
[0148]
[0149]
[0150]
[0151]
[0152]
[0153] 第三组训练数据:
[0154]
[0155]
[0156]
[0157]
[0158]
[0159] 负载预测输入数据:
[0160]
[0161]
[0162]
[0163]
[0164]
[0165] 负载预测输出数据:
[0166]
[0167]
[0168]
[0169]
[0170]
[0171] 算法执行器输出预测结果
[0172] 由上述实施例可以看出,在预测需求为精度为0.001,预测周期为3的情况下,算法控制器自适应的选择了满足需求的神经网络算法BP-NN作为预测算法,并在负载趋势为上升的情况下,给出了预测结果。从预测结果可以看出,预测算法给出的预测结果符合负载上升的趋势,满足了预测需求。
[0173] 本实施系统的另一特性是支持算法池320内预测算法的插拔,即算法控制器302对算法池320内的预测算法及其相关参数信息实时更新,具体可通过下述步骤实现算法池320内预测算法的可插拔:
[0174] 当有满足新的用户预测需求的预测算法及其相关参数信息需要加入到算法池320内时,将预测算法以相应的数据结构存储到算法控制器302中;同时,将新的预测算法及其实现过程加入到算法控制器302中,并在算法控制器302内注册相应接口;
[0175] 算法控制器302将新的预测算法及其相关参数信息添加到算法池320中,实现对算法池320内的预测算法及其相关参数信息的添加。
[0176] 当需要将不能满足当前用户预测需求信息或很少使用的预测算法从算法池320中删除时,只需在算法控制器302中将要删除预测算法的相应接口进行注销即可,如此则实现了对算法池320内的预测算法及其相关参数信息的删除。
[0177] 算法控制器302对算法池320内的预测算法及其相关参数信息的添加以及删除构成了对算法池320内预测算法的实时更新。