一种基于自主学习的系统调优方法、框架及其装置与流程

    专利查询2022-07-07  201



    1.本发明涉及测试自动化、软件系统调优、机器学习领域,特别涉及一种基于自主学习的系统调优方法、框架及其装置。


    背景技术:

    2.随着互联网软件的产品不断的发展,需要迭代更新比较快,软件测试越发重要,为了达到生产的最优和稳定性,需要耗费大量的人力资源进行测试调优,人工调优,参数调节可能会覆盖不全面,不能找到最优结果;
    3.当前一个系统的调优过程涉及到繁重的重复测试和调适工作,需要投入大量的人力和经历漫长调优过程方能取得较好的优化结果。本案的自主系统调优方案,可以自行完成工作负载激发,性能评价,参数调适,以及实现基于时间、迭代周期或者人工干预的停机,最终获得系统最优解或局部最优解。整个过程完全自动化完成,无需人为参与,从而释放了人力资源。同时,完全自动化的调优过程,无人工参与也可以显著加速调优过程,大大缩短调优周期。


    技术实现要素:

    4.本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于自主学习的系统调优方法、框架及其装置。
    5.本发明提供了如下的技术方案:
    6.本发明提供一种基于自主学习的系统调优方法、框架及其装置,包括以下步骤:
    7.(1)算法模块通过初始构建workload测试case,将case交由给workload控制器;
    8.(2)workload控制器获取到相应的case,通过控制器的case生成相应的测试数据,对被测系统进行压力测试;
    9.(3)被测系统在压力测试下会产生一系列数据;
    10.(4)性能收集器收集被测系统的测试数据,进行清洗,分析等工作,将最终分析的结果传递给比较器;
    11.(5)比较器将性能收集器收集过来的不同参数下的性能情况进行对比,将每个参数的下的性能情况比较,并进行整理,交由算法模块进行处理,最终整理的结果存储下来,以便进行分析;
    12.(6)算法模块获取到数据后,主要处理两个问题,一是建立在比较器的基础之上评价不同参数下系统的性能,然后进一步基于各个参数特性作出新的调参决策,把调参决策下发到调参器,此过程持续迭代,直到当调节任何参数都无法提高系统的性能时,另一个是为workload提供工作负载策略,通过比较器中处理的数据,在算法模块中进行计算后续的工作负载如何进行;算法模块主要是将通过算法的原理和思想进行对参数取值,然后根据取值情况,再进一步对参数取值,如此循环往复,最终获取到最优的参数和最优的结果;上面说到的不限具体的算法,例如梯度下降思想、回归算法、神经网络以及聚类算法等;
    13.(7)调参器收到调参结果后,对系统进行调参,并使被测系统在调节后的参数下进行运行;
    14.(8)workload收到算法模块的测试case后进行下一轮测试,如此循环(1),(2),(3),(4),(5),(6),(7)步骤,获取到最好性能下的参数。
    15.与现有技术相比,本发明的有益效果如下:
    16.当前一个系统的调优过程涉及到繁重的重复测试和调适工作,需要投入大量的人力和经历漫长调优过程方能取得较好的优化结果。本案的自主系统调优方案,可以自行完成工作负载激发,性能评价,参数调适,以及实现基于时间、迭代周期或者人工干预的停机,最终获得系统最优解或局部最优解。整个过程完全自动化完成,无需人为参与,从而释放了人力资源。同时,完全自动化的调优过程,无人工参与也可以显著加速调优过程,大大缩短调优周期。
    附图说明
    17.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
    18.图1是本发明的实施例示意图之一;
    19.图2是本发明的实施例示意图之二;
    20.图3是本发明的实施例示意图之三。
    具体实施方式
    21.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。其中附图中相同的标号全部指的是相同的部件。
    22.实施例1
    23.如图1-3,本系统是一种基于自主学习的系统调优方法,框架及其装置,系统主要是实现自动化调参,使系统能够在最优的参数下运行,本方案主要是针对自主学习,自动调优的实现过程,全程过程中不需要人为参数,进而释放人力资源的一个系统和方案,这个系统有可以循环的架构体系,可以进行自主的,完善的进行参数的调节优化,本系统还有一个核心就是结合机器学习进行对参数的取值,评定以及筛选,同时还可以通过算法模块对整个系统的workload进行算法模拟数据。
    24.假设系统api调用延迟可以建模为函数,其可视化展示如图3。那么我们的调优过程就是不断迭代调适参数,最终寻求到全局最优(h点)或局部最优(d点)的过程。
    25.应用举例,以下基于本方案对redis存储系统性能调优为例说明各子系统及算法模块工作原理。
    26.本例选取redis两个参数进行自动调节优化,save是redis的数据存储load磁盘的配置项。其中,参数1是确定多长时间落盘一次,参数2是确定每次落盘多少条数据。通过自动调优框架实现对两个参数的自动调节,workload生成,性能评价等,最终使得get和put两个接口获得最优时间延迟。
    [0027] 参数说明参数类型取值范围
    参数1落盘时间间隔int1-86400参数2每次落盘条数int1-10000000
    [0028]
    本次测试的样例将说明系统是如果运作和调优的,
    [0029]
    1.将系统的参数、取值范围、系统参数配置方式输入系统中,配置好相关连接配置以保证系统能够正常运行测试。
    [0030]
    2.启动自主学习调优系统,workload产生数据,测试读写等耗时情况,性能收集器将请求耗时情况进行收集,然后将收集好的信息输送给比较器进行处理。
    [0031]
    3.比较器将数据进行比较以及存储处理,将数据递交给算法模块。
    [0032]
    4.算法模块将根据比较器传递过来的信息进行处理,处理每种参数组合的请求耗时情况,进行统计和算法处理,根据这个结果进行对参数进行调节。
    [0033]
    (1).确定参数的初始值,在取值范围去选取一个值,例如参数1=43200,参数2=5000000。
    [0034]
    (2).确定一个初始参数改变方向,例如参数取值都是正向的取值x,下个取值参数1=43200 x参数2=5000000由于控制单一变量一次只改一个参数。
    [0035]
    (3).确定每次参数改变的步长,例如上面说的x就是步长,即每次移动多大此刻x=1000。
    [0036]
    (4).算法的过程,从初始值,初始方向,步长进行第一次确定下一组参数的取值,如下表格样例,
    [0037] 第一组第二组参数14320043300参数250000005000000结果时延0.20ms0.19ms
    [0038]
    在上述表格中,第一组参数对应的结果是0.20ms,第二组的参数对应的结果是0.19,通过这两组数据,现在确定第三组参数的改变方向,即正向,如下表格样例
    [0039] 第三组第四组...参数143400433500...参数250000005000000...结果时延0.195ms0.18ms...
    [0040]
    可以看出第二组到第三组数据,第三组结果是0.195ms,通过第二组和第三组数据,确定第四组参数的改变方向,即负向,此刻负向的步长不能是x=1000了即步长x=500,需要减小步长,这里面我们采用的是二分法进行减小步长处理,进而确定第四组参数取值,上述的取值步骤,直至参数移动至最小取值粒度,确定一个极值。
    [0041]
    (5).重新确定参数的初始值,初始改变方向以及初始步长进行上述步骤获取极值对应的参数值上述步骤思想如图3,abcd为一组测试取值,efgh为另一组测试取值。
    [0042]
    (6).则进行多组初始化操作,进行多组极值进行比较选择最好的,固定第一个参数,按照上述步骤改变第二个参数进行测试,我们这里是2个参数,如果多个将控制多个参数进行一个参数一个参数的进行改变处理。将最终选取好的值交由下游调参器,对redis参数进行调节,并使redis系统生效。
    [0043]
    上面(1)(2)(3)(4)(5)(6)所涉及到的方法和思路,本模块可能会用到,但不局限
    于这些,算法模块调参方法不局限此步骤。此处只是举例用于更好的理解。
    [0044]
    5.算法模块通过算法计算为workload提供数据格式,workload产生数据,测试redis系统,性能收集器将请求耗时情况进行收集,然后将收集好的信息输送给比较器进行处理。
    [0045]
    6.如此循环往复形成一个闭环,进而不断的参数优化。上面提到的梯度下降算法,本系统会用到但不局限与这个算法。如图1和图2所示。
    [0046]
    最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-1893.html

    最新回复(0)