一种云端应用程序的参数配置方法及系统的制作方法
【技术领域】
[0001]本发明属于计算机技术领域,尤其涉及一种云端应用程序的参数配置方法及系统。
【背景技术】
[0002]凭借虚拟化技术的发展,云计算已成为一种日益重要的面向服务的计算模式,在云计算环境中,每个物理节点内都可能运行着多个虚拟机,同一物理节点上不同的虚拟机中很可能运行着不同的应用程序,众多的物理节点构成了多任务并行运行的大规模分布式虚拟机运行环境。多任务的并行运行可以提高资源的利用率,而应用程序的不合理配置会造成应用程序乃至虚拟机的性能衰减,由此需要正确地配置应用程序,以实现多任务的高效运行。
[0003]然而,运行在虚拟机之上的应用程序的各个模块的可配置参数对性能的影响不是独立的,这种多个参数之间相互依赖的关系复杂化了多元优化问题的求解,应用现有技术中的配置方法进行参数配置会造成算法的高复杂度,从而影响了配置效率。
【发明内容】
[0004]本发明实施例的目的在于提供一种云端应用程序的参数配置方法及系统,旨在解决现有技术对云计算环境中的应用程序进行参数配置时算法过于复杂,影响参数配置效率的问题。
[0005]本发明实施例是这样实现的,一种云端应用程序的参数配置方法,包括:
[0006]SI,遗传算法执行模块获取到运行在不同虚拟机上的每个应用程序的参数配置信息,将所述参数配置信息作为输入,通过遗传算法输出一组参数配置组合,所述参数配置组合中包含了每个所述应用程序的参数值;
[0007]S2,所述参数配置模块获取该参数配置组合,根据该参数配置组合对每个所述应用程序进行参数配置,并获取经过了该参数配置之后的每个所述应用程序的响应时间;
[0008]S3,所述遗传算法执行模块接收所述参数配置模块反馈的每个所述应用程序的响应时间,将每个所述应用程序的响应时间作为评价函数的返回值;
[0009]S4,所述遗传算法执行模块判断遗传算法的当前迭代次数是否达到了预设的迭代次数,若所述当前迭代次数未达到所述预设的迭代次数,重复执行所述SI至所述S3 ;若所述当前迭代次数达到了所述预设的迭代次数,所述遗传算法执行模块中止运行。
[0010]本发明实施例的另一目的在于提供一种云端应用程序的参数配置系统,所述系统包括遗传算法执行模块和参数配置模块,
[0011]所述遗传算法执行模块用于获取到运行在不同虚拟机上的每个应用程序的参数配置信息,将所述参数配置信息作为输入,通过遗传算法输出一组参数配置组合,所述参数配置组合中包含了每个所述应用程序的参数值;
[0012]所述参数配置模块用于获取该参数配置组合,根据该参数配置组合对每个所述应用程序进行参数配置,并获取经过了该参数配置之后的每个所述应用程序的响应时间;
[0013]所述遗传算法执行模块还用于接收所述参数配置模块反馈的每个所述应用程序的响应时间,将每个所述应用程序的响应时间作为评价函数的返回值;
[0014]所述遗传算法执行模块还用于判断遗传算法的当前迭代次数是否达到了预设的迭代次数,若所述当前迭代次数未达到所述预设的迭代次数,重复执行所述遗传算法执行模块和所述参数配置模块;若所述当前迭代次数达到了所述预设的迭代次数,所述遗传算法执行模块中止运行。
[0015]在本发明实施例中,应用遗传算法在应用程序的参数空间中搜索一个最优值的方法来解决应用程序的参数配置问题,这样经过多次迭代处理之后,能够在设定的参数空间内搜索得到一组最优的应用程序参数配置组合,使得多个应用程序的响应时间和最小,从而提升了应用程序的性能,且提高了云端应用程序的配置效率。
【附图说明】
[0016]图1是本发明实施例提供的云端应用程序的配置系统的总体架构图;
[0017]图2是本发明实施例提供的云端应用程序的配置方法的实现流程图;
[0018]图3是本发明另一实施例提供的云端应用程序的配置方法的实现流程图;
[0019]图4是本发明实施例提供的云端应用程序的配置方法S203的具体实现流程图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]图1示出了本发明实施例提供的云端应用程序的配置系统的总体架构,为了便于说明,仅示出了与本实施例相关的部分。
[0022]参照图1,基于云计算环境,该系统包括了遗传算法执行模块、参数配置模块,优选地,还包括了数据库,其中:
[0023]遗传算法管理模块封装了系统对遗传算法的调用过程,该过程包括获取云端应用程序的参数配置信息以设置遗传算法的参数,遗传算法的启动,将遗传算法产生的参数值传递给参数配置模块,从参数配置模块获取云端应用程序的响应时间,并将响应时间作为遗传算法的评价函数返回值,驱动遗传算法进入下一次迭代。
[0024]参数配置模块负责监视应用程序的性能变化,并根据遗传算法执行模块的执行结果对云端应用程序进行参数配置。参数配置模块部署在多个不同的虚拟机之上,其优化任务是应用程序级的性能优化,不需要操作系统和硬件层的信息。参数配置模块监控每一个应用程序的响应时间并管理着应用程序的参数配置,配置行为可以根据一个预设的时间间隔周期性地执行,当一个配置过程结束后,参数配置模块会收集集群中的每一个应用程序的响应时间,并将每一个应用程序的响应时间进行累加等处理后返回给遗传算法执行模块,遗传算法执行模块得到参数配置模块返回的信息之后再执行新的配置动作,这样经过多次迭代后集群中每个应用程序的响应时间会收敛到一个最小值。
[0025]基于图1所示的云端应用程序的配置系统,图2示出了本发明实施例提供的云端应用程序的配置方法的实现流程,详述如下:
[0026]在S201中,遗传算法执行模块获取到运行在不同虚拟机上的每个应用程序的参数配置信息,将所述参数配置信息作为输入,通过遗传算法输出一组参数配置组合,所述参数配置组合中包含了每个所述应用程序的参数值。
[0027]在本实施例中,所述遗传算法执行模块对遗传算法进行了封闭,因此,只需要定义好需要优化的评价函数以及相应的参数配置信息,遗传算法执行模块就可以像一个黑盒子一样进行调用,将参数配置信息输入对遗传算法执行模块之中,遗传算法执行模块就会自动地在可配置参数对应的可配置范围内进行搜索,以输出一组参数配置组合,该参数配置组合中即包含了为运行在不同虚拟机上的每个应用程序所配置的参数值。
[0028]所述遗传算法执行模块中,遗传算法的基本运算过程如下:
[0029]1、初始化:设置进化代数计数器t = 0,设置最大进化代数T,随机生成M个个体作为初始群体P (O)。
[0030]2、个体评价:计算群体P(t)中各个个体的适应度。
[0031]3、选择运算:将选择算子作用于群体,选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代,选择操作是建立在群体中个体的适应度评估基础上的。
[0032]4、交叉运算:将交叉算子作用于群体,遗传算法中起核心作用的就是交叉算子。
[0033]5、变异运算:将变异算子作用于群体,即是对群体中的个体串的某些基因座上的基因值作变动。
[0034]群体P(t)经过选择、交叉、变异运算之后得到下一代群体P (t+1)。
[0035]6、终止条件判断:若t = T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
[0036]作为本发明的一个实施例,所述参数配置信息包括所述应用程序的可配置参数及所述可配置参数对应的可配置范围。
[0037]作为本发明的一个实施例,在S201之前,如图3所示,所述方法还包括:
[0038]S205,所述参数配置模块将每个所述应用程序的所述参数配置信息存储在数据库中。
[0039]在本实施例中,可以通过人工方式将云计算环境之下运行在不同虚拟机上的每个应用程序的配置文件存储位置、可配置参数以及可配置参数对应的可配置范围一一输入至参数配置模块之中,在完成上述输入之后,参数配置模块会将每个应用程序的参数配置信息存储进数据库之中,这样,在S201中,遗传算法执行模块可以从该数据库中获取到每个应用程序的参数配置信息。
[0040]在S202中,所述参数配置模块获取该参数配置组合,根据该参数配置组合对每个所述应用程序进行参数配置,并获取经过了该参数配置之后的每个所述应用程序的响应时间。
[0041]在本实施例中,遗传算法执行模块每输出一组参数配置组合,就会将该参数配置组合发送给参数配置模块,参数配置模块即可根据该参数配置组合中的参数值,在对运行于不同虚拟机上的每个应用程序一一进行参数配置,同时,在进行了参数配置之后,通过监控应用程序的性能变化,参数配置模块获取到每个应用程序在进行参数配置之后的响应时间。
[0042]作为本发明的一个实施例,参数配置模块对应用程序的配置动作可以每隔预设的配置时间间隔执行一次,而不是在每次获取到遗传算法执行模块输出的参数配置组合之后就立即对应用程序执行参数配置,由此可以尽量使得参数配置动作不会为应用程序的正常运行带来影响。
[0043]在S203中,所