一种基于人工鱼群算法的性能调优方法及工具的制作方法

文档序号:10534723阅读:259来源:国知局
一种基于人工鱼群算法的性能调优方法及工具的制作方法
【专利摘要】本发明涉及一种基于人工鱼群算法的性能调优方法及工具,具体涉及一种基于人工鱼群算法寻找系统参数的最优参数的软件工具及其方法,以达到优化软件系统性能的目的;本方法的核心为采用人工鱼群算法进行特定参数的性能测试,将测试结果作为目标函数值,反馈给算法核心,并由核心反馈运行结果给用户;本性能调优工具包括主服务器与从服务器,采用分布式架构;结构简单。本发明运用方便,可自动分析参数,从而极大地节约测试时间。
【专利说明】
一种基于人工鱼群算法的性能调优方法及工具
技术领域
[0001]本发明涉及计算机软件领域,尤其涉及一种基于人工鱼群算法的性能调优方法及工具。
【背景技术】
[0002]计算机软件技术已经得到了空前的发展。在计算机诞生的初期,软件仅仅是一些简单的计算实现,涉及的优化也仅仅是算法流程或者代码本身。但是,随着计算机软件规模的扩大,软件已经称为一个个系统。软件的每一层都会有复杂的参数和对外接口。
[0003]为了优化系统性能,我们往往需要对系统进行性能测试,然后根据测试结果调整系统参数。目前的测试工具多种多样,比如F1等工具,都能较好的反应系统本身的性能。但是,传统的性能调优有以下几个缺点:
[0004]I)可调参数可以说是复杂又繁多,从块设备的参数、文件系统参数、进程调度参数,自动的测试工具无法遍历所有的参数组合,时间随参数个数指数级上升。实际上,可以想到的最简单的方式就是把所有参数的组合都测一遍,然后找出性能最优的点。但是,在大多数情况是不现实的。
[0005]2)测试结果的分析大都是靠人工进行分析,依赖调优人员对于每个参数的理解。如公布号为CN 1588892A的专利。但是,需要调优人员对于参数本身有较好的理解。显而易见,对于系统本身的理解是必须的。有时候甚至是操作系统1协议栈的每个层次。这个对于,分析人员是个苦差事,需要严谨分析,和对系统的深入理解。
[0006]3)常见的优化软件的思路,运行期间,仅能在本机进行单次的系统测试,每次测试只能串行进行,无法发挥并发系统的优势,如公布号为CN 102184746A的专利。所以,及时模块甚至架构再严谨,也没有什么用,因为实际的计算分析过程耗时远远没有测试的过程多。

【发明内容】

[0007]本发明为克服上述的不足之处,目的在于提供一种基于人工鱼群算法的性能调优方法,本方法的核心为采用人工鱼群算法进行特定参数的性能测试,将测试结果作为目标函数值,反馈给算法核心,并由核心反馈运行结果给用户。本发明运用方便,可自动分析参数,从而极大地节约测试时间。
[0008]本发明另一目的在于提供一种基于人工鱼群算法的性能调优工具,本工具包括主服务器与从服务器,采用分布式架构;结构简单。
[0009]本发明是通过以下技术方案达到上述目的:一种基于人工鱼群算法的性能调优方法,采用人工鱼群算法对参数进行性能测试,包括步骤如下:
[0010](I)用户在Master服务器中新建可调整系统参数,并设定本次测试参数范围;
[0011](2)Master服务器的算法核心上的人工鱼群算法根据参数范围进行初始化,随机产生η个参数向量;
[0012](3)Master服务器中的测试部署模块将η个参数向量分发给η个Slaver服务器;
[0013](4)Slaver服务器中的参数实施模块调用数据解析模块,根据参数向量与其所对应的参数将Slaver服务器本地的系统参数进行调整;
[0014](5)Slaver服务器中的测试实施模块对调整后的系统参数进行测试,并将参数向量和对应的测试结果返回给测试部署模块;
[0015](6)测试部署模块将测试结果提取并作为目标函数输出返回给算法核心,算法核心向用户反馈结果。
[0016]作为优选,所述步骤(2)人工鱼群算法初始化包括:对鱼群规模m,最大迭代次数gen,人工鱼的感知范围VisuaI,最大移动步长step,拥挤度因子d进行初始化。
[0017]作为优选,所述随机产生参数向量的个数由Slaver服务器的数量决定。
[0018]作为优选,所述步骤(4)中参数向量所对应的参数的得到方式为Slaver服务器根据与Master服务器同步得到的参数对应关系,将参数向量对应到参数,此参数为参数向量所对应的参数。
[00?9]作为优选,所述Slaver服务器与Master服务器在算法核心进行初始化的同时进行同步参数对应关系。
[0020]一种应用如上所述方法的性能调优工具,采用主从式分布结构,包括一个Master服务器和若干个Slaver服务器,Master服务器与Slaver服务器连接。
[0021]作为优选,所述Master服务器包括算法核心与测试部署模块,算法核心与测试部署模块连接。
[0022]作为优选,所述Slaver服务器包括数据解析模块、参数实施模块、测试实施模块;参数实施模块调用数据解析模块用以调整参数;测试模块用于对调整后的参数进行测试并返回结果。
[0023]本发明的有益效果在于:(I)本发明只需要比较目标函数值,对目标函数的性质要求不高,算法对参数的选择的初值要求不高,初值随机产生或者采用固定值都可以产生良好的结果,算法具有并行处理的能力,寻优速度较快,算法具备全局寻优能力;对于参数寻优的过程,测试模块不用对所有的参数组合测试,就可以找到全局最优的解;(2)本发明只需要在前期提供可供选择的具体参数和值,选择本次的可调参数之后,无需人工干预;对于人员的知识依赖程度低,也不需要人员在运行期间进行人工干预;(3)本发明采用分布式架构进行测试和性能信息采集,充分发挥算法核心的并发处理能力。
【附图说明】
[0024]图1是本发明工具的结构示意图;
[0025]图2是本发明方法流程示意图。
【具体实施方式】
[0026]下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:
[0027]实施例:如图1所示,一种基于人工鱼群算法的性能调优工具采用主从的分布式结构,包括Matser主服务器与Slaver从服务器,Master服务器中包括运行人工鱼群算法的算法核心和测试部署模块;Slaver服务器中包括数据解析模块,参数实施模块和测试实施模块。
[0028]测试部署模块负责将性能测试任务分发给各个Slaver服务器中,接受Slaver服务器的测试结果,做结果的解析和筛选,反馈给算法核心。算法核心负责选择下一步的参数选择,将对应参数的测试任务发布到测试部署模块。数据解析模块,由于算法核心中的参数都是经过处理的,比如参数向量中的X1可能代表的参数是块设备的调度器,但是其取值为0、
1、2,实际的参数应该进行转化,转化为对应的字符串noop、deadl ine和cfq。提供给参数实施丰吴块。
[0029]参数实施模块:将对应的参数向量中的参数,实施到系统中,比如上面提到的调度器,将对应块设备的s chedu I er的文件内容修改为对应的值。
[0030]测试实施模块:参数修改完成后,测试实施模块,对系统按照标准的测试项目进行系统测试,并且将参数向量和对应的测试结果反馈给测试部署模块。
[0031]—种基于人工鱼群算法的性能调优方法如图2所示,初始化阶段,在Master服务器上用户新建可调整系统参数,在选择本次测试的参数范围之后,算法核心会进行初始化。对于Linux,常见的参数分为块设备参数、文件系统参数、网络参数等,比如块设备参数在/sys/block下,比如子文件夹sdb下就有很多块设备sdb对应的文件,比如scheduler可以选择n00p,deadline,Cfq。因此,这种类型的参数,用户只需要,指定参数为文件类型的参数,输入scheduler的文件路径,给出可能的三个选项。这样系统就会自动的把该参数量化到算法核心中,将noop,deadline,cfq和整数1,2,3建立对应关系。在这个阶段,Master服务器也应该将这些对应关系同步给所有的Slaver服务器。
[0032]每次,用户可能并不是需要测试所有的已有参数,因为,结果显示某个参数可能在每次的调优里并没有任何作用,可以去除。因此,每次运行以前,需要选择本次运行需要排查的参数范围PA。
[0033]算法核心,特别是对于人工鱼群算法,我们会初始化其鱼群规模m,最大迭代次数gen,人工鱼的感知范围Visual,最大移动步长step,拥挤度因子d等。这些参数,我们参考常见的人工鱼群算法的参数进行设置即可。也有很多改进的人工鱼群算法可以采用,所以这里并不根据具体的鱼群算法进行说明。在确定参数之后,鱼群会随机产生η个参数向量。一般根据当前Slaver服务器的个数m进行设置,n=m。
[0034]接着就是运行阶段,运行阶段,Master服务器中的测试部署模块,将初始化的η个参数向量分发给各个Slaver服务器。各个Slaver服务器会根据之前Master同步给它的参数对应关系,将向量对应到具体的参数,然后进行修改和测试。比如某个参数X1就是对应之前scheduler,那么Xi= I就将对应的scheduler调整为noop。
[0035]Slaver服务器接收到对应的参数向量之后,参数实施模块调用数据解析模块,根据向量跟对应的参数将Slaver服务器本地的系统参数进行调整后进行测试;测试后,测试实施模块将对应的参数向量和测试结果返回给测试部署模块。测试部署模块,将测试结果提取,作为目标函数输出,返回给鱼群算法核心。
[0036]以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。
【主权项】
1.一种基于人工鱼群算法的性能调优方法,其特征在于,采用人工鱼群算法对参数进行性能测试,包括步骤如下: (1)用户在Master服务器中新建可调整系统参数,并设定本次测试参数范围; (2)Master服务器的算法核心上的人工鱼群算法根据参数范围进行初始化,随机产生η个参数向量; (3)Master服务器中的测试部署模块将η个参数向量分发给η个Slaver服务器; (4)Slaver服务器中的参数实施模块调用数据解析模块,根据参数向量与其所对应的参数将Slaver服务器本地的系统参数进行调整; (5)Slaver服务器中的测试实施模块对调整后的系统参数进行测试,并将参数向量和对应的测试结果返回给测试部署模块; (6)测试部署模块将测试结果提取并作为目标函数输出返回给算法核心,算法核心向用户反馈结果。2.根据权利要求1所述的一种基于人工鱼群算法的性能调优方法,其特征在于:所述步骤(2)人工鱼群算法初始化包括:对鱼群规模m,最大迭代次数gen,人工鱼的感知范围Visual,最大移动步长step,拥挤度因子d进行初始化。3.根据权利要求1所述的一种基于人工鱼群算法的性能调优方法,其特征在于:所述随机产生参数向量的个数由SI aver服务器的数量决定。4.根据权利要求1所述的一种基于人工鱼群算法的性能调优方法,其特征在于:所述步骤(4)中参数向量所对应的参数的得到方式为Slaver服务器根据与Master服务器同步得到的参数对应关系,将参数向量对应到参数,此参数为参数向量所对应的参数。5.根据权利要求4所述的一种基于人工鱼群算法的性能调优方法,其特征在于:所述Slaver服务器与Master服务器在算法核心进行初始化的同时进行同步参数对应关系。6.—种应用如权利要求1所述方法的性能调优工具,其特征在于:采用主从式分布结构,包括一个Master服务器和若干个Slaver服务器,Master服务器与Slaver服务器连接。7.根据权利要求6所述的性能调优工具,其特征在于:所述Master服务器包括算法核心与测试部署模块,算法核心与测试部署模块连接。8.根据权利要求6所述的性能调优工具,其特征在于:所述Slaver服务器包括数据解析模块、参数实施模块、测试实施模块;参数实施模块调用数据解析模块用以调整参数;测试模块用于对调整后的参数进行测试并返回结果。
【文档编号】G06F11/36GK105893258SQ201610195627
【公开日】2016年8月24日
【申请日】2016年3月31日
【发明人】李义杰, 江云飞, 冯再麟, 郑寄平
【申请人】中电海康集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1