一种基于迁移学习的软件系统配置调优方法及装置
文献发布时间:2024-01-17 01:27:33
技术领域
本发明属于性能优化技术领域,具体涉及一种基于迁移学习的软件系统配置调优方法及装置。
背景技术
现代软件系统针对不同业务场景为用户提供了大量可配置参数,用户通过选择不同可配置参数去控制系统性能行为的所有方面,参数配置的选择对系统性能和用户体验有重大影响。然而,巨大且复杂的参数配置空间和高昂的性能度量成本对系统的性能优化带来了巨大的挑战
近年来人们对软件系统的配置优化问题进行了大量研究,但这些方法都存在一定的不足之处。大量配置调优方法仅针对某一工作负载进行调优,当软件系统的工作负载变化后,现有方法需要重新进行往复的学习优化过程,这使得新系统的参数优化费时且费力。
目前也存在一些针对工作负载变化场景设计的配置优化方法,这些方法往往利用过往调优过程中获得的性能模型或者数据样本帮助构建目标任务的性能模型,加速调优过程。这类方法构建的目标任务性能模型精度较差,进而影响调优效率。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于迁移学习的软件系统配置调优方法及装置。本发明要解决的技术问题通过以下技术方案实现:
第一方面,本发明提供了一种基于迁移学习的软件系统配置调优方法包括:
S100,获取软件系统输入的所有参数以及目标任务,并在所有参数组成的配置空间中通过随机采样方式得到目标任务的多组配置;
S200,将软件系统按照每组配置进行设置得到每组配置对应的性能值,并将每组配置以及对应的性能值加入集合,从而组成目标任务的数据集合;
S300,利用数据集合对预设的随机森林模型进行训练,得到训练后的随机森林模型;
S400,在训练后的随机森林模型基础上通过采集函数在候选配置中,确定一组目标配置;
S500,将软件系统按照目标配置进行设置得到软件系统的目标性能值;
S600,将目标配置以及对应的目标性能值加入S200中的数据集合中,并重复S300至S500直至达到最大迭代次数得到性能值最优的一组配置;
S700,将目标任务的配置按照性能最优的一组配置进行设置。
第二方面,本发明提供了一种基于迁移学习的软件系统配置调优装置包括:
获取模块,用于为获取软件系统输入的所有参数以及目标任务,并在所有参数组成的配置空间中通过随机采样方式得到目标任务的多组配置;
第一配置模块,用于将软件系统按照每组配置进行设置得到每组配置对应的性能值,并将每组配置以及对应的性能值加入集合,从而组成目标任务的数据集合;
训练模块,用于利用数据集合对预设的随机森林模型进行训练,得到训练后的随机森林模型;
确定模块,用于在训练后的随机森林模型基础上通过采集函数在候选配置中,确定一组目标配置;
第二配置模块,用于将软件系统按照目标配置进行设置得到软件系统的目标性能值;
迭代模块,用于将目标配置以及对应的目标性能值加入S200中的数据集合中,并重复S300至S500直至达到最大迭代次数得到性能值最优的一组配置;
执行模块,用于将目标任务的配置按照性能最优的一组配置进行设置。
本发明提供了一种基于迁移学习的软件系统配置调优方法及装置,通过随机采样方式得到多组配置,然后将软件系统按照每组配置进行设置得到每组配置对应的性能值,并将每组配置以及对应的性能值加入集合,从而组成数据集合;利用数据集合对预设的随机森林模型进行训练;在训练后的随机森林模型基础上通过采集函数在候选配置中,确定一组目标配置;将软件系统按照目标配置进行设置得到软件系统的目标性能值;将目标配置以及对应的目标性能值加入数据集合中,并重复对随机森林模型获取目标性能值的过程,直至达到最大迭代次数得到性能值最优的一组配置;将目标任务的配置按照性能最优的一组配置进行设置。本发明与其他基于迁移学习思想的配置调优方法相比,在提升了软件系统性能的同时,通过引入过往对其他工作负载进行配置调优获得的知识,在对新的工作负载进行配置调优时将算法的搜索空间限定在配置具有较高性能的区域内,从而提高了算法的调优效率和对于不同工作负载的适应能力。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例部分提供的一种基于迁移学习的软件系统配置调优方法的算法流程图;
图2是本发明实施例部分提供的一种基于迁移学习的软件系统配置调优方法的调优框架图;
图3是本发明实施例部分提供的一种基于迁移学习的软件系统配置调优方法在工作负载1下的调优效果与调优效率对比实验结果图;
图4是本发明实施例部分提供的一种基于迁移学习的软件系统配置调优方法在工作负载2下的调优效果与调优效率对比实验结果图;
图5是本发明实施例部分提供的一种基于迁移学习的软件系统配置调优方法在工作负载3下的调优效果与调优效率对比实验结果图;
图6是本发明实施例部分提供的一种基于迁移学习的软件系统配置调优方法在工作负载4下的调优效果与调优效率对比实验结果图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
如图1所示,本发明提供了一种基于迁移学习的软件系统配置调优方法包括:
S100,获取软件系统输入的所有参数以及目标任务,并在所有参数组成的配置空间中通过随机采样方式得到多组配置;
S200,将软件系统按照每组配置进行设置得到每组配置对应的性能值,并将每组配置以及对应的性能值加入集合,从而组成数据集合;
S300,利用数据集合对预设的随机森林模型进行训练,得到训练后的随机森林模型;
S400,在训练后的随机森林模型基础上通过采集函数在候选配置中,确定一组目标配置;
本步骤的采集函数表示为:
其中,配置
本发明的采集函数指的是根据随机森林模型调整过的期望提升函数。期望提升函数不仅考虑性能提升的概率,同时考虑性能提升的幅度,能够在配置搜索过程中更好地平衡探索与利用。
S500,将软件系统按照目标配置进行设置得到软件系统的目标性能值;
S600,将目标配置以及对应的目标性能值加入S200中的数据集合中,并重复S300至S500直至达到最大迭代次数得到性能值最优的一组配置;
S700,将目标任务的配置按照性能最优的一组配置进行设置。
本发明提供了一种基于迁移学习的软件系统配置调优方法,通过随机采样方式得到多组配置,然后将软件系统按照每组配置进行设置得到每组配置对应的性能值,并将每组配置以及对应的性能值加入集合,从而组成数据集合。参照图2,利用数据集合对预设的随机森林模型进行训练;通过基于参数选择的配置空间设计和基于迁移学习的配置空间设计,确定一组候选配置;在训练后的随机森林模型基础上通过采集函数在候选配置中,确定一个目标配置;将软件系统按照目标配置进行设置得到软件系统的目标性能值;将目标配置以及对应的目标性能值加入数据集合中,并重复对随机森林模型获取目标性能值的过程,直至达到最大迭代次数得到性能值最优的一组配置;将目标任务的配置按照性能最优的一组配置进行设置。本发明与其他基于迁移学习思想的配置调优方法相比,在提升了软件系统性能的同时,提高了算法的调优效率和对于不同工作负载的适应能力。
在本发明一种具体的实施例中,在S400之前,基于迁移学习的软件系统配置调优方法还包括:
S410,根据软件系统输入的所有参数以及待配置的目标任务,生成初始候选配置;
S420,在初始候选配置中利用集成分类器选择候选配置。
在本发明一种具体的实施例中,S410包括:
S411,将软件系统输入的所有参数去除无用的参数,得到筛选过的参数;
S412,通过基尼系数和代理模型,计算筛选过的每个参数的重要性排名,选择前预设数量个参数作为重要性参数;
代理模型中将软件系统的可配置参数作为输入,输出为系统的某一可度量性能值。代理模型的输入可根据软件系统的官方配置文档先得到所有可配置参数,筛选并删除对软件系统无影响的参数。代理模型的输出可以通过在服务器内安装软件系统,搭建软件系统的实际运行环境,通过对不同的参数配置进行测试,获取每一组配置的软件系统性能,如执行时间或吞吐量,得到配置-性能样本集合。代理模型指的是通过配置-性能样本集合训练得到的随机森林模型。本发明可以选择排名前5的配置参数作为重要参数。
S413,将重要性参数构成子配置空间,并对子配置空间进行拉丁方采样得到第一候选配置;
本发明对子配置空间进行拉丁方采样,采样的配置数量随迭代数不断线性增长。本发明根据参数的重要性缩减配置空间,为基于迁移学习的配置空间设计提供候选配置,提升调优效率。
S414,将筛选过的参数组成的完整配置空间进行随机采样,得到第二候选配置;
本发明对整个配置空间进行随机采样,采样的配置数量随迭代数不断线性减少。本发明基于迁移学习的配置空间设计,借助过往调优经验为目标调优任务生成高性能配置空间,子配置空间上继续缩减配置空间,进一步提升调优效率。
S415,将第一候选配置和第二候选配置组成初始候选配置。
在本发明一种具体的实施例中,S420包括:
S421,在历史数据库中查找出源任务对应的配置以及性能值;
S422,查找与目标任务相似度符合条件的至少一个源任务;
在本发明一种具体的实施例中,S422包括:
S4221,查找配置与目标任务的配置相同的源任务;
S4222,判断源任务与目标任务的配置是否均相同,如果源任务中缺少目标任务的配置,则将缺少的配置确定为缺失配置;
S4223,根据源任务的其他配置训练随机森林代理模型,并将缺失配置输入至训练后的随机森林代理模型中输出源任务的缺失配置对应的性能值,以使源任务与目标任务的配置均相同;
S4224,如果源任务与目标任务的配置均相同,则判断源任务和目标任务的性能是否保持顺序一致性;
本发明通过任务相似性选择与目标任务相似的源任务,而相似可以通过顺序一致性来确定,顺序一致性表达式为:
其中,
本发明的相似性通过计算源任务与目标任务中性能顺序保持一致的配置对的数量进行衡量。
S4225,如果与目标任务的性能保持顺序一致性的源任务为多个,则根据采样率对源任务采样从而确定出相似度符合条件的至少一个源任务。
相似任务的选择通过采样的方法进行,采样的概率取决于上述不同源任务与目标任务的相似性,采样率表示为:
其中,
S423,将源任务的每个配置对应的性能进行重新标注,并将重新标注的性能以及对应的配置作为源任务样本;
重新标注的规则表示为:
其中,
S424,利用每个源任务的样本训练一个支持向量机分类器,得到每个源任务训练得到的支持向量机分类器;
本发明在S423选择n个相似源任务,通过训练支持向量机分类器获得n个的高性能区域,即n个支持向量机分类器。支持向量机分类器需要对不同源任务所收集的配置-性能样本进行重新标注以适应分类模型的训练。
S425,将所有训练得到的支持向量机分类器组成集成分类器,并利用集成分类器对每个初始候选配置进行分类,得到每个初始候选配置的多个分类结果;
本步骤中组成的集成分类器表示为:
其中,
S426,如果一个初始候选配置的多个分类结果超过半数表明该初始候选配置位于高性能区域,则将该初始候选配置确定为候选配置。
本发明对于某一配置,当超多半数的分类器都预测该配置位于高性能区域内时,则认为该配置也位于目标任务的高性能区域内。
本发明提供了一种基于迁移学习的软件系统配置调优装置包括:
获取模块,用于为获取软件系统输入的所有参数以及目标任务,并在所有参数组成的配置空间中通过随机采样方式得到目标任务的多组配置;
第一配置模块,用于将软件系统按照每组配置进行设置得到每组配置对应的性能值,并将每组配置以及对应的性能值加入集合,从而组成目标任务的数据集合;
训练模块,用于利用数据集合对预设的随机森林模型进行训练,得到训练后的随机森林模型;
确定模块,用于在训练后的随机森林模型基础上通过采集函数在候选配置中,确定一组目标配置;
第二配置模块,用于将软件系统按照目标配置进行设置得到软件系统的目标性能值;
迭代模块,用于将目标配置以及对应的目标性能值加入S200中的数据集合中,并重复S300至S500直至达到最大迭代次数得到性能值最优的一组配置;
执行模块,用于将目标任务的配置按照性能最优的一组配置进行设置。
下面结合实施例对本发明做进一步详细的描述。
实验在一个由三台云服务器组成的集群上进行的,其中一台作为主节点,另外两台作为从节点。每个节点配有四个4核 Intel (R) Xeon (R) CPU E5-2682 v4 @2.50GHz处理器,32GB内存,100GB磁盘空间。
本发明选择Spark作为实验目标,运行的工作负载涵盖了不同特征的应用和不同的输入数据大小,包括Sort、Wordcount、Terasort、Bayes和Pagerank,并为每个应用选择了2至3个输入数据大小,例如:Sort-10,15,20GB,Wordcount-30,50GB。
为了获取数据仓库,本发明对所有工作负载运行一次基础调优器,保存调优过程中获得的性能模型和数据样本。在实验中,本发明可以将任何一个工作负载作为目标任务,将剩余工作负载作为源任务,以模拟软件系统真实运行中工作负载发生变化的场景。
为了评估基于迁移学习的软件系统配置调优方法,本发明用两个基于迁移学习思想的配置调优算法比较,称为基于集成模型的调优算法(ResTune)和基于多任务贝叶斯优化的调优算法(Tuneful),下面对每个算法进行一个简要的描述。
ResTune算法选择数个相似的源任务,将被选中源任务的代理模型组合为一个加权集成模型,在此基础上指导目标任务的调优。
Tuneful算法则在参数选择的基础后进行配置调优,在调优阶段选择一个最为相似的源任务,通过多任务贝叶斯优化进行目标任务的调优。
本发明使用调优效果和调优效率两个指标对算法性能进行度量。
参考图3-图6,从图3-图6中可以看出本发明比起ResTune算法和Tuneful算法均能获得较低的执行时间,即更优的系统性能,这表示本发明具有更好的调优效果。同时,本发明能通过较少的迭代数找到性能更优的配置,实验结果表明,本发明的调优效率明显优于现有算法。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
- 一种基于神经网络和迁移学习的水果图像分类方法及装置
- 一种操作系统配置方法及装置
- 一种蓄能系统配置方法、装置及存储介质
- 一种分布式光伏集群协调优化控制方法及装置
- 基于深度学习的大数据系统配置参数调优的方法和系统
- 基于深度学习的大数据系统配置参数调优的方法和系统