CN117193841A - 软件系统的配置参数调优方法及装置 - Google Patents
软件系统的配置参数调优方法及装置 Download PDFInfo
- Publication number
- CN117193841A CN117193841A CN202311171922.4A CN202311171922A CN117193841A CN 117193841 A CN117193841 A CN 117193841A CN 202311171922 A CN202311171922 A CN 202311171922A CN 117193841 A CN117193841 A CN 117193841A
- Authority
- CN
- China
- Prior art keywords
- tuning
- model
- configuration
- software system
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000012549 training Methods 0.000 claims abstract description 24
- 230000008447 perception Effects 0.000 claims abstract description 13
- 230000000694 effects Effects 0.000 claims abstract description 12
- 238000005070 sampling Methods 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 238000005457 optimization Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 22
- 238000005259 measurement Methods 0.000 claims description 17
- 230000003993 interaction Effects 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000006870 function Effects 0.000 description 13
- 230000008901 benefit Effects 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000003016 pheromone Substances 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请适用于参数调优技术领域,提供了一种软件系统的配置参数调优方法及装置,包括:获取软件系统的调优目标和成本模型;成本模型包括对调优目标的成本约束;基于调优目标确定具有配置结构感知的调优模型;针对调优目标,对软件系统的配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据;基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合;基于超参数组合,将调优模型与软件系统进行在线实时交互,得到软件系统的目标配置参数。本申请能够在未知的内部约束的情况下,进行配置调优。
Description
技术领域
本申请属于参数调优技术领域,尤其涉及一种软件系统的配置参数调优方法及装置。
背景技术
现代软件系统,如数据库、大数据分析系统和web服务器,允许用户通过选择和调整系统参数来定制系统,以实现理想的功能行为和非功能属性。由于配置和性能之间的关系是复杂的,在实践中是未知的,因此对于对目标系统缺乏深刻理解的用户来说,对大量的配置选项进行调优是极其困难的。
因此,在大多数生产系统中,用户将坚持使用可能无法满足运行环境的约束的默认配置。即使人类专家可用于特定的系统,手动配置总是劳动密集型和耗时的,而且通常只能产生次优解决方案。由此,对大量的配置选项进行调优需要一个调优模型,它可以自动配置软件系统以获得最佳性能的。
现有的关于自动配置调优的工作包括基于搜索的方法、基于学习的方法和生成方法。基于搜索的方法将系统性能视为一个黑盒,并直接使用搜索算法在求解空间中进行搜索。尽管基于搜索的方法的关键见解简单而直观,但它们往往缺乏关于配置空间的先验知识,因此搜索过程“不太面向”最优解决方案,这往往导致资源效率低下的调优过程。基于学习的方法为目标系统构建性能预测模型,并在预测模型的指导下,使用启发式搜索策略只探索更好的配置,但缺乏表征配置空间的关键思想。
一些生成化的方法基于基础数据分布来估计模型参数,而不是学习一个准确的预测器,能够解决上述缺乏关于配置空间的先验知识、资源效率低下的调优过程、缺乏表征配置空间的关键思想等配置调优问题。但这些生成化的方法仍处于起步阶段,为了处理内部约束,基于搜索的软件工程中的一些工作将内部约束视为一个布尔可满足性问题。然而,在存在未知的内部约束的情况下,这些生成化的方法并不能直接适用配置调优问题。
发明内容
为克服相关技术中存在的问题,本申请实施例提供了一种软件系统的配置参数调优方法及装置,以解决在未知的内部约束的情况下,如何进行配置调优问题。
本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了软件系统的配置参数调优方法,包括:
获取软件系统的调优目标和成本模型;成本模型包括对调优目标的成本约束;
基于调优目标确定具有配置结构感知的调优模型;
针对调优目标,对软件系统的配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据;
基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合;
基于超参数组合,将调优模型与软件系统进行在线实时交互,得到软件系统的目标配置参数。
在第一方面的一种可能的实施方式中,调优目标为基于软件系统中一个特定工作负载和一组待调整的性能调优问题所形成的;调优目标用于确定软件系统的最佳性能所对应的最佳配置参数;
调优目标表示为:
成本约束表示为:
其中,C为待测软件系统SUT的配置空间,W为待测软件系统SUT的工作负载,MC为待测软件系统SUT的测量数量,P(c|SUT,W)为软件系统的性能表现,c为配置;|Cm|为已测系统配置的数量。
在第一方面的一种可能的实施方式中,调优模型包括配置结构模型、比较模型、生成模型和解码模型;
基于调优目标确定具有配置结构感知的调优模型,包括:
基于调优目标,确定配置结构模型;
基于配置结构模型,确定比较模型;
基于比较模型构建生成模型;
基于配置结构模型和生成模型确定解码模型;
调优模型包括配置结构模型、比较模型、生成模型和解码模型。
在第一方面的一种可能的实施方式中,基于调优目标,确定配置结构模型,包括:
对调优目标所对应的配置空间进行编码;
基于调优目标和编码后的配置空间,利用自适应模糊推理方法确定配置结构模型的参数;配置结构模型的参数包括一组求解调优目标的规则集合和由已测配置训练过的感知数据;
基于配置结构模型的参数,确定配置结构模型。
在第一方面的一种可能的实施方式中,基于配置结构模型,确定比较模型,包括:
基于配置结构模型,构建配置空间的编码及配置空间的编码产生的对应的性能值的比较结果的样本集;
获取比较结果的样本集的反对称矩阵,并添加两个一次性项确定比较器;
基于已测配置的编码训练比较器;
基于训练好的比较器和高斯过程回归方法推导比较模型的参数;比较模型的参数包括在比较器中比较结果的分布情况;
基于比较模型的参数,确定比较模型。
在第一方面的一种可能的实施方式中,基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合,包括:
在成本模型的约束下,基于公开离线数据对调优模型进行离线训练,参数化调优模型下的配置结构模型的参数,生成推荐配置;
基于推荐配置和推荐配置所对应的性能,更新公开离线数据;
基于预先搭建的待测系统环境、训练好的调优模型和更新的公开离线数据进行迭代,直至调优目标的运算结果收敛在预设阈值范围内,获得当前配置结构模型的参数作为调优模型的超参数组合。
在第一方面的一种可能的实施方式中,在调优模型与软件系统进行在线实时交互过程中,基于目标配置参数和目标配置参数对应的性能,利用近似策略优化算法调整调优模型的超参数组合。
第二方面,本申请实施例提供了一种软件系统的配置参数调优装置,应用如第一方面的软件系统的配置参数调优方法,包括:
调优目标和成本模型获取模块,用于获取软件系统的调优目标和成本模型;成本模型包括对调优目标的成本约束;
调优模型确定模块,用于基于调优目标确定具有配置结构感知的调优模型;
获取和测量模块,用于针对调优目标,对软件系统的配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据;
第一调优模块,用于基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合;
第二调优模块,用于基于超参数组合,将调优模型与软件系统进行在线实时交互,得到软件系统的目标配置参数。
第三方面,本申请实施例提供了一种终端设备,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现如第一方面的软件系统的配置参数调优方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如第一方面的软件系统的配置参数调优方法。
本申请实施例与相关技术相比存在的有益效果是:
本申请实施例,针对系统的性能调优问题,通过确定在成本约束下的调优目标,并确定配置结构感知的调优框架,利用配置结构感知的调优框架对系统的性能调优问题的调优目标进行离线参数调整和在线性能调优,从而解决在未知的内部约束的情况下,系统的性能调优问题,具有成本约束低、算法收敛快、对于不同配置空间的软件系统自适应能力强的优点。
上述第二方面至第四方面的有益效果参见第一方面软件系统的配置参数调优方法的有益效果,此处不再赘述。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的软件系统的配置参数调优方法的流程示意图;
图2是本申请一实施例提供的确定具有配置结构感知的调优模型的流程示意图;
图3是本申请一实施例提供的对调优模型进行离线训练的流程示意图;
图4是本申请一实施例提供的软件系统的配置参数调优方法的调度框架图;
图5是本申请一实施例提供的自适应模糊推理网络结构图;
图6是本申请一实施例提供的软件系统的配置参数调优装置的结构示意图;
图7是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了使本技术领域的人员更好地理解本发明方案,下面将结合附图和具体实施方式,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,用户通过选择和调整系统参数来定制系统,以实现理想的功能行为和非功能属性,非功能属性包括系统性能、安全性和成本等。系统性能作为最重要的非功能属性之一,通常通过响应时间、每秒请求、吞吐量等来衡量系统性能。系统性能取决于在系统中运行的应用程序的类型,系统中运行的应用程序的类型不同,配置选项不同,并且配置和系统性能之间的关系复杂,由此产生如背景技术所描述的在未知的内部约束的情况下的系统调优问题。
本申请基于上述问题,提出一个调优方法,可以自动配置软件系统以获得最佳性能。
图1是本申请一实施例提供的软件系统的配置参数调优方法的示意性流程图,参照图1,对该软件系统的配置参数调优方法的详述如下:
一种软件系统的配置参数调优方法,包括:
步骤101,获取软件系统的调优目标和成本模型;成本模型包括对调优目标的成本约束。
示例性的,针对复杂系统性能调优问题,确定的调优目标的模型包括目标函数,决策空间和约束。目标函数为真实的系统上的性能表现,即系统的非功能属性之一目标函数直接影响用户的体验和运行成本,将其视作一个黑盒函数,对于给定的工作负载及确定的配置,使用包括目标函数的性能模型来表示给定系统的运行性能。配置参数表征配置的具体情况,一个配置可以有很多具体的配置参数,例如内存大小,CPU型号等,所有这些可以统称为配置。
决策空间为所有已测配置,所有已测配置包括离线数据记录以及在线数据交互所产生的配置。其中,每一个推荐的配置都经过实际运行验证,从而保证推荐的有效性。
成本约束为有限的测量数量,包括测量配置所对应的性能的测量数量,(即离线数据记录的测量次数)以及在线数据交互中的所有参与过测量的配置的测量数量。
示例性的,成本模型的建模过程包括对系统的运行时间,算法调优的时间等进行量化定义,成本模型用于衡量由于资源和时间消耗带来的成本。本实施例中以测量数量来衡量调优过程的主要成本,用于刻画对目标算法的成本约束,即在参数调优的过程中,任何调优过程中使用到的算法都在这个成本约束内完成调优工作。
调优目标属于优化问题框架下的内容之一,针对于系统的性能调优问题,确定的优化问题框架包括优化目标的目标函数,优化约束及性能模型。对于给定一个具有选定配置选项和相应的配置空间C、工作负载W和测量数量MC的待测软件系统SUT,调优的目标是确定真实系统上的性能表现P(c|SUT,W)能够达到最佳性能,并确定最佳性能所对应的最佳配置,其中c为配置。
示例性的,调优目标为基于软件系统中一个特定工作负载和一组待调整的性能调优问题所形成的;调优目标用于确定软件系统的最佳性能所对应的最佳配置参数。
调优目标表示为:
其中,Cm为已测系统配置。对一个选定的配置选项,在搭建的软件系统环境下进行运行,得到与该选定的配置选项对应的系统的性能,此时该选定的配置选项则为已测系统配置。
示例性的,基于求解调优目标带来的资源和时间消耗的成本,确定成本模型;成本模型包括对调优目标的目标函数的成本约束;成本约束用于确定成本分配情况。在驱动调优过程的进行,最终以系统性能最佳的配置参数作为推荐,以求解调优问题。
已测系统配置的数量不大于测量配置所对应的性能的测量数量。成本约束表示为:
其中,C为待测软件系统SUT的配置空间,W为待测软件系统SUT的工作负载,MC为待测软件系统SUT的测量数量,P(c|SUT,W)为软件系统的性能表现,c为配置;|Cm|为已测系统配置的数量。
示例性的,在优化问题框架下,确定软件系统参数调优中的成本分配情况和调优目标,并基于成本模型对调优目标进行约束,能够对系统运行时间,算法调优时间等进行量化定义。
步骤102,参见图4,基于调优目标确定具有配置结构感知的调优模型。调优模型包括配置结构模型、比较模型、生成模型和解码模型。
示例性的,参见图2,在步骤102中,基于调优目标确定具有配置结构感知的调优模型,包括:
步骤1021,基于调优目标,确定配置结构模型。
示例性的,基于调优目标,确定配置结构模型,包括:对调优目标所对应的配置空间进行编码;基于调优目标和编码后的配置空间D={d1,d2,…,dN},利用自适应模糊推理方法确定配置结构模型的参数;配置结构模型的参数包括一组求解调优目标的规则集合和由已测配置训练过的感知数据;基于配置结构模型的参数,利用自适应模糊推理网络确定配置结构模型。
示例性的,在图4中,针对一组优化目标P和约束c,另一组优化目标PB和约束cB,对两组分别形成的结构感知数据进行编码,分别得到编码code和code B,对配置空间进行编码,起到降维配置空间及提炼配置空间的结构特征的作用。
步骤1022,基于配置结构模型,确定比较模型。
示例性的,基于配置结构模型,确定比较模型,包括:基于配置结构模型,构建配置空间的编码产生的对应的性能值的比较结果的样本集。
其中,对配置空间的编码产生的对应的性能值的进行比较,通过以下公式进行:
其中,pi和pj为待比较的性能值,i=1,2,…N,j=1,2,…N。
获取比较结果的样本集的反对称矩阵,并添加两个一次性项确定比较器;基于已测配置的编码训练比较器。比较器的结果将表示输入配置结构编码pi所对应的性能值相对于参考配置编码pj所对应的性能值的优劣,取值大于0,则pi性能比pj优的可能性更高;取值小于0,则pi性能比pj优的可能性更低。
比较器的结构可以表示为:
其中,A和C为编码后的配置空间的反对称矩阵,B为对称矩阵,e和f是列向量,为配置空间的向量di的转置,/>为配置空间的向量dj的转置,i=1,2,…N,j=1,2,…N;由于要满足反对称性,比较器的常量项为0。
基于训练好的比较器和高斯过程回归方法推导比较模型的参数;比较模型的参数包括在比较器中比较结果的分布情况;基于比较模型的参数,确定比较模型。
使用高斯过程回归方法来估计比较器的参数,使用矩阵向量化算子Vec和拼接操作来将公式(4)中的比较器M的等式转换为线性形式:
其中,wv是矩阵Vec算子和w拼接的结果,噪声∈服从正态分布/>
在比较器M中输入vk,比较器M确定参数wv,得到di和dj比较结果的分布情况表示为:
步骤1023,基于比较模型构建生成模型。
示例性的,生成模型用于基于比较结果的分布情况,利用贝叶斯推理将比较模型的参数进行参数化,生成推荐配置的编码。
为了简明地描述生成器,定义f(d)=M(d,d(B)|w),其中,m表示在配置空间中选择出的样本集中m个配置一一映射到规则层的数量,/>d(B)表示样本集中最佳构型的结构特征。
利用贝叶斯推理将比较模型的参数进行参数化Pseudo code,推导出结构特征的分布,生成推荐配置的编码,即生成结构特征:
对生成结构特征进行后验假设:其中μk和/>是通过求解以下方程来确定的:
其中,dk满足先验假设后验概率为:
其中,a的值为0或者1,a=(a1,…,am)。
似然函数:
似然函数的似然值及其相应的条件概率可以用蒙特卡罗积分来近似。
综上,从而可以基于随机生成更好配置的结构特征/>
步骤1024,基于配置结构模型和生成模型确定解码模型。调优模型包括配置结构模型、比较模型、生成模型和解码模型。
示例性的,解码模型用于基于配置结构模型参数对推荐配置的编码进行解码,利用解码器实现配置编码的逆运算,生成推荐配置,推荐配置为新生成的配置cnew,将cnew用于后续的系统运行。
示例性的,通过构建配置结构感知的调优模型,使用配置编码的概念对配置空间进行降维表示以及基于贝叶斯推理进行潜力配置推荐,从而对复杂系统配置空间进行探索并实现调优。
步骤103,针对调优目标,对配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据。
示例性的,通过预采样收集对于调优目标相关的、有效的配置参数,并且通过运行测量有效的配置参数以获得性能的值,有效的配置参数和有效的配置参数所对应的性能作为公开离线数据。
其中,预采样的过程包括:针对待调整的配置的集合和配置之间的相互制约情况,随机生成配置并筛选出合法的配置参数。
获得公开离线数据的过程包括:搭建软件系统环境,并针对给定工作负载,基于筛选出的合法的配置参数运行待调优系统,测量其目标非功能属性并记录,以此构建离线训练样本集作为公开离线数据。
步骤104,基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合。
示例性的,参见图3,在步骤104中,基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合,包括:
步骤1041,在成本模型的约束下,基于公开离线数据对调优模型进行离线训练,参数化调优模型下的配置结构模型的参数,生成推荐配置。
示例性的,利用自适应模糊推理网络,训练配置结构模型,实现自动初始化模糊划分,得到一组求解调优目标的规则集合和由已测配置训练过的感知数据。
训练生成模型:应用均值漂移算法来确定每个已测配置的选项的聚类中心,并推导出初始高斯隶属度函数从集群中获取的信息,得到配置空间的编码及配置空间的编码产生的对应的性能值的比较结果。
其中,给定一个带有n选项的SUT,均值漂移算法标识每个集群的中心(例如,对于二进制选项,它们分别为0和1),记为:
结合式(3)中的聚类中心,自适应模糊推理系统的初始模糊划分公式为:
上式(11)确定出j=1,2,…,dimk(i)。
参见图5,本实施例利用自适应模糊推理网络,自动初始化调优目标的规则集合所在的值层信息,包括:将自适应模糊推理网络前两层之间的连接(即规则)作为已记忆的配置结构;将规则层输出作为配置和记忆结构之间的相似性度量;定义一个符合预设规则的有效的规则。预设规则为:至少存在一种配置,使该规则的发射强度大于预定义的阈值。
自动初始化规则层信息:首先需要选择m个配置作为样本集,样本集包含一部分高性能配置,其余部分配置是随机选择的。其次,确定了配置c和规则r之间的映射,高性能配置的在m个配置中所占比例,通过超参数优化方法进行确定,超参数优化方法可以是网格搜索方法。
其中,配置c和规则r之间的映射表示为:
其中,ck=(x1,x2,...,xn)指锚点,R表示[r(1),r(2),...,r(m)]。锚点可快速将访问者带到指定的映射位置。
基于步骤103中的训练样本集,生成模型使用步骤1041中完成初始化的自适应模糊推理网络的参数进行离线训练,得到推荐配置的编码,然后解码模型参数化在步骤1021中搭建的配置结构模型,生成推荐配置。
示例性的,上述通过自适应模糊推理网络,自动初始化规则层信息,使算法能够专注于良好的配置。
步骤1042,基于推荐配置和推荐配置所对应的性能,以及训练好的调优模型进行迭代,直至调优目标的运算结果收敛在预设阈值范围内,获得当前配置结构模型的参数作为调优模型的超参数组合。
示例性的,获取预先搭建待测系统环境,根据步骤1042中调优模型的流程进行系统调优,并根据推荐配置更新公开离线数据,直至调优目标的运算结果收敛在预设阈值范围内,获得当前配置结构模型的参数作为调优模型的超参数组合,还可以获得当前公开离线数据作为本步骤内推荐配置的结果,即初始配置参数。
步骤105,基于超参数组合,调优模型与软件系统进行在线实时交互,得到软件系统的目标配置参数。
示例性的,在该超参数组合下的调优模型,把调优模型推荐的配置提供给运行的软件系统,测量与调优模型输出的配置对应的性能,则与设置初始配置参数的软件系统进行了交互,即完成本次对软件系统进行调优过程,得到本步骤105软件系统的推荐配置结果,即目标配置参数。
示例性的,在调优模型与软件系统进行在线实时交互过程中,基于目标配置参数和目标配置参数对应的性能,利用近似策略优化算法调整调优模型的超参数组合。
其中,根据目标配置参数对应的性能,利用近似策略优化算法微调调优模型的超参数组合,使得调优模型能够推荐出更优的目标配置参数,将微调后调优模型的超参数组合下推荐目标配置参数和对应的性能存入公开离线数据,为以后的调优做数据储备。
为了更好的理解上述实施例中的技术方案,一实施例给出若8个广泛使用的可配置软件系统来评估通过本申请的软件系统的配置参数调优方法调优之后,客户对调优后的软件系统的满意度。
评估实验在两个云集群和一个云服务器上进行。每个集群由3台服务器组成,每台服务器都配备了4台CoreTMXeonCPU@2.50GHz和8GB RAM。该云服务器配备了两个CoreTMXeonCPU@2.50GHz和4GB RAM。
本实施例选择了8个广泛使用的可配置软件系统来评估客户满意度CSAT,8个广泛使用的可配置软件系统包括Hadoop、Spark、SQLite、Redis、Tomcat、Apache、x264和Cassandra。Hadoop是最流行的开源MapReduce框架;Spark是用于大数据处理的通用计算引擎;SQLite是一个开源的关系数据库管理系统;Redis是一个开源高效的键值数据库;Tomcat和Apache是一个web应用服务器的开源实现;x264是一个开源的视频编码器;Cassandra是一个开源的NoSQL数据库管理系统。
对于Hadoop和Spark,本实施例使用Hibench来评估它们的吞吐量,使用Redis-Bench来评估每秒对Redis的请求。对于Apache和Tomcat,使用Apache-Bench来每秒评估它们的请求,使用YCSB来评估每秒卡桑德拉的操作。对于SQLite,使用TPC-C来评估其吞吐量。
为了评估x264的编码效率,本实例选择了一个演示视频。对于每个SUT,选择一个配置选项子集,这些配置选项被认为对性能至关重要,在以前的研究中经常使用这种识别可调选项的方法。尽管使用选项的重要子集而不是所有选项可以显著减少配置空间的大小,但配置的数量仍然很巨大,这对于穷举搜索来说是不切实际的。
本实施例中使用Impro来表示由调优方法生成的最优配置与默认配置相比的性能改进,并通过Impro来衡量调优方法的有效性。给定一个SUT和工作负载W,Impro被计算为:
其中,Co是由调优方法生成的最优配置,而Cd是默认配置。
将本发明与六种最先进的算法进行了比较,以评估其性能,六种算法包括Random、ACTGAN、Hyperopt、BestConfig、RFHOC和ACO。
可以利用其在线存储库中的源代码来实现这六种算法。下面,将提供每个算法的简要描述:
随机是一种基于搜索的方法,它将配置空间视为均匀分布,并以无偏的方式选择配置,并且经常被用作自然的基线。
ACTGAN是一种在生成对抗网络(GAN)框架下设计的生成方法,其关键思想是通过生成器和鉴别器捕获良好配置的隐藏结构。
Hyperopt是一种基于贝叶斯优化算法的基于搜索的超参数优化方法。
BestConfig是一种基于搜索的方法,采用分分采样和递归边界搜索算法来寻找最优配置。
RFHOC是一种基于学习的方法,利用随机森林构建性能预测模型,然后通过遗传算法自动搜索配置空间。
ACO是指蚁群优化,一种常用的黑箱系统优化算法。它也适用于调优问题,并与CSAT在概念上有相似之处,旨在捕获在进化环境中使用的信息素中更好的配置的分布。
具体的,Random、ACTGAN、Hyperopt、BestConfig、RFHOC、ACO与本申请的调优方法相比,各性能表现如对比实验结果表1所示。
表1Random、ACTGAN、Hyperopt、BestConfig、RFHOC、ACO与本申请的调优方法的各性能的对比实验结果表
一种软件系统的配置参数调优方法,与其他方法相比,生成了比其他六种最先进的配置调优算法更好的配置,这表明本申请成功地捕获了良好配置的隐藏结构,而这种配置结构感知调优是确定最佳配置的合理方法。特别是,结合结构特征提取模型,可以削弱高配置维度的负面影响,从而更有效地利用测量成本。
值得注意的是,本申请显著减少了训练样本的需求数量。基本上,探索配置空间对于调优算法是必不可少的。具体来说,最佳配置应用递归边界和搜索(RBS)来在样本集中的最佳配置周围找到更好的配置,RFHOC采用遗传算法来自动搜索配置空间,Hyperopt依靠BO进行勘探,而ACTGAN使用发电机来寻找看不见的配置。注意到ACTGAN需要大量的训练样本来学习生成器,而RBS、遗传算法和BO更有容易陷入搜索路径中的次优点,因此增加训练样本是非常有用的。相比之下,通过利用先前采样的配置的分布来遍历配置空间,可以提高了搜索过程的效率和焦点,并最大限度地减少了被困在次优点的风险。因此,本发明可以用较少的训练样本找到更好的配置。
本申请是基于广泛的数据测量来确认其合理性,这与对软件系统数据的直观认知和在之前的工作中得出的结论是一致的。另一方面,本申请在优化和内部约束处理方面的优越性能也证实了其有效性,它对可配置的软件系统具有广泛的适用性。
关于隐构型结构,步骤1041中提供了锚点的概念,它实际上是最优构型结构的一部分。通过充分的数据实验,已经证明了它的数量应该控制在6以内。这一结论的适用性也需要基于实验(如网格搜索)来证明,但从调优效果的角度来看,它在其他系统调优任务中的性能是可预测的。
可见本发明的软件系统的配置参数调优方法通过测量成本约束下的软件性能调优问题建模方法;基于配置结构感知的调优模型,利用公开离线数据和在线交互分别对调优模型的超参数进行调整,从而获得最优的软件系统性能,具有成本约束低、算法收敛快、对于不同配置空间的软件系统自适应能力强等优点。
如图6所示,提供了一种软件系统的配置参数调优装置,该装置包括调优目标和成本模型获取模块310、调优模型确定模块320、获取和测量模块330、第一调优模块340和第二调优模块350。
调优目标和成本模型获取模块310,用于获取软件系统的调优目标和成本模型;成本模型包括对调优目标的成本约束;
调优模型确定模块320,用于基于调优目标确定具有配置结构感知的调优模型;
获取和测量模块330,用于针对调优目标,对软件系统的配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据;
第一调优模块340,用于基于成本模型和公开离线数据,对调优模型进行离线训练,获得调优目标的收敛效果在预设阈值范围内的调优模型的超参数组合;
第二调优模块350,用于基于超参数组合,将调优模型与软件系统进行在线实时交互,得到软件系统的目标配置参数。
本申请一实施例提供了一种终端设备,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现如上述实施例中的软件系统的配置参数调优方法。
本申请一实施例提供了一种终端设备的有益效果参见上述实施例中的软件系统的配置参数调优方法的有益效果。
应理解,上述各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
需要说明的是,上述装置之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种终端设备,参见图7,该终端设备400可以包括:至少一个处理器410和存储器420,所述存储器420中存储有可在所述至少一个处理器410上运行的计算机程序421,所述处理器410执行所述计算机程序421时实现上述任意各个方法实施例中的步骤,例如图1所示实施例中的步骤101至步骤105,和例如图6所示实施例中的模块310至模块350。
示例性的,计算机程序421可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器420中,并由处理器410执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序421在终端设备400中的执行过程。
本领域技术人员可以理解,图7仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
处理器410可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器420可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器420用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请实施例提供的软件系统的配置参数调优方法可以应用于计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述软件系统的配置参数调优方法各个实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述软件系统的配置参数调优方法各个实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种软件系统的配置参数调优方法,其特征在于,包括:
获取所述软件系统的调优目标和成本模型;所述成本模型包括对所述调优目标的成本约束;
基于所述调优目标确定具有配置结构感知的调优模型;
针对所述调优目标,对所述软件系统的配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据;
基于所述成本模型和所述公开离线数据,对所述调优模型进行离线训练,获得所述调优目标的收敛效果在预设阈值范围内的所述调优模型的超参数组合;
基于所述超参数组合,将所述调优模型与所述软件系统进行在线实时交互,得到所述软件系统的目标配置参数。
2.如权利要求1所述的软件系统的配置参数调优方法,其特征在于,所述调优目标为基于所述软件系统中一个特定工作负载和一组待调整的性能调优问题所形成的;所述调优目标用于确定所述软件系统的最佳性能所对应的最佳配置参数;
所述调优目标表示为:
所述成本约束表示为:
s.t.
其中,C为待测软件系统SUT的配置空间,W为所述待测软件系统SUT的工作负载,MC为所述待测软件系统SUT的测量数量,P(c|SUT,W)为所述软件系统的性能表现,c为配置;|Cm|为已测系统配置的数量。
3.如权利要求1所述的软件系统的配置参数调优方法,其特征在于,所述调优模型包括配置结构模型、比较模型、生成模型和解码模型;
所述基于所述调优目标确定具有配置结构感知的调优模型,包括:
基于所述调优目标,确定所述配置结构模型;
基于所述配置结构模型,确定所述比较模型;
基于所述比较模型构建所述生成模型;
基于所述配置结构模型和所述生成模型确定所述解码模型。
4.如权利要求3所述的软件系统的配置参数调优方法,其特征在于,所述基于所述调优目标,确定配置结构模型,包括:
对所述调优目标所对应的配置空间进行编码;
基于所述调优目标和编码后的配置空间,利用自适应模糊推理方法确定所述配置结构模型的参数;所述配置结构模型的参数包括一组求解调优目标的规则集合和由已测配置训练过的感知数据;
基于所述配置结构模型的参数,确定配置结构模型。
5.如权利要求4所述的软件系统的配置参数调优方法,其特征在于,所述基于所述配置结构模型,确定比较模型,包括:
基于所述配置结构模型,构建所述配置空间的编码及所述配置空间的编码产生的对应的性能值的比较结果的样本集;
获取所述比较结果的样本集的反对称矩阵,并添加两个一次性项确定比较器;
基于已测配置的编码训练所述比较器;
基于训练好的比较器和高斯过程回归方法推导所述比较模型的参数;所述比较模型的参数包括在所述比较器中所述比较结果的分布情况;
基于所述比较模型的参数,确定比较模型。
6.如权利要求1所述的软件系统的配置参数调优方法,其特征在于,所述基于所述成本模型和所述公开离线数据,对所述调优模型进行离线训练,获得所述调优目标的收敛效果在预设阈值范围内的所述调优模型的超参数组合,包括:
在所述成本模型的约束下,基于所述公开离线数据对所述调优模型进行离线训练,参数化所述调优模型下的配置结构模型的参数,生成推荐配置;
基于所述推荐配置和所述推荐配置所对应的性能,更新所述公开离线数据;
基于预先搭建的待测系统环境、训练好的调优模型和更新的所述公开离线数据进行迭代,直至所述调优目标的运算结果收敛在预设阈值范围内,获得当前配置结构模型的参数作为所述调优模型的超参数组合。
7.如权利要求1所述的软件系统的配置参数调优方法,其特征在于,在所述调优模型与所述软件系统进行在线实时交互过程中,基于所述目标配置参数和所述目标配置参数对应的性能,利用近似策略优化算法调整所述调优模型的超参数组合。
8.一种软件系统的配置参数调优装置,应用如权利要求1至7任一项所述的软件系统的配置参数调优方法,其特征在于,包括:
调优目标和成本模型获取模块,用于获取所述软件系统的调优目标和成本模型;所述成本模型包括对所述调优目标的成本约束;
调优模型确定模块,用于基于所述调优目标确定具有配置结构感知的调优模型;
获取和测量模块,用于针对所述调优目标,对所述软件系统的配置参数进行预采样,并对预采样的配置参数所产生的性能进行测量,获得公开离线数据;
第一调优模块,用于基于所述成本模型和所述公开离线数据,对所述调优模型进行离线训练,获得所述调优目标的收敛效果在预设阈值范围内的所述调优模型的超参数组合;
第二调优模块,用于基于所述超参数组合,将所述调优模型与软件系统进行在线实时交互,得到所述软件系统的目标配置参数。
9.一种终端设备,包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的软件系统的配置参数调优方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的软件系统的配置参数调优方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311171922.4A CN117193841A (zh) | 2023-09-12 | 2023-09-12 | 软件系统的配置参数调优方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311171922.4A CN117193841A (zh) | 2023-09-12 | 2023-09-12 | 软件系统的配置参数调优方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117193841A true CN117193841A (zh) | 2023-12-08 |
Family
ID=88992015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311171922.4A Pending CN117193841A (zh) | 2023-09-12 | 2023-09-12 | 软件系统的配置参数调优方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193841A (zh) |
-
2023
- 2023-09-12 CN CN202311171922.4A patent/CN117193841A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817599B2 (en) | Application execution control utilizing ensemble machine learning for discernment | |
JP7343568B2 (ja) | 機械学習のためのハイパーパラメータの識別および適用 | |
Khodak et al. | Federated hyperparameter tuning: Challenges, baselines, and connections to weight-sharing | |
Rajakumar | Static and adaptive mutation techniques for genetic algorithm: a systematic comparative analysis | |
WO2018103595A1 (zh) | 一种授权策略推荐方法及装置、服务器、存储介质 | |
US11334671B2 (en) | Adding adversarial robustness to trained machine learning models | |
CN113361680B (zh) | 一种神经网络架构搜索方法、装置、设备及介质 | |
CN109033408B (zh) | 信息推送方法及装置、计算机可读存储介质、电子设备 | |
CN111340233B (zh) | 机器学习模型的训练方法及装置、样本处理方法及装置 | |
CN110462638A (zh) | 使用后验锐化训练神经网络 | |
CN110633735B (zh) | 基于小波变换的渐进式深度卷积网络图像识别方法及装置 | |
CN117193841A (zh) | 软件系统的配置参数调优方法及装置 | |
US11676050B2 (en) | Systems and methods for neighbor frequency aggregation of parametric probability distributions with decision trees using leaf nodes | |
CN115114442A (zh) | 知识图谱的更新方法和装置、存储介质及电子设备 | |
CN114692888A (zh) | 系统参数处理方法、装置、设备及存储介质 | |
CN112329715A (zh) | 一种人脸识别方法、装置、设备及存储介质 | |
Hannák et al. | Bilateral‐Weighted Online Adaptive Isolation Forest for anomaly detection in streaming data | |
Huang et al. | Discriminative model for google host load prediction with rich feature set | |
CN117435580B (zh) | 一种数据库参数筛选方法及相关设备 | |
US20230419187A1 (en) | Reinforcement learning for diverse content generation | |
Gökcesu | Online minimax optimal density estimation and anomaly detection in nonstationary environments | |
CN115062196A (zh) | 交叉变量数据的生成方法、设备和存储介质 | |
CN115687493A (zh) | 数据处理方法及装置 | |
CN114756716A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN114418122A (zh) | 机器学习模型的超参数配置方法、装置以及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |