发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种快速定位带宽最优值的方法、系统、装置及介质。
第一方面,本发明提供一种快速定位带宽最优值的方法,包括:通过带宽性能测试工具对设备在预设的至少三种处理进程数量条件下进行带宽测试得到至少三组带宽性能数据,通过拟合函数对至少三种处理进程数量和相应的带宽性能数据进行拟合,得到带宽性能和处理进程数之间的拟合模型;对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽性能值;
以拐点处的处理进程数条件进行带宽测试得到实测带宽性能值,校验预测带宽性能值和实测带宽性能值的误差是否在设定的误差阈值范围内,在误差阈值范围内,则以拐点对应的预测带宽值为最优带宽值,以拐点的处理进程条件为最优条件,否则,进行带宽测试并进行拟合,直至校验经拟合模型得到的预测带宽值和实测带宽值的误差在设定的误差阈值范围内。
更进一步地,所述处理进程数设置为设备中测试磁盘数量与二的次幂的乘积,即N×2^M,其中N为测试磁盘数量,M为二的次幂为M=0,1,2……。
更进一步地,所述拟合函数采用对数拟合函数:y=alnx+b,其中,x为处理进程数,y为带宽性能,a和b为拟合需要确定的系数,其中,a>1。
更进一步地,对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽值包括:
预设衡量阈值;
对所确定的拟合模型进行求导,逐步增加处理进程数量获取不同处理进程数量条件下衡量增加处理进程数量对带宽性能增长的影响力;
比较所述影响力是否等于衡量阈值或刚小于衡量阈值;是则,以影响力等于或刚小于衡量阈值的拟合模型中的点为拐点,取拐点所对应的带宽性能值为预测带宽性能值。
更进一步地,预设误差阈值,计算预测带宽性能值和实测带宽性能值之差与实测带宽性能值的比值是否超出误差阈值实现校验预测带宽性能值和实测带宽性能值的误差是否在设定的误差阈值范围内。
更进一步地,在进行实测带宽性能值测量时,以拐点处的处理进程数条件进行多次带宽测试得到若干测量带宽性能值,对测量带宽性能值求平均值得到实测带宽性能值。
第二方面,本发明提供一种快速定位带宽最优值的系统,包括:测试模块,所述测试模块通过带宽性能测试工具对设备在预设的至少三种处理进程数量条件下进行带宽测试得到至少三组带宽性能数据;拟合模块,所述拟合模块通过拟合函数对至少三种处理进程数量和相应的带宽性能数据进行拟合得到拟合模型;分析模块,所述分析模块对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽性能值;校验模块,所述校验模块以拐点处的处理进程数条件进行带宽测试得到实测带宽性能值,校验预测带宽性能值和实测带宽性能值的误差是否在设定的误差阈值范围内,在误差阈值范围内,则以拐点对应的预测带宽值为最优带宽值,以拐点的处理进程条件为最优条件,否则,进行带宽测试并进行拟合,直至校验经拟合模型得到的预测带宽值和实测带宽值的误差在设定的误差阈值范围内。
更进一步地,所述的快速定位带宽最优值的系统还包括配置模块,所述配置模块用于对快速定位带宽最优值的系统所涉及的衡量阈值、误差阈值以及求实测带宽性能值时的测量次数进行配置。
第三方面,本发明提供一种快速定位带宽最优值的装置,包括:处理单元,总线单元和存储单元,其中,所述总线单元连接存储单元、处理单元,所述存储单元存储计算机程序,计算机程序被处理单元执行时实现所述的快速定位带宽最优值的方法。
第四方面,一种实现快速定位带宽最优值的方法的存储介质,所述存储介质存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的快速定位带宽最优值的方法。
本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明通过带宽测试工具对设备在预设的至少三种处理进程数量条件下进行带宽测试得到至少三组带宽性能数据,通过拟合函数对至少三种处理进程数量和相应的带宽性能数据进行拟合,得到带宽性能和处理进程数之间的拟合模型;对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽性能值;以拐点处的处理进程数条件进行带宽测试得到实测带宽性能值,校验预测带宽性能值和实测带宽性能值的误差是否在设定的误差阈值范围内,在误差阈值范围内,则以拐点对应的预测带宽值为最优带宽值,以拐点的处理进程条件为最优条件,否则,进行带宽测试并进行拟合。本发明通过拟合函数进行拟合的方式进行带宽最优值的定位,所需的测试数据数量少,效率高,适合测试业务多的带宽最优性能定位。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
实施例1
参阅图1所示,本发明提供一种快速定位带宽最优值的方法,包括:
S100,通过带宽性能测试工具对设备在预设的至少三种处理进程数量条件下进行带宽测试得到至少三组带宽性能数据。
具体实施过程中,所采用的带宽性能测试工具不限于vdbench测试工具,以处理进程数为输入变量,测试出来的带宽性能数据为输出变量,得到至少三组测试数据。
在一种优选地实施方式中,所述处理进程数设置为设备中测试磁盘数量与二的次幂的乘积,即N×2^M,其中N为测试磁盘数量,M为二的次幂为M=0,1,2……。如测试磁盘数量为8个,则处理进程数依次是8×2^0,8×2^1,8×2^2。
S200,通过拟合函数对至少三种处理进程数量和相应的带宽性能数据进行拟合,得到带宽性能和处理进程数之间的拟合模型。
在一种优选地实施方式中,所述拟合函数采用对数拟合函数:y=alnx+b,其中,x为处理进程数,y为带宽性能,a和b为拟合需要确定的系数,其中,a>1。
在一种优选地实施方式中,所述拟合函数采用对数拟合函数:y=aln(x+c)+b,其中,x为处理进程数,y为带宽性能,a、b和c为拟合需要确定的系数,其中,a>1。
具体实施过程中,实现拟合采用的工具包括但不限于matlab、python、octave和Excel;以python为例,利用scipy包中optimize工具的curve_fit函数实现对数函数的拟合;python脚本定义对数函数方法。python脚本定义步骤S100中带宽测试的测试数据加载器,所述测试数据加载器按测试分组加载指定文件中存储的带宽测试时处理进程数和相应的带宽性能数据。所述指定文件中按测试分组存储带宽测试时处理进程数和相应的带宽性能数据。Python脚本定义拟合方法,拟合方法调用curve_fit函数实现对基于对数函数方法所创建对数函数对象的拟合并返回拟合结果。主程序调用测试数据加载器获取测试数据,调用对数函数方法进行拟合。
在一种优选地实施方式中,针对不同带宽测试画出其拟合模型的拟合曲线和测试数据分布图。
S300,对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽性能值。具体实施过程中,参阅图2所示,对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽性能值包括:
S301,预设衡量阈值。具体的,一种优选地衡量阈值采用0.2。
S302,对所确定的拟合模型进行求导,逐步增加处理进程数量获取不同处理进程数量条件下衡量增加处理进程数量对带宽性能增长的影响力;如当得到的y=a1lnx+b1时,对拟合模型求导得到y’=a1/x;将处理进程数量代入到导数公式得到的导数值即为不同处理进程数量条件下衡量增加处理进程数量对带宽性能增长的影响力。由于a>0的对数函数为单调增函数,且x为正整数,拟合模型的导数为单调减函数。
S303,比较所述影响力是否等于衡量阈值或刚小于衡量阈值。是则执行S304,否则执行S302。等于或刚小于衡量阈值,再增加处理进程数量,所处理进程数量对带宽性能增加的影响就减弱到小于衡量阈值,增加处理进程数量的性价比偏低。
S304,以影响力等于或刚小于衡量阈值的拟合模型中的点为拐点,取拐点所对应的带宽性能值为预测带宽性能值。
S400,以拐点处的处理进程数条件进行带宽测试得到实测带宽性能值。在一种优选地实施方式中,进行实测带宽性能值测量时,以拐点处的处理进程数条件进行多次带宽测试得到若干测量带宽性能值,对测量带宽性能值求平均值得到实测带宽性能值。具体的,预设进行实测带宽性能值测量时的测试数量为3,以拐点处的处理进程数量为条件,处处理进程数量外的其余测试条件与步骤S100中
S500,校验预测带宽性能值和实测带宽性能值的误差是否在设定的误差阈值范围内,在误差阈值范围内,则执行S600,否则,重新执行S100-S500,进行带宽测试并进行拟合,直至校验经拟合模型得到的预测带宽值和实测带宽值的误差在设定的误差阈值范围内。
具体实施过程中,参阅图3所示,步骤S500包括:S501,预设误差阈值,一种优选的误差阈值采用10%。S502,计算预测带宽性能值和实测带宽性能值之差与实测带宽性能值的比值;S503,分析比值是否超出误差阈值;是则,执行S504,否则,执行S505;S504,判定带宽性能值和实测带宽性能值的误差未在设定的误差阈值范围内;S505,判定带宽性能值和实测带宽性能值的误差在设定的误差阈值范围内。
在一种优选地实施方式中,对循环执行S100-S500的次数进行计量,检测循环执行S100-S500的次数小于预设的次数阈值,则可继续循环执行S100-S500,否则,提示当前设备的带宽性能值无法通过拟合模型拟合。
S600,以拐点对应的预测带宽值为最优带宽值,以拐点的处理进程条件为最优条件。
实施例2
参阅图4所示,本发明实施例提供一种快速定位带宽最优值的系统,包括:
测试模块,所述测试模块通过带宽性能测试工具对设备在预设的至少三种处理进程数量条件下进行带宽测试得到至少三组带宽性能数据。所述测试模块将处理进程数量和相应的带宽性能数据按设定格式存储在指定文件中。
拟合模块,所述拟合模块通过拟合函数对至少三种处理进程数量和相应的带宽性能数据进行拟合得到拟合模型;具体的,所述拟合模块包括测试数据加载器、所述测试数据加载器读取指定文件获取测试模块进行带宽测试的测试数据;所述拟合模块构建对数拟合函数,调用拟合方法基于测试数据对拟合函数进行拟合得到拟合模型。
分析模块,所述分析模块对拟合模型进行分析确定带宽性能最优值的拐点以及拐点所对应的预测带宽性能值;所述分析模块对所确定的拟合模型进行求导,获取不同处理进程数量条件下衡量增加处理进程数量对带宽性能增长的影响力;比较所述影响力是否等于衡量阈值或刚小于衡量阈值。以影响力等于或刚小于衡量阈值的拟合模型中的点为拐点,取拐点所对应的带宽性能值为预测带宽性能值。
校验模块,所述校验模块以拐点处的处理进程数条件进行带宽测试得到实测带宽性能值,校验预测带宽性能值和实测带宽性能值的误差是否在设定的误差阈值范围内,在误差阈值范围内,则以拐点对应的预测带宽值为最优带宽值,以拐点的处理进程条件为最优条件,否则,进行带宽测试并进行拟合,直至校验经拟合模型得到的预测带宽值和实测带宽值的误差在设定的误差阈值范围内。
具体实施过程中,所述的快速定位带宽最优值的系统还包括配置模块,所述配置模块用于对快速定位带宽最优值的系统所涉及的衡量阈值、误差阈值以及求实测带宽性能值时的测量次数进行配置。
实施例3
参阅图5所示,本发明实施例提供一种快速定位带宽最优值的装置,包括:处理单元,总线单元和存储单元,其中,所述总线单元连接存储单元、处理单元,所述存储单元存储计算机程序,计算机程序被处理单元执行时实现所述的快速定位带宽最优值的方法。
实施例4
本发明实施例提供一种实现快速定位带宽最优值的方法的存储介质,所述存储介质存储计算机程序,所述计算机程序被处理器执行时实现所述的快速定位带宽最优值的方法。
在本发明所提供的实施例中,应该理解到,所揭露的结构和方法,可以通过其它的方式实现。例如,以上所描述的结构实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,结构或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。