CN117667227A - 参数调整方法及相关设备 - Google Patents
参数调整方法及相关设备 Download PDFInfo
- Publication number
- CN117667227A CN117667227A CN202211050001.8A CN202211050001A CN117667227A CN 117667227 A CN117667227 A CN 117667227A CN 202211050001 A CN202211050001 A CN 202211050001A CN 117667227 A CN117667227 A CN 117667227A
- Authority
- CN
- China
- Prior art keywords
- data
- application program
- parameter
- parameters
- online application
- 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 139
- 230000008859 change Effects 0.000 claims abstract description 73
- 238000007637 random forest analysis Methods 0.000 claims description 96
- 238000012549 training Methods 0.000 claims description 77
- 230000006870 function Effects 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 40
- 238000004422 calculation algorithm Methods 0.000 claims description 38
- 238000009826 distribution Methods 0.000 claims description 31
- 238000003066 decision tree Methods 0.000 claims description 27
- 238000005457 optimization Methods 0.000 claims description 24
- 238000007781 pre-processing Methods 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 8
- 230000002776 aggregation Effects 0.000 claims description 5
- 238000004220 aggregation Methods 0.000 claims description 5
- 238000005452 bending Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 28
- 238000012545 processing Methods 0.000 description 26
- 238000001514 detection method Methods 0.000 description 17
- 238000010295 mobile communication Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 229920001621 AMOLED Polymers 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
- 238000013480 data collection Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000556 factor analysis Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013450 outlier detection Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种参数调整方法及相关设备,涉及终端软件技术领域。所述方法包括:检测电子设备运行在线应用程序时的负载是否发生变化;若运行在线应用程序时的负载发生变化,获取在线应用程序的特征数据,将特征数据与特征库中的特征数据进行匹配,确定特征库中与在线应用程序匹配的应用程序及负载类型;从模型库中选取与在线应用程序匹配的应用程序及负载类型对应的参数调优模型;基于选取的参数调优模型确定运行在线应用程序的最优参数。本申请实施例可以实时检测出电子设备运行在线应用程序时负载的变化,并基于在线应用程序的特征数据选取匹配的参数调优模型,从而基于参数调优模型进行在线动态参数调优,提高参数调优的实时性。
Description
技术领域
本申请涉及终端软件技术领域,尤其涉及一种参数调整方法及相关设备。
背景技术
电子设备如个人电脑、服务器等的操作系统具有大量可调节的参数用于控制系统运行,例如,读写操作百分比、最大并行线程数量、缓存容量、CPU(Central ProcessingUnit,中央处理器)核数等。通过对参数进行调优可以提升应用程序的执行效率、减少资源使用量及减少系统错误。然而,目前的参数调优方法一般只能针对离线场景进行参数调优,如此,当在线应用程序正在运行,系统负载发生变化时,无法实时对系统参数进行动态调优,可能影响系统的正常运行。
发明内容
有鉴于此,有必要提供一种参数调整方法,解决无法根据系统负载变化实时对系统参数进行调优的问题。
本申请实施例第一方面提供一种参数调整方法,包括:检测电子设备运行在线应用程序时的负载是否发生变化;若所述电子设备运行在线应用程序时的负载发生变化,获取所述在线应用程序的特征数据,将所述特征数据与特征库中的特征数据进行匹配,确定所述特征库中与所述在线应用程序匹配的应用程序及负载类型;从模型库中选取与所述在线应用程序匹配的应用程序及负载类型对应的参数调优模型;基于选取的所述参数调优模型确定运行所述在线应用程序的最优参数。
采用上述技术方案,通过检测电子设备运行在线应用程序时的负载是否发生变化,在负载发生变化时,将在线应用程序的特征数据与特征库中的特征数据匹配确定在线应用程序的最优调参模型,从而通过最优调参模型输出最优参数,实现动态的参数调优,提高参数调优的实时性,保障系统正常运行。
在一种可能的实现方式中,所述检测电子设备运行在线应用程序时的负载是否发生变化包括:采集所述在线应用程序的关键数据,生成所述关键数据的时间序列;检测所述时间序列中任一数据前后的数据分布是否发生变化;若所述时间序列中任一数据前后的数据分布发生变化,确定所述在线应用程序的负载发生变化;或若所述时间序列中所有数据前后的数据分布均未发生变化,确定所述在线应用程序的负载未发生变化。
采用上述技术方案,通过时间序列的数据分布检测电子设备运行在线应用程序时的负载是否发生变化,考虑时间维度的信息,能实时、主动发现负载的变化,灵敏度更高,可以有效地提高检测精度。
在一种可能的实现方式中,所述检测所述时间序列中任一数据前后的数据分布是否发生变化包括:基于所述时间序列中任一数据的左边部分数据与右边部分数据的均值和方差检测所述数据前后的数据分布是否发生变化。
采用上述技术方案,通过时间序列中任一数据的左边部分数据与右边部分数据的均值和方差检测所述数据前后的数据分布是否发生变化,可以有效地提高检测精度。
在一种可能的实现方式中,所述基于所述时间序列中任一数据的左边部分数据与右边部分数据的均值和方差检测所述数据前后的数据分布是否发生变化包括:计算所述时间序列中任一数据对应的左边部分数据与右边部分数据的均值变化及方差变化;判断所述均值变化是否大于第一阈值、所述方差变化是否大于第二阈值、所述均值变化与所述方差变化是否同时大于第三阈值;若所述均值变化大于第一阈值,或所述方差变化大于第二阈值,或所述均值变化与方差变化同时大于第三阈值,确定所述数据前后的数据分布发生变化;或若所述均值变化小于或等于第一阈值,且所述方差变化小于或等于第二阈值,且所述均值变化与方差变化同时小于或等于第三阈值,确定所述数据前后的数据分布未发生变化。
采用上述技术方案,通过时间序列中任一数据对应的左边部分数据与右边部分数据的均值变化及方差变化检测所述数据前后的数据分布是否发生变化,可以有效地提高检测精度。
在一种可能的实现方式中,所述获取所述在线应用程序的特征数据包括:采集所述在线应用程序的关键数据,将采集的关键数据转换为所述特征数据,对所述特征数据进行预处理,得到所述在线应用程序的统计特征和时序特征。
采用上述技术方案,可以将在线应用程序的静态运行数据和动态运行数据相结合,从而提高应用画像的精度。
在一种可能的实现方式中,所述将特征数据与特征库中的特征数据进行匹配,确定特征库中与在线应用程序匹配的应用程序及负载类型包括:将所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征进行匹配,确定在线应用程序的统计特征与特征库中每组特征数据的统计特征之间的第一相似值;将所述在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配,确定在线应用程序的时序特征与特征库中每组特征数据的时序特征之间的第二相似值;基于第一相似值和第二相似值确定所述特征库中与在线应用程序匹配的应用程序及负载类型。
采用上述技术方案,通过构建在线应用程序的特征数据与特征库中的特征数据的之间的相似值,可以提高匹配精度。
在一种可能的实现方式中,所述确定在线应用程序的统计特征与特征库中每组特征数据的统计特征之间的第一相似值包括:计算所述在线应用程序的每个维度的统计特征与所述特征库中每组特征数据的对应维度的统计特征之间的差值的平方和,得到所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征之间的第一相似值。
采用上述技术方案,可以提高确定在线应用程序的统计特征与特征库中的统计特征之间的相似度的精确度。
在一种可能的实现方式中,所述确定在线应用程序的时序特征与特征库中每组特征数据的时序特征之间的第二相似值包括:基于动态时间弯曲距离的时序相似性方法确定所述在线应用程序的时序特征与所述特征库中每组特征数据的时序特征之间的第二相似值。
采用上述技术方案,基于动态时间弯曲距离的时序相似性方法确定所述在线应用程序的时序特征与所述特征库中每组特征数据的时序特征之间的第二相似值,可以考虑时间上的平移和伸缩,准确率更高。
在一种可能的实现方式中,所述基于第一相似值和第二相似值确定所述特征库中与在线应用程序匹配的应用程序及负载类型包括:计算所述在线应用程序的统计特征与特征库中每组特征数据的统计特征进行匹配得到的第一相似值及所述在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配得到的第二相似值之和;确定所述第一相似值与所述第二相似值之间的最小和值;确定所述特征库中与最小和值对应的特征数据的应用程序及负载类型为与在线应用程序匹配的应用程序及负载类型。
采用上述技术方案,在特征匹配过程中,将动态特征匹配和静态特征匹配相结合,同时考虑应用负载的整体分布和实时动态性,从而提高匹配精度。
在一种可能的实现方式中,所述方法还包括:采集多个应用程序与不同负载类型对应的特征数据,建立所述特征库;基于多个所述应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型,并基于多个所述应用程序对应负载类型的参数调优模型建立所述模型库。
采用上述技术方案,可以在离线阶段预先对特征数据进行获取,对调优模型进行训练,提高了在线参数调优的效率。
在一种可能的实现方式中,所述采集多个应用程序与不同负载类型对应的特征数据,建立所述特征库包括:采集所述应用程序对应每种负载类型的关键数据;将采集的所述关键数据转换为所述应用程序的特征数据,对所述应用程序的特征数据进行预处理,得到所述应用程序的关键数据的统计特征和时序特征;基于所述多个应用程序对应每种负载类型的所述统计特征和时序特征建立所述特征库。
采用上述技术方案,通过对应用程序的特征数据进行采集和预处理,可以提高特征数据的有效性,提高特征数据的匹配精度。
在一种可能的实现方式中,所述关键数据包括逻辑层数据和运行时数据。
采用上述技术方案,通过将静态数据和动态数据结合的方式,可以提高特征数据的有效性,提高特征数据的匹配精度。
在一种可能的实现方式中,所述将采集的所述关键数据转换为所述应用程序的特征数据,对所述应用程序的特征数据进行预处理,得到所述应用程序的关键数据的统计特征和时序特征包括:将采集的所述应用程序的逻辑层数据转换为所述应用程序的统计特征,将采集的所述应用程序的运行时数据转换为所述应用程序的时序特征;对所述应用程序的特征数据进行聚合、降噪、归一化及聚类的预处理,得到第一预设维度的所述统计特征和第二预设维度的所述时序特征。
采用上述技术方案,通过对应用程序的特征数据预处理,可以提高特征数据的有效性,提高特征数据的匹配精度。
在一种可能的实现方式中,所述基于所述多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型包括:预设所述应用程序对应负载类型的参数样本,所述参数样本包括多种参数及每种参数对应的多个数据;从所述参数样本中选取多组第一参数,并确定每组第一参数对应的第一性能数据;基于所述多组第一参数和每组第一参数对应的第一性能数据构建预训练随机森林模型。
采用上述技术方案,通过应用程序对应负载类型的参数对随机森林模型进行初始化,可以提高模型训练的效率。
在一种可能的实现方式中,所述从所述参数样本中选取多组第一参数,并确定每组第一参数对应的第一性能数据包括:从所述参数样本中随机选取所述多组第一参数,每组第一参数包括多种参数对应的数据;所述电子设备基于每组第一参数运行所述应用程序,在所述应用程序运行完成后,获取运行过程中的性能数据,得到每组第一参数对应的所述第一性能数据。
采用上述技术方案,通过电子设备对参数实际运行应用程序的性能数据对模型进行训练,可以提高模型训练的精度。
在一种可能的实现方式中,所述基于所述多组第一参数和每组第一参数对应的第一性能数据构建预训练随机森林模型包括:将每组第一参数作为随机森林模型的输入数据,将每组第一参数对应的所述第一性能数据作为所述随机森林模型的输出数据,基于所述输入数据和所述输出数据对所述随机森林模型进行调参,完成对所述预训练随机森林模型的构建。
采用上述技术方案,通过应用程序对应负载类型的参数对随机森林模型进行初始化,可以提高模型训练的效率。
在一种可能的实现方式中,所述基于所述多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型还包括:从所述参数样本中选取多组第二参数,将所述多组第二参数输入所述预训练随机森林模型,得到所述预训练随机森林模型中每个决策树预测的第二性能数据;基于所有决策树预测的所述第二性能数据计算所述预训练随机森林模型的均值和标准差;基于所述预训练随机森林模型的均值和标准差计算贝叶斯优化算法的采集函数的多个输出值;基于所述采集函数的最大输出值确定第三参数,基于所述第三参数对所述预训练随机森林模型进行训练。
采用上述技术方案,通过基于随机森林的贝叶斯优化算法进行调参,可以有效地处理离散型、连续型、类别型的参数,并且提高训练过程中样本选取的效果,从而提高模型训练的效率。
在一种可能的实现方式中,所述从所述参数样本中选取多组第二参数,将所述多组第二参数输入所述预训练随机森林模型,得到所述预训练随机森林模型中每个决策树预测的第二性能数据包括:基于预设的采样策略,从所述参数样本中选取所述多组第二参数,将所述多组第二参数随机输入所述预训练随机森林模型中的多个决策树,通过每个决策树输出每组第二参数对应的所述第二性能数据。
采用上述技术方案,通过预训练随机森林模型对性能数据进行预测,可以作为后续样本选取的参考,提高样本选取的适应性,从而提高模型训练的效率。
在一种可能的实现方式中,所述预设的采样策略为在所述参数样本中选取使得所述采集函数最大的预设数量组参数作为起点,通过随机近邻方法找到邻居点。
采用上述技术方案,通过大规模采样可以提高模型训练的精度和适应性。
在一种可能的实现方式中,所述基于所述采集函数的最大输出值确定第三参数,基于所述第三参数对所述预训练随机森林模型进行训练包括:所述电子设备基于所述第三参数运行所述应用程序,在所述应用程序运行结束后,获取所述第三参数对应的第三性能数据,基于所述第三参数和所述第三性能数据继续对所述预训练随机森林模型进行训练,完成对所述预训练随机森林模型的更新。
采用上述技术方案,通过贝叶斯优化算法确定的样本对预训练随机森林模型进行更新,可以提高参数调优模型的精度。
在一种可能的实现方式中,所述基于所述多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型还包括:判断当前迭代次数是否达到第一迭代次数;若所述当前迭代次数达到所述第一迭代次数,基于当前的所述预训练随机森林模型确定所述应用程序对应负载类型的参数调优模型,并通过当前的所述预训练随机森林模型输出所述参数样本中使得性能数据最优的最优参数。
采用上述技术方案,通过设置迭代次数可以保证参数调优模型可以得到有效地训练,并且基于训练得到的参数调优模型精确地输出当前的最优参数,提高调优速度。
在一种可能的实现方式中,所述通过当前的所述预训练随机森林模型输出所述参数样本中使得性能数据最优的最优参数包括:将所述参数样本中的多组预设参数输入当前的所述预训练随机森林模型,得到所述多组预设参数分别对应的性能数据;确定所述多组预设参数分别对应的性能数据中最优的性能数据,并确定所述最优的性能数据对应的一组预设参数为所述参数样本中使得性能数据最优的最优参数。
采用上述技术方案,通过训练得到的参数调优模型输出使得性能数据最优的参数,可以提高调优速度。
在一种可能的实现方式中,所述基于选取的所述参数调优模型确定运行所述在线应用程序的最优参数包括:基于所述在线应用程序的参数样本对选取的所述参数调优模型进行调整;基于调整后的所述参数调优模型输出运行所述在线应用程序的最优参数。
采用上述技术方案,通过当前应用程序的参数对选取的参数调优模型进行适应性微调,可以提高参数调优模型对于当前应用程序的适用性,提高参数调优的精度和速度。
在一种可能的实现方式中,所述基于所述在线应用程序的参数样本对选取的所述参数调优模型进行调整包括:基于所述在线应用程序的参数样本中的多组参数和对应的性能数据以及第二迭代次数对所述参数调优模型进行训练,完成对所述参数调优模型的调整。
在一种可能的实现方式中,通过当前应用程序的参数对选取的参数调优模型进行适应性微调,可以提高参数调优模型对于当前应用程序的适用性,提高参数调优的精度和速度。
在一种可能的实现方式中,所述基于调整后的参数调优模型输出运行在线应用程序的最优参数包括:将所述在线应用程序的多组预设参数输入调整后的所述参数调优模型,得到所述在线应用程序的多组参数分别对应的性能数据;确定所述在线应用程序的多组参数分别对应的性能数据中最优的性能数据,将所述最优的性能数据对应的参数确定为所述电子设备运行所述在线应用程序时的最优参数,并输出所述最优参数。
采用上述技术方案,基于适用性微调后的参数调优模型进行调优,可以提高调优速度,提高输出的最优参数的精度,从而保障电子设备系统的稳定性,提高运行效率。
第二方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面所述的参数调整方法。
第三方面,本申请实施例提供一种电子设备,电子设备包括处理器和存储器,存储器用于存储指令,处理器用于调用存储器中的指令,使得电子设备执行如第一方面所述的参数调整方法。
第四方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面所述的参数调整方法。
第五方面,提供一种装置,该装置具有实现上述第一方面所提供的方法中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的电子设备,第四方面所述的计算机程序产品,第五方面所述的装置均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请一实施例提供的电子设备的结构示意图。
图2为本申请一实施例提供的参数调整方法的应用场景示意图。
图3为本申请一实施例提供的参数调整系统的架构示意图。
图4为本申请一实施例提供的特征库和模型库的建立方法的流程示意图。
图5为本申请一实施例提供的采集多个应用程序与不同负载类型对应的特征数据,建立特征库的流程示意图。
图6为本申请一实施例提供的建立每个应用程序对应负载类型的参数调优模型,并基于多个应用程序对应负载类型的参数调优模型建立模型库的流程示意图。
图7为本申请一实施例提供的参数调整方法的流程示意图。
图8为本申请一实施例提供的检测电子设备运行在线应用程序时的负载是否发生变化的流程示意图。
图9为本申请一实施例提供的确定特征库中与在线应用程序匹配的应用程序及负载类型的流程示意图。
图10为本申请一实施例提供的基于选取的参数调优模型确定运行在线应用程序的最优参数的流程示意图。
图11为本申请另一实施例提供的特征库和模型库的建立方法的流程示意图。
图12为本申请另一实施例提供的参数调整方法的流程示意图。
具体实施方式
需要说明的是,本申请中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
为了便于理解,示例性的给出了部分与本申请实施例相关概念的说明以供参考。
操作系统(Operating System,OS):管理计算机硬件与软件资源的程序,是计算机系统的内核与基石。
进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。
线程:是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据。
应用画像:根据单个应用程序采集的数据,通过智能分析算法,直观提供应用系统的客观分析内容。
智能参数调优(Parameter tuning,PT):针对应用系统中可调节的参数,利用机器学习算法,为每一个参数选择最优的值。
电子设备可以通过通信网络与其他电子设备或服务器进行通信。本申请实施例应用的电子设备可以是通信设备,例如可以是服务器、或者终端设备。终端设备可以包括手机、可折叠电子设备、平板电脑、个人电脑(personal computer,PC)、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmentedreality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificialintelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备、及智慧城市设备中的至少一种,本申请实施例对电子设备的具体类型不作特殊限制。通信网络可以是有线网络,也可以是无线网络。例如,通信网络可以是局域网(local area networks,LAN),也可以是广域网(wide area networks,WAN),例如互联网。当该通信网络为局域网时,示例性的,该通信网络可以是无线保真(wireless fidelity,Wi-Fi)热点网络、Wi-Fi P2P网络、蓝牙网络、zigbee网络或近场通信(near field communication,NFC)网络等近距离通信网络。当该通信网络为广域网时,示例性的,该通信网络可以是第三代移动通信技术(3rd-generationwireless telephone technology,3G)网络、第四代移动通信技术(the 4th generationmobile communication technology,4G)网络、第五代移动通信技术(5th-generationmobile communication technology,5G)网络、未来演进的公共陆地移动网络(publicland mobile network,PLMN)或因特网等。
在一些实施例中,电子设备可以为一个或多个APP(Application)的运行提供支持。APP可以简称应用,为能够实现某项或多项特定功能的软件程序。例如,即时通讯类应用、视频类应用、音频类应用、图像拍摄类应用、云桌面类应用等等。其中,即时通信类应用,例如可以包括短信应用、WhatsApp/>照片分享/>Kakao/>等。图像拍摄类应用,例如可以包括相机应用(系统相机或第三方相机应用)。视频类应用,例如可以包括 等等。音频类应用,例如可以包括等等。以下实施例中提到的应用,可以是电子设备出厂时已安装的系统应用,也可以是用户在使用电子设备的过程中从网络下载或其他电子设备获取的第三方应用。
电子设备包括但不限于搭载或其他操作系统。
图1示意了一种电子设备10的结构示意图。
电子设备10可以包括处理器110,外部存储器接口120,内部存储器121,天线1,天线2,移动通信模块130,无线通信模块140,音频模块150,传感器模块160,摄像模组170,显示屏180等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备10的具体限定。在本申请另一些实施例中,电子设备10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器可以为高速缓冲存储器。该存储器可以保存处理器110用过或使用频率较高的指令或数据。如果处理器110需要使用该指令或数据,可从该存储器中直接调用,避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。处理器110可以通过以上至少一种接口连接音频模块、无线通信模块、显示器、摄像头等模块。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备10的结构限定。在本申请另一些实施例中,电子设备10也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备10的无线通信功能可以通过天线1,天线2,移动通信模块130,无线通信模块140,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备10中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块130可以提供应用在电子设备10上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块130可以包括至少一个滤波器,开关,功率放大器,低噪声放大器等。移动通信模块130可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块130还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块130的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块130的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频模块输出声音信号,或通过显示屏180显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块130或其他功能模块设置在同一个器件中。
无线通信模块140可以提供应用在电子设备10上的包括无线局域网(wirelesslocal area networks,WLAN),蓝牙(bluetooth,BT),蓝牙低功耗(bluetooth low energy,BLE),超宽带(ultra wide band,UWB),全球导航卫星系统(global navigation satellitesystem,GNSS),调频(frequency modulation,FM),NFC,红外技术(infrared,IR)等无线通信的解决方案。无线通信模块140可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块140经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块140还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备10的天线1和移动通信模块130耦合,天线2和无线通信模块140耦合,使得电子设备10可以通过无线通信技术与网络和其他电子设备通信。该无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。该GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备10可以通过GPU,显示屏180,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏180和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
传感器模组包括触摸传感器、压力传感器、指纹传感器等。摄像模组170包括摄像头。显示屏180用于显示图像,视频等。显示屏180包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organiclight emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emittingdiodes,QLED)等。在一些实施例中,电子设备10可以包括1个或多个显示屏180。
电子设备10可以通过摄像模组170,ISP,视频编解码器,GPU,显示屏180以及应用处理器AP、神经网络处理器NPU等实现摄像功能。
数字信号处理器用于处理数字信号,还可以处理其他数字信号。例如,当电子设备10在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备10可以支持一种或多种视频编解码器。这样,电子设备10可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备10的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备10的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。或将音乐,视频等文件从电子设备传输至外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备10使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备10的各种功能方法或数据处理。
音频模块150用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块150还可以用于对音频信号编码和解码。在一些实施例中,音频模块150可以设置于处理器110中,或将音频模块150的部分功能模块设置于处理器110中。
电子设备10的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。
为了更好地理解本申请实施例提供的参数调整方法,下面结合图2示例性的介绍本申请实施例提供的参数调整方法的应用场景示意图。
服务器的操作系统中参数数量较多,参数之间存在复杂的相关性,基于参数可以控制系统运行,通过对参数进行调节,可以提升应用程序的执行效率,减少资源使用量,减少系统发生错误,例如OOM(Out Of Memory,内存溢出)、磁盘用尽、任务超时等。目前常用的参数调优工具通常针对离线场景,然而,当应用程序上线后,负载发生变化(例如业务发生调整)时,操作系统的参数可能不是最优的,需要重新调优。例如,数据库场景中,原来的场景是30%读,70%写,一段时间后,变成了60%读,40%写。而如果想要实现针对在线应用的调优,需要自动检测线上应用对应的负载是否发生变化,以及实现线上应用参数的快速调优,减少调优时间。
针对参数进行调优的具体方式,可参考如下几种方案。一种面向数据库的智能参数调优方案,其关键技术包括:通过因子分析和聚类算法来识别负载特征;通过Lasso(Least Absolute Shrinkage and Selection Operator,最小绝对收缩和选择算法)算法选取重要参数;利用高斯过程回归算法实现动态参数调优。另一种数据库参数调优方案可以降低资源使用量,其关键技术包括:通过分析SQL(Structured Query Language,结构化查询语言)语句特征和利用分类算法识别当前负载;通过元学习来利用历史经验知识;引入带约束的贝叶斯优化来保证不影响服务性能时降低资源使用量。另一种基于深度强化学习的数据库参数调优方案,其关键技术包括:基于DDPG(Deep Deterministic PolicyGradient,深度确定性策略梯度)强化学习,考虑连续的状态空间和行为空间;构建深度学习的端到端方案,可以考虑参数之间的相关性。
尽管上述方案相比于传统的人工参数调优在性能上有大幅提升,然而其应用到在线参数调优仍然存在以下问题:这些方案只面向于数据库场景(例如SQL模板分析、数据库的统计特征),缺乏通用性;基于统计信息的应用画像,没有考虑应用负载的动态特征,难以准确检测负载变化。
图2为数据库自动调优工具Ottertune的系统架构图,Ottertune系统20包括负载画像模块201、参数识别模块202及自动调优模块203。负载画像模块201用于从目标数据对统计量进行采样,其中,统计量用于表征数据库负载,对统计量进行因子分析,将高维统计量转换为低维统计量,对低维统计量进行聚类得到不同的统计量,根据当前的负载特征确定类似的已知负载,从而可以利用已知负载获取提前采集到的数据。参数识别模块202用于基于Lasso算法选择重要参数,通过构建高阶参数,确定参数之间的依赖关系。自动调优模块203用于将当前负载匹配到最相似的已知负载,根据最相似的已知负载的大量数据和当前负载的少量数据来训练高斯过程回归模型,从而基于高斯过程回归模型对参数进行调优。Ottertune系统20虽然可以实现基于机器学习的离线参数调优功能,解决了传统人工经验调优的效果差、效率低下的问题,然而,其应用到在线参数调优时仍存在以上问题。
为了使得参数调优方法可以应用于不同的服务器场景,增强参数调优方法的通用性,以及基于应用负载的动态特征监测负载变化,实现在线参数调优,本申请实施例提供一种参数调整系统。
参阅图3所示,为本申请一实施例提供的参数调整系统的架构示意图。参数调整系统100运行在电子设备10中,参数调整系统100包括,但不限于,数据采集模块101、特征库构建模块102、模型库构建模块103、负载变化检测模块104、特征匹配模块105、模型迁移与微调模块106。在本申请的实施例中,上述模块为存储于内部存储器121中且可被处理器110调用执行的可程序化软件指令。可以理解的是,在其他实施例中,上述模块也可为固化于处理器110中的程序指令或固件。
在本申请的一实施例中,数据采集模块101采集的数据涉及到常见的应用以及每种应用对应的典型负载类型,包括逻辑层数据(进程数量、处理请求数等)和运行时特征(CPU、内存、网络、磁盘等的运行数据)。
特征库构建模块102用于通过聚类和时序相似性计算,移除冗余特征,进行归一化处理,得到第一预设维度(例如,10维)的统计特征和第二预设维度(例如,36维)的时序特征。
模型库构建模块103用于利用基于随机森林的贝叶斯优化算法,通过迭代优化,得到每个应用程序及负载类型对应的优化后的模型。
负载变化检测模块104用于通过基于时序特征的负载变化检测(Workload ChangeDetection,WCD)算法,检测在线应用程序运行时电子设备的负载是否发生变化,相较于基于统计量的检测方法,灵敏度更高。
特征匹配模块105用于将当前应用程序的特征数据和特征库中的特征数据进行相似性计算,得到和当前负载类型最匹配的负载类型和预训练模型。
模型迁移与微调模块106用于将最匹配的预训练模型进行迁移,并根据当前应用程序的特征数据进行微调,输出最优的配置参数。
为了使得参数调优方法可以应用于不同的服务器场景,增强参数调优方法的通用性,以及基于应用负载的动态特征监测负载变化,实现在线参数调优,本申请实施例提供一种参数调整方法。下面结合图4示例性地介绍本申请一实施例提供的特征库和模型库的建立方法的流程示意图。所述方法应用于电子设备中,所述参数调整方法包括:
S101,采集多个应用程序与不同负载类型对应的特征数据,建立特征库。
在本申请的一实施例中,应用程序的类型和负载类型已知,应用程序与不同负载类型对应的特征数据为应用程序在不同负载类型下运行时的特征数据。采集多个应用程序与不同负载类型对应的特征数据,建立特征库的细化流程如图5所述,具体包括:
S1011,采集应用程序对应每种负载类型的关键数据。
在本申请的一实施例中,应用程序的负载类型包括,但不限于,CPU密集型和I/O密集型。其中,CPU密集型负载为执行CPU使用率较高的任务时的负载,例如矩阵运算任务、视频处理任务等,I/O密集型负载为执行CPU使用率较低、I/O操作较多的任务时的负载,例如数据库交互、文件上传下载、网络传输等。
在本申请的一实施例中,采集应用程序对应每种负载类型的关键数据包括:通过数据采集接口、从其他电子设备及/或从数据库分别采集多个应用程序在CPU密集型负载和I/O密集型负载下的关键数据。其中,数据采集接口设于电子设备的系统内核,与应用程序和电子设备硬件通信,采集应用程序运行时的关键数据。电子设备可以通过与其他电子设备通信,获取其他电子设备的应用程序对应每种负载类型的关键数据。数据库用于存储应用程序对应不同负载类型的历史关键数据。
在本申请的一实施例中,关键数据可以表征应用程序的特点,应用程序的关键数据包括,但不限于,逻辑层数据和运行时数据。逻辑层数据和运行时数据为一应用程序在一负载类型下的数据。其中,逻辑层数据包括进程数量、处理请求数量等,运行时数据包括CPU、内存、网络、磁盘等的数据,例如CPU的频率、功率、使用率等,内存的使用率、频率、容量等,网络的带宽、上行速率、下行速率等,磁盘的容量、使用率等。
S1012,将采集的关键数据转换为特征数据,对特征数据进行预处理,得到统计特征和时序特征。
在本申请的一实施例中,将采集的关键数据转换为特征数据包括:将采集的逻辑层数据转换为统计特征,将采集的运行时数据转换为时序特征。统计特征包括,但不限于,平均数、中位数、众数、平均差、方差、标准差、全距、四分差、百分差。时序特征包括多个时刻对应的运行时数据,例如,CPU使用率的时序特征为P={20%,25%,…,62%},20%为16:00时刻对应的CPU使用率,25%为16:05时刻对应的CPU使用率,62%为17:00时刻对应的CPU使用率。在本申请的一实施例中,统计特征具有第一预设维度,时序特征具有第二预设维度。可选地,第一预设维度为10,第二预设维度为36。
在本申请的一实施例中,对特征数据进行预处理包括:对特征数据进行聚合、降噪、归一化及聚类处理。
在本申请的一实施例中,对特征数据进行聚合处理包括:将基于不同来源采集到的关键数据转换得到的特征数据汇聚,例如,将通过数据采集接口采集的关键数据、从其他电子设备获取的关键数据及从数据库获取的关键数据转换得到的特征数据进行汇聚。
在本申请的一实施例中,对特征数据进行降噪处理包括:滤除时序特征中的异常数据。具体地,预设运行时数据的时序特征的正常范围,判断运行时数据的时序特征中的每个数据是否在所述正常范围内或是否为0,若运行时数据的时序特征中的数据不在所述正常范围内或为0,删除所述数据。可以理解,由于运行时数据在生成、采集或传输过程中可能出现错误,导致数据出现异常而不在正常范围内或为零值,通过将不在正常范围内或为零值的数据滤除,可以有效提高时序特征的有效性。
在本申请的一实施例中,对特征数据进行归一化处理包括:基于时序特征中的最大值和最小值对时序特征中的每个数据进行归一化处理。具体地,对时序特征中所有数据进行min(最小值)-max(最大值)的归一化处理,使每个数据都归一化到[-1,1]的范围内。其中,归一化处理的公式为:
在公式1中,Xi为第i个时序特征的数值,Xi,min为时序特征中的最小值,Xi,max为时序特征中的最大值,X′i为第i个时序特征归一化之后的数据。
可以理解,采集到的原始数据可能存在冗余,例如CPU使用量和CPU使用率这两个指标描述了同一个物理含义的数据,如此,有必要对特征数据进行聚类处理。在本申请的一实施例中,对特征数据进行聚类处理包括:计算任意两个时序特征之间的相关度,判断两个时序特征之间的相关度是否大于或等于预设值,若所述两个时序特征之间的相关度大于或等于预设值,删除所述两个时序特征中的任一时序特征。可以理解,通过对时序特征进行聚类去冗余处理,使得时序特征的维度为第二预设维度。
在本申请的一实施例中,任意两个时序特征之间的相关度可以通过皮尔逊相关性系数进行表征,计算皮尔逊相关性系数的公式为:
在公式2中,Xi表示一时序特征X的第i个值,Yi表示另一时序特征Y的第i个值,n表示时序特征的数据个数,表示时序特征X的均值,/>表示时序特征Y的均值。
S1013,基于多个应用程序对应每种负载类型的统计特征和时序特征建立特征库。
在本申请的一实施例中,基于多个应用程序对应每种负载类型的统计特征和时序特征建立特征库包括:将对每次采集的多个应用程序分别对应负载类型的关键数据处理得到的统计特征和时序特征作为一组特征数据,将多个应用程序对应每种负载类型的多组特征数据存储至预设数据库,以建立所述特征库,形成多个应用程序的画像。其中,特征库中包括多个应用程序对应每种负载类型(应用-负载)分别对应的多组特征数据,例如,应用A-CPU密集型对应的多组特征数据,应用A-I/O密集型对应的多组特征数据,应用B-CPU密集型对应的多组特征数据,应用B-I/O密集型对应的多组特征数据。
S102,基于多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型,并基于多个应用程序对应负载类型的参数调优模型建立模型库。
在本申请的一实施例中,所述预设模型为基于随机森林的贝叶斯优化算法,在基于随机森林的贝叶斯优化算法中,随机森林模型为贝叶斯优化算法的代理模型。在本申请的其他实施例中,所述预设模型也可以是基于高斯过程回归(Gaussian Processes,GP)的贝叶斯优化算法或基于树结构的帕尔森估计(Tree-structured Parzen Estimator,TPE)的贝叶斯优化算法。
在本申请的一实施例中,基于多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型的细化流程如图6所示,具体包括:
S1021,预设应用程序对应负载类型的参数样本和第一迭代次数。
在本申请的一实施例中,预设每个应用程序对应负载类型的参数样本,参数样本中包括多种参数及每种参数对应的多个数据,形成每个应用程序对应负载类型的参数空间。例如,应用A-CPU密集型对应两种参数,每种参数具有五个数据,两种参数可以包括内存容量和最大并发线程数量,内存容量的五个数据可以包括1G、2G、3G、4G、5G,最大并发线程数量的五个数据可以包括60000、70000、8000、90000、100000。
S1022,从应用程序对应负载类型的参数样本中选取多组第一参数,并确定每组第一参数对应的第一性能数据。
在本申请的一实施例中,从应用程序对应负载类型的参数样本中随机选取多组第一参数,每组第一参数包括多种参数对应的数据,例如内存容量和最大并发线程数量的数据,电子设备基于每组第一参数运行应用程序(即负载),在应用程序运行完成后,获取运行过程中的性能数据,得到每组第一参数对应的第一性能数据。在本申请的一实施例中,性能数据可以是每秒查询数(Query Per Second,QPS)、响应时间(Response Time,RT)或系统吞吐量。其中,每秒查询数为系统每秒处理的查询请求次数,响应时间为系统对请求作出响应的时间,系统吞吐量为单位时间处理的请求的数量。
S1023,基于多组第一参数和每组第一参数对应的第一性能数据,构建预训练随机森林模型。
在本申请的一实施例中,首先对随机森林模型进行初始化,将多组第一参数和每组第一参数对应的第一性能数据作为训练数据,对随机森林模型进行训练。基于多组第一参数和每组第一参数对应的第一性能数据,构建预训练随机森林模型包括:将多组第一参数作为随机森林模型的输入数据,将多组第一参数对应的第一性能数据作为随机森林模型的输出数据,基于输入数据和输出数据对随机森林模型进行调参,完成预训练随机森林模型的构建。
具体地,随机森林模型包括多个子模型,子模型可以是决策树,将多组第一参数随机输入每个子模型,将该组第一参数对应的第一性能数据作为随机森林模型的输出数据,对随机森林模型的模型参数进行调整,构建所述预训练随机森林模型。可选地,随机森林模型的模型参数包括决策树的数量、决策树的最大特征数、决策树的最大深度及决策树的最大叶子节点数。
S1024,从应用程序对应负载类型的参数样本中选取多组第二参数,将多组第二参数输入预训练随机森林模型,得到预训练随机森林模型中每个决策树预测的第二性能数据。
在本申请的一实施例中,基于预设的采样策略,从应用程序对应负载类型的参数样本中选取多组第二参数,将多组第二参数分别随机输入预训练随机森林模型中的多个决策树,通过每个决策树输出每组第二参数对应的第二性能数据,其中,第二性能数据为决策树基于每组第二参数预测的性能数据。
在本申请的一实施例中,预设的采样策略为在参数样本中选取使得贝叶斯优化算法的采集函数(acquisition function)最大的预设数量组参数作为起点,通过随机近邻(random neighbors)方法找到邻居点(即相邻的参数组合),并输入随机森林模型进行预测,可选地,预设数量为10。其中,某个点的随机近邻的定义:该点所有的离散变量的取值随机切换,例如,该点所有连续变量以当前取值为均值,预设数据为标准差采样切换(连续变量预先被归一化到[0,1]),可选地,预设数据为0.2。通过该方法随机采样多组参数,输入预训练随机森林模型得到预测数据的均值与标准差,然后计算采集函数,并选取使得采集函数最大的参数作为下一次迭代的参数。
S1025,基于所有决策树预测的第二性能数据,计算预训练随机森林模型的均值和标准差。
在本申请的一实施例中,计算所有决策树预测的第二性能数据的均值,作为预训练随机森林模型的均值,计算所有决策树预测的第二性能数据的标准差,作为预训练随机森林模型的标准差。若决策树的数量为n,决策树1预测的第二性能数据为a1,决策树2预测的第二性能数据为a2,…,决策树n预测的第二性能数据为an,计算预训练随机森林模型的均值μ的公式为:
计算预训练的随机森林模型的标准差σ的公式为:
S1026,基于预训练随机森林模型的均值和标准差,计算贝叶斯优化算法的采集函数的多个输出值。
在本申请的一实施例中,采集函数为EI(Expected improvement,期待增量)函数,基于参数调优获取的性能数据的目标确定EI函数的表达式,若基于参数调优获取的性能数据的目标为获取性能数据的最小值,EI函数的表达式为:
若基于参数调优获取的性能数据的目标为获取性能数据的最大值,EI函数的表达式为:
在公式5和6中,μ为均值,σ标准差,Φ为正态分布的概率密度函数,为正态分布的分布函数,f*为当前最佳参数组合的输出值,即,在公式5中,f*为当前的最小值,在公式6中,f*为当前的最大值。
例如,若性能数据为响应时间,响应时间显然是越小越好,则基于参数调优获取的性能数据的目标为获取性能数据的最小值,其对应的EI函数为公式5。若性能数据为系统吞吐量,系统吞吐量显然是越大越好,则基于参数调优获取的性能数据的目标为获取性能数据的最大值,其对应的EI函数为公式6。
在本申请的其他实施例中,贝叶斯优化算法的采集函数也可以是概率增量(Probability of Improvement,PI)或置信度上界(Upper Confidence Bound,UCB)。
在本申请的一实施例中,将多组第二参数对应的预训练随机森林模型均值和标准差输入采样函数,得到采集函数的多个输出值。
S1027,基于采集函数的最大输出值确定第三参数,基于第三参数对预训练随机森林模型进行训练。
在本申请的一实施例中,将多组第二参数对应的均值和标准差输入采集函数后,得到多个输出值,确定多个输出值中的最大值,并将最大输出值对应的一组第二参数作为第三参数,电子设备基于第三参数运行负载,在负载运行结束后,获取第三参数对应的第三性能数据,基于第三参数和第三性能数据继续对预训练随机森林模型进行训练,完成对预训练随机森林模型的更新。可以理解,采集函数的最大输出值对应的参数为收益最大的样本,可以提高模型的训练效率。
S1028,判断当前迭代次数是否达到第一迭代次数。若当前迭代次数达到(即等于)第一迭代次数,流程进入S1029;若当前迭代次数未达到(即小于)第一迭代次数,流程返回S1024。可选地,第一迭代次数为1000。
S1029,基于当前的预训练随机森林模型确定应用程序对应负载类型的参数调优模型,并通过当前的预训练随机森林模型输出参数样本中使得性能数据最优的最优参数。
在本申请的一实施例中,基于当前的预训练随机森林模型确定应用程序对应负载类型的参数调优模型包括:在当前迭代次数达到第一迭代次数时,将基于当前的预训练随机森林模型的贝叶斯优化算法确定为应用程序对应负载类型的参数调优模型。
在本申请的一实施例中,通过当前的预训练随机森林模型输出参数样本中使得性能数据最优的最优参数包括:将所述参数样本中的多组预设参数输入当前的预训练随机森林模型,得到所述多组预设参数分别对应的性能数据,确定所述多组预设参数分别对应的性能数据中最优的性能数据,并确定最优的性能数据对应的一组预设参数为所述参数样本中使得性能数据最优的最优参数。其中,多组预设参数可以是参数样本中的所有参数组合或部分参数组合。具体地,基于参数调优获取的性能数据的目标确定性能数据的最大值或最小值所对应的一组预设参数为最优参数。例如,若性能数据为响应时间,最优的性能数据为性能数据的最小值,性能数据的最小值对应的一组预设参数为最优参数。若性能数据为系统吞吐量,最优的性能数据为性能数据的最大值,性能数据的最大值对应的一组预设参数为最优参数。
S1030,基于S1021-S1029构建每个应用程序对应负载类型的参数调优模型,并将每个应用程序对应负载类型的参数调优模型存储至预设数据库,得到多个应用程序对应负载类型的参数调优模型的模型库。
在S102中,针对每一类应用负载,针对给定的可调节参数和搜索空间,通过获取用户给定的调优目标指标,利用智能算法以迭代的方式训练模型,得到所有应用负载构建的模型库。其中,搜索空间是指由多种参数以及对应取值构造而成的空间。
具体地,针对每一类应用负载,分别训练一个模型,最终构建一个完整的模型库。用户需要给定可调节参数和搜索空间,并定义优化目标,通过迭代算法来训练模型,在每一轮迭代中,调优器发起调优请求,目标机器运行负载,目标机器根据当前的参数,将执行结束后得到的调优目标机器性能发送给调优器,调优器根据当前和历史的参数值,输出下一轮迭代中所有参数的值,直到模型收敛,将该模型存储到模型库中。现有的调优器通常采用贝叶斯回归算法,但存在两方面的问题,一方面由于参数数量多,导致搜索空间维度高,传统算法(例如高斯过程回归模型)优化速度慢;另一方面,不同应用的参数类型包括离散型、连续型、类别型等,传统算法不具备通用性。基于此,在传统贝叶斯回归算法的基础上,引入随机森林算法处理离散型、连续型、类别型的参数;引入采样策略提高模型对高维空间的处理能力。
在本申请的一实施例中,S101-S102为离线训练阶段,包括应用程序对应负载类型的特征库和模型库的构建。
参阅图7所示,本申请一实施例提供的参数调整方法的流程示意图。所述方法应用于电子设备中,所述参数调整方法包括:
S201,检测电子设备运行在线应用程序时的负载是否发生变化。若电子设备运行在线应用程序时的负载发生变化,流程进入S202;若电子设备运行在线应用程序时的负载未发生变化,流程继续S201。
在本申请的一实施例中,在线应用程序为电子设备正在运行的应用程序,可以是云上应用程序,即,安装于用户的终端设备但实际由电子设备(服务器)运行的应用程序,例如小程序。
在本申请的一实施例中,可以基于分布的变化点检测(Change Point Detection,CPD)算法检测电子设备运行在线应用程序时的负载是否发生变化。检测电子设备运行在线应用程序时的负载是否发生变化的细化流程如图8所示,具体包括:
S2011,采集在线应用程序的关键数据,生成关键数据的时间序列。
在本申请的一实施例中,所述关键数据可以为运行时数据,将采集的多个运行时数据与采集时刻相关联,生成多个运行时数据的时间序列。
S2012,对关键数据的时间序列进行预处理。
在本申请的一实施例中,对关键数据的时间序列进行预处理包括:对关键数据的时间序列进行降噪、平滑及差分处理。
具体地,对关键数据的时间序列进行降噪处理包括滤除时间序列中超出正常范围的值和零值,对关键数据的时间序列进行平滑处理包括通过移动平均滤波器对时间序列进行平滑处理,对关键数据的时间序列进行差分处理包括将时间序列的每个数值修改为所述数值与前一数值之间的差值。
S2013,检测时间序列中任一数据前后的数据分布是否发生变化。
在本申请的一实施例中,检测时间序列中任一数据前后的数据分布是否发生变化包括:基于任一数据的左边部分数据与右边部分数据的均值和方差,检测所述数据前后的数据分布是否发生变化。
可以理解,左边部分数据可以是时间序列中任一数据之前的数据,右边部分数据可以是时间序列中任一数据之后的数据。需要说明的是,任一数据本身属于左边部分数据。例如,预处理后的时间序列为T={x1,x2,…,xk,xk+1,xk+2,…,xn},对于数据xk,左边部分数据的均值为:
右边部分数据的均值为:
左边部分数据的方差为:
右边部分数据的方差为:
在本申请的一实施例中,基于左边部分数据与右边部分数据的均值和方差,检测时间序列中任一数据前后的数据分布是否发生变化包括:计算时间序列中任一数据对应的左边部分数据与右边部分数据的均值变化及方差变化,判断均值变化是否大于第一阈值、方差变化是否大于第二阈值、均值变化与方差变化是否同时大于第三阈值。若均值变化大于第一阈值,或方差变化大于第二阈值,或均值变化与方差变化同时大于第三阈值,确定数据前后的数据分布发生变化,流程进入S2014;若均值变化小于或等于第一阈值,且方差变化小于或等于第二阈值,且均值变化与方差变化同时小于或等于第三阈值,确定数据前后的数据分布未发生变化,流程返回S2011。可选地,第一阈值为50%,第二阈值为50%,第三阈值为30%。
在本申请的一实施例中,任一数据对应的左边部分数据与右边部分数据的均值变化Δμ的计算公式为:
任一数据对应的左边部分数据与右边部分数据的方差变化Δσ2的计算公式为:
S2014,确定电子设备运行在线应用程序时的负载发生变化。
S202,获取在线应用程序的特征数据,将获取的特征数据与特征库中的特征数据进行匹配,确定特征库中与在线应用程序匹配的应用程序及负载类型。
在本申请的一实施例中,获取在线应用程序的特征数据,将获取的特征数据与特征库中的特征数据进行匹配,确定特征库中与在线应用程序匹配的应用程序及负载类型的细化流程如图9所示,具体包括:
S2021,采集在线应用程序的关键数据,将采集的关键数据转换为特征数据,对特征数据进行预处理,得到统计特征和时序特征。
在本申请的一实施例中,采集的在线应用程序的关键数据包括逻辑层数据和运行时数据,与S1012相同的,将采集的关键数据转换为特征数据,对特征数据进行预处理,得到第一预设维度的统计特征和第二预设维度的时序特征。
S2022,将在线应用程序的统计特征与特征库中每组特征数据的统计特征进行匹配,确定在线应用程序的统计特征与特征库中每组特征数据的统计特征之间的第一相似值。
可以理解,统计特征为静态特征,时序特征为动态特征,在特征匹配过程中,将动态特征匹配和静态特征匹配相结合,可以考虑应用负载的整体分布和实时动态性。
在本申请的一实施例中,所述确定所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征之间的第一相似值包括:计算所述在线应用程序的每个维度的统计特征与所述特征库中每组特征数据的对应维度的统计特征之间的差值的平方和,得到所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征之间的第一相似值。计算在线应用程序的统计特征与特征库中每组特征数据的统计特征的第一相似值的公式为:
在公式13中,n表示静态特征的维度,αi和βi分别表示当前获取的统计特征和特征库中统计特征的第i个特征,D的值越小,表示特征之间的相似度越高。
S2023,将在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配,确定在线应用程序的时序特征与特征库中每组特征数据的时序特征之间的第二相似值。
在本申请的一实施例中,基于DTW(Dynamic time warping,动态时间弯曲)距离的时序相似性方法确定动态特征(时序特征)之间的相似度,如此,计算在线应用程序的时序特征与特征库中每组特征数据中的时序特征的第二相似值的公式为DTW距离的状态转移方程,具体为:
dp(i,j)=min(dp(i-1,j-1),dp(i-1,j),dp(i,j-1))+d(i,j) (14)
在公式14中,d(i,j)表示pi和qj之间的欧式距离,即,在线应用程序的时序特征中一数据与特征库的一时序特征中的一数据之间的欧式距离,dp(i,j)表示序列P={p1,p2,…,pi}和序列Q={q1,q2,…,qj}之间的最小距离。可以理解,DTW距离相比于传统的基于欧式距离的相似性计算,可以考虑时间上的平移和伸缩,准确率更高。在线应用程序的每个时序特征的数据个数可以与特征库中每组特征数据的时序特征的数据个数相同。
S2024,基于第一相似值和第二相似值确定特征库中与在线应用程序匹配的应用程序及负载类型。
在本申请的一实施例中,基于第一相似值和第二相似值确定特征库中与在线应用程序匹配的应用程序及负载类型包括:计算在线应用程序的统计特征与特征库中每组特征数据的统计特征进行匹配得到的第一相似值及在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配得到的第二相似值之和,确定第一相似值与第二相似值之间的最小和值,确定特征库中与最小和值对应的特征数据的应用程序及负载类型为与在线应用程序匹配的应用程序及负载类型。
可以理解,通过计算在线应用程序的统计特征与特征库中每组特征数据的统计特征进行匹配得到的第一相似值及在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配得到的第二相似值之和,可以得到多组第一相似值与第二相似值之间的多个和值,确定多个和值中的最小和值,进而确定特征库中与最小和值对应的一组特征数据,进而确定与该组特征数据对应的应用程序及负载类型,即为与在线应用程序匹配的应用程序及负载类型。
可以理解,将在线应用程序的特征数据与特征库中的特征数据进行匹配确定在线应用程序匹配的应用程序及负载类型,进而根据匹配的应用程序及负载类型选择参数调优模型,可以获得与在线应用程序最匹配的参数调优模型,从而通过参数调优模型可以精确地确定电子设备运行在线应用程序时的最优参数。
在本申请的另一实施例中,基于第一相似值和第二相似值确定特征库中与在线应用程序匹配的应用程序及负载类型包括:计算在线应用程序的统计特征与特征库中每组特征数据的统计特征进行匹配得到的第一相似值及在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配得到的第二相似值的平均值,确定第一相似值与第二相似值的最小平均值,确定特征库中与最小平均值对应的特征数据的应用程序及负载类型为与在线应用程序匹配的应用程序及负载类型。
S203,从模型库中选取与在线应用程序匹配的应用程序及负载类型对应的参数调优模型。
在本申请的一实施例中,模型库中包括每个应用程序及负载类型对应的参数调优模型,在确定与在线应用程序匹配的应用程序及负载类型之后,从模型库中选取所述应用程序及负载类型对应的参数调优模型。
可以理解,在线应用程序的类型及对应的负载类型未知的情况下,通过将在线应用程序的特征数据与特征库中的特征数据进行匹配,可以确定与在线应用程序匹配的已知应用程序及负载类型,无需在线应用程序的类型及对应的负载类型已知。
在本申请的另一实施例中,若在线应用程序的类型已知,可以将在线应用程序的特征数据与特征库中与在线应用程序相同的应用程序对应不同负载类型的特征数据进行匹配,以确定与在线应用程序匹配的应用程序及负载类型,如此,可以有效缩短特征数据的匹配时间。
在本申请的另一实施例中,若在线应用程序的类型及对应的负载类型均已知,可以直接从模型库中选取所述在线应用程序及负载类型对应的参数调优模型。
S204,基于选取的参数调优模型确定运行在线应用程序的最优参数。
在本申请的一实施例中,基于选取的参数调优模型确定运行在线应用程序的最优参数的细化流程如图10所示,具体包括:
S2041,基于在线应用程序的参数样本对选取的参数调优模型进行调整。
在本申请的一实施例中,在线应用程序的参数样本包括多组参数和每组参数对应的性能数据,基于多组参数和对应的性能数据以及第二迭代次数对参数调优模型进行训练,训练过程与S202相同,从而对选取的参数调优模型进行微调。其中,第二迭代次数小于第一迭代次数,可选地,第二迭代次数为10。在线应用程序的参数样本可以预先设置或现场采集。
S2042,基于调整后的参数调优模型输出运行在线应用程序的最优参数。
在本申请的一实施例中,基于调整后的参数调优模型输出运行在线应用程序的最优参数包括:将在线应用程序的多组参数输入调整后的参数调优模型,得到多个性能数据,确定多个性能数据中最优的性能数据,将最优的性能数据对应的参数确定为电子设备运行在线应用程序时的最优参数,并输出所述最优参数。电子设备采用基于在线参数调优得到的最优参数运行在线应用程序时,可以使得性能达到最优。具体地,基于参数调优获取的性能数据的目标确定性能数据的最大值或最小值所对应的一组预设参数为最优参数。
参阅图11所示,为本申请另一实施例提供的特征库和模型库的建立方法的流程图。所述方法应用于电子设备中,所述参数调整方法包括:
S301,逻辑层数据和运行时数据采集。
在本申请的一实施例中,在离线训练阶段,为准确构建应用的画像,利用现有的数据采集工具,搜集能够表征应用特点的关键数据,这些数据包括逻辑层数据(如进程数量、处理请求数等)和运行时数据(CPU、内存、网络、磁盘等的运行数据),逻辑层数据重点刻画应用的一些统计信息,而运行时数据则描述应用随着时间变化的动态特征。
S302,数据预处理,包括聚合、降噪、填充。
在本申请的一实施例中,采集到的运行时数据表示为时间序列,这些时间序列进行异常值检测和去除,并将其中的无效值(如超出正常范围的值和零值)去除。
S303,数据归一化。
在本申请的一实施例中,对所有时间序列中所有值进行min-max归一化处理,使处理后每一个数值都归一化到[-1,1]的范围内。
S304,利用聚类构建关键特征。
在本申请的一实施例中,原始得到的数据可能存在冗余,例如,CPU使用量和CPU使用百分比这两个指标描述了同一个物理含义的数据。相比于传统的人工分析,采用基于皮尔逊相关性系数的时序相似性计算来移除冗余数据,从而构建得到10维的统计特征和36维的时序特征。
S305,建立特征库。
在本申请的一实施例中,需要对每一种应用负载构建具有表征能力的特征。针对所有应用负载,构建完整的特征库。
S306,随机选取样本,基于随机选取的样本对随机森林模型进行训练。
S307,判断当前迭代次数是否超过最大迭代次数。若当前迭代次数未超过最大迭代次数,流程进入S308;若当前迭代次数超过最大迭代次数,流程进入S312。
S308,大规模采样,得到随机森林的均值和方差。
在本申请的一实施例中,对参数大规模采样,将采样得到的参数输入随机森林模型,确定每个子模型(决策树)的输出值,计算多个子模型的输出值的均值和方差,从而得到随机森林的均值和方差。
S309,选择收益最大的样本。
在本申请的一实施例中,将随机森林模型的均值和方差输入贝叶斯优化算法的采样函数,得到采样函数的输出值,确定采样函数的最大输出值对应的样本为收益最大的样本。
S310,计算新样本的结果。
S311,根据新样本的结构更新随机森林模型。
S312,根据更新的随机森林模型建立最优参数调优模型。
S313,根据最优模型建立模型库。
调优器的具体工作流程如下:1)初始化:从参数空间随机选取参数值,构建随机森林模型;2)基于采样策略,得到随机森林的均值和方差;3)选择收益最大的样本;4)计算新样本的结果;更新随机森林模型;5)若迭代次数达到最大次数,则输出最优配置参数,否则,继续执行2-4步。
参阅图12所示,为本申请另一实施例提供的参数调整方法的流程图。所述方法应用于电子设备中,所述参数调整方法包括:
S401,采集运行在线应用程序时的逻辑层数据和运行时数据。
S402,构建在线应用程序的特征。
在本申请的一实施例中,实时采集应用的关键特征数据,得到10维的统计特征和36维的时序特征。
S403,检测负载变化。
在本申请的一实施例中,设计基于时序特征的负载变化检测算法,面向线上应用,自动检测出应用负载是否发生了变化。具体地,需要实时检测线上应用的负载是否发生了变化,若发生了变化,则表明现有的配置参数不是最优的,需要重新调节。应用负载发生变化通常会导致部分指标(例如CPU、内存利用率)在数值、变化幅度等方面发生变化,因此,设计了基于时序特征的负载变化检测算法。其分为三步,第一步在线采集各种应用的各种性能指标,每一个指标的数据可以构成时间序列;第二步,对这些时间序列做降噪、平滑、差分等处理,筛选重要指标;第三步利用基于分布的变化点检测算法,首先采用基于单变量时间序列的变化点检测算法。
S404,判断负载是否发生变化。若负载发生变化,流程进入S405;若负载未发生变化,流程返回S401。
S405,将在线应用程序的特征与特征库中的特征数据进行匹配。
在本申请的一实施例中,实时采集应用的关键特征数据,得到10维的统计特征和36维的时序特征。在特征匹配过程中,将动态特征匹配和静态特征匹配相结合,同时考虑应用负载的整体分布和实时动态性。在动态特征匹配中引入基于DTW距离的时序相似性方法,相比于传统的基于欧式距离的相似性计算,能考虑时间上的平移和伸缩,准确率更高。通过匹配得到和当前负载最相似的应用,并从模型库得到该应用对应的预训练模型。通过利用大量离线采集的数据,能减少在线训练的代价。
S406,模型迁移,从模型库获取特征库中匹配的特征数据所对应的参数调优模型。
S407,基于在线应用程序的负载数据对参数调优模型进行微调。
S408,基于微调后的参数调优模型输出运行在线应用程序的最优参数。
在本申请的一实施例中,将最匹配的模型进行迁移,并根据当前应用进行微调,输出最优的配置参数。根据历史最匹配的模型,结合当前负载的少量数据,调优器对该模型进行微调,基于微调后的模型输出最优的配置参数。
本申请实施例的产品实现形态,是包含在机器学习平台软件中,并部署在服务器硬件上的程序代码。本申请的程序代码运行于服务器的主机内存,可以分类离线训练和在线检测两部分,离线训练时,会采集大量不同应用场景下的运行时数据和统计数据,以构建时序特征库和统计特征库,并通过离线训练调优算法,针对不同场景分别构建模型库。在线时,通过实时采集在线应用的负载数据,利用负载变化检测算法自动检测负载是否发生变化,若发生变化,则将变化后的应用特征和特征库进行匹配,找到已知的最匹配的模型,基于该模型和少量在线应用的数据,通过模型微调,输出在线应用的最优参数。本申请在面向云上应用的在线性能优化方面具有广阔的应用价值。
本申请实施例设计了基于时序特征的负载变化检测算法,考虑时间维度的信息,能实时、主动发现负载的变化;将动态特征和静态特征相结合,构建应用画像模型,匹配准确率更高;利用嵌入技术和采样策略,提升传统智能参数调优速度,并有效处理多种类型的参数。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法实现上述实施例中的参数调整方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述实施例中的参数调整方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的参数调整方法。
其中,本申请实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例是示意性的,例如,该模块或单元的划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (28)
1.一种参数调整方法,其特征在于,所述参数调整方法包括:
检测电子设备运行在线应用程序时的负载是否发生变化;
若所述电子设备运行在线应用程序时的负载发生变化,获取所述在线应用程序的特征数据,将所述特征数据与特征库中的特征数据进行匹配,确定所述特征库中与所述在线应用程序匹配的应用程序及负载类型;
从模型库中选取与所述在线应用程序匹配的应用程序及负载类型对应的参数调优模型;
基于选取的所述参数调优模型确定运行所述在线应用程序的最优参数。
2.如权利要求1所述的参数调整方法,其特征在于,所述检测电子设备运行在线应用程序时的负载是否发生变化包括:
采集所述在线应用程序的关键数据,生成所述关键数据的时间序列;
检测所述时间序列中任一数据前后的数据分布是否发生变化;
若所述时间序列中任一数据前后的数据分布发生变化,确定所述在线应用程序的负载发生变化;或
若所述时间序列中所有数据前后的数据分布均未发生变化,确定所述在线应用程序的负载未发生变化。
3.如权利要求2所述的参数调整方法,其特征在于,所述检测所述时间序列中任一数据前后的数据分布是否发生变化包括:
基于所述时间序列中任一数据的左边部分数据与右边部分数据的均值和方差检测所述数据前后的数据分布是否发生变化。
4.如权利要求3所述的参数调整方法,其特征在于,所述基于所述时间序列中任一数据的左边部分数据与右边部分数据的均值和方差检测所述数据前后的数据分布是否发生变化包括:
计算所述时间序列中任一数据对应的左边部分数据与右边部分数据的均值变化及方差变化;
判断所述均值变化是否大于第一阈值、所述方差变化是否大于第二阈值、所述均值变化与所述方差变化是否同时大于第三阈值;
若所述均值变化大于所述第一阈值,或所述方差变化大于所述第二阈值,或所述均值变化与方差变化同时大于所述第三阈值,确定所述数据前后的数据分布发生变化;或
若所述均值变化小于或等于所述第一阈值,且所述方差变化小于或等于所述第二阈值,且所述均值变化与方差变化同时小于或等于所述第三阈值,确定所述数据前后的数据分布未发生变化。
5.如权利要求1所述的参数调整方法,其特征在于,所述获取所述在线应用程序的特征数据包括:
采集所述在线应用程序的关键数据,将采集的关键数据转换为所述特征数据,对所述特征数据进行预处理,得到所述在线应用程序的统计特征和时序特征。
6.如权利要求5所述的参数调整方法,其特征在于,所述将所述特征数据与特征库中的特征数据进行匹配,确定所述特征库中与所述在线应用程序匹配的应用程序及负载类型包括:
将所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征进行匹配,确定所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征之间的第一相似值;
将所述在线应用程序的时序特征与所述特征库中每组特征数据的时序特征进行匹配,确定所述在线应用程序的时序特征与特征库中每组特征数据的时序特征之间的第二相似值;
基于第一相似值和第二相似值确定所述特征库中与在线应用程序匹配的应用程序及负载类型。
7.如权利要求6所述的参数调整方法,其特征在于,所述确定所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征之间的第一相似值包括:
计算所述在线应用程序的每个维度的统计特征与所述特征库中每组特征数据的对应维度的统计特征之间的差值的平方和,得到所述在线应用程序的统计特征与所述特征库中每组特征数据的统计特征之间的第一相似值。
8.如权利要求6所述的参数调整方法,其特征在于,所述确定所述在线应用程序的时序特征与所述特征库中每组特征数据的时序特征之间的第二相似值包括:
基于动态时间弯曲距离的时序相似性方法确定所述在线应用程序的时序特征与所述特征库中每组特征数据的时序特征之间的第二相似值。
9.如权利要求6所述的参数调整方法,其特征在于,所述基于第一相似值和第二相似值确定所述特征库中与在线应用程序匹配的应用程序及负载类型包括:
计算所述在线应用程序的统计特征与特征库中每组特征数据的统计特征进行匹配得到的第一相似值及所述在线应用程序的时序特征与特征库中每组特征数据的时序特征进行匹配得到的第二相似值之和;
确定所述第一相似值与所述第二相似值之间的最小和值;
确定所述特征库中与所述最小和值对应的特征数据的应用程序及负载类型为与所述在线应用程序匹配的应用程序及负载类型。
10.如权利要求1所述的参数调整方法,其特征在于,所述方法还包括:
采集多个所述应用程序与不同负载类型对应的特征数据,建立所述特征库;
基于多个所述应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型,并基于多个所述应用程序对应负载类型的参数调优模型建立所述模型库。
11.如权利要求10所述的参数调整方法,其特征在于,所述采集多个应用程序与不同负载类型对应的特征数据,建立所述特征库包括:
采集所述应用程序对应每种负载类型的关键数据;
将采集的所述关键数据转换为所述应用程序的特征数据,对所述应用程序的特征数据进行预处理,得到所述应用程序的关键数据的统计特征和时序特征;
基于所述多个应用程序对应每种负载类型的所述统计特征和时序特征建立所述特征库。
12.如权利要求11所述的参数调整方法,其特征在于,所述关键数据包括逻辑层数据和运行时数据。
13.如权利要求12所述的参数调整方法,其特征在于,所述将采集的所述关键数据转换为所述应用程序的特征数据,对所述应用程序的特征数据进行预处理,得到所述应用程序的关键数据的统计特征和时序特征包括:
将采集的所述应用程序的逻辑层数据转换为所述应用程序的统计特征,将采集的所述应用程序的运行时数据转换为所述应用程序的时序特征;
对所述应用程序的特征数据进行聚合、降噪、归一化及聚类的预处理,得到第一预设维度的所述统计特征和第二预设维度的所述时序特征。
14.如权利要求10所述的参数调整方法,其特征在于,所述基于所述多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型包括:
预设所述应用程序对应负载类型的参数样本,所述参数样本包括多种参数及每种参数对应的多个数据;
从所述参数样本中选取多组第一参数,并确定每组第一参数对应的第一性能数据;
基于所述多组第一参数和每组第一参数对应的第一性能数据构建预训练随机森林模型。
15.如权利要求14所述的参数调整方法,其特征在于,所述从所述参数样本中选取多组第一参数,并确定每组第一参数对应的第一性能数据包括:
从所述参数样本中随机选取所述多组第一参数,每组第一参数包括多种参数对应的数据;
所述电子设备基于每组第一参数运行所述应用程序,在所述应用程序运行完成后,获取运行过程中的性能数据,得到每组第一参数对应的所述第一性能数据。
16.如权利要求14所述的参数调整方法,其特征在于,所述基于所述多组第一参数和每组第一参数对应的第一性能数据构建预训练随机森林模型包括:
将每组第一参数作为随机森林模型的输入数据,将每组第一参数对应的所述第一性能数据作为所述随机森林模型的输出数据,基于所述输入数据和所述输出数据对所述随机森林模型进行调参,完成对所述预训练随机森林模型的构建。
17.如权利要求14所述的参数调整方法,其特征在于,所述基于所述多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型还包括:
从所述参数样本中选取多组第二参数,将所述多组第二参数输入所述预训练随机森林模型,得到所述预训练随机森林模型中每个决策树预测的第二性能数据;
基于所有决策树预测的所述第二性能数据计算所述预训练随机森林模型的均值和标准差;
基于所述预训练随机森林模型的均值和标准差计算贝叶斯优化算法的采集函数的多个输出值;
基于所述采集函数的最大输出值确定第三参数,基于所述第三参数对所述预训练随机森林模型进行训练。
18.如权利要求17所述的参数调整方法,其特征在于,所述从所述参数样本中选取多组第二参数,将所述多组第二参数输入所述预训练随机森林模型,得到所述预训练随机森林模型中每个决策树预测的第二性能数据包括:
基于预设的采样策略,从所述参数样本中选取所述多组第二参数,将所述多组第二参数随机输入所述预训练随机森林模型中的多个决策树,通过每个决策树输出每组第二参数对应的所述第二性能数据。
19.如权利要求17所述的参数调整方法,其特征在于,所述预设的采样策略为在所述参数样本中选取使得所述采集函数最大的预设数量组参数作为起点,通过随机近邻方法找到邻居点。
20.如权利要求17所述的参数调整方法,其特征在于,所述基于所述采集函数的最大输出值确定第三参数,基于所述第三参数对所述预训练随机森林模型进行训练包括:
所述电子设备基于所述第三参数运行所述应用程序,在所述应用程序运行结束后,获取所述第三参数对应的第三性能数据,基于所述第三参数和所述第三性能数据继续对所述预训练随机森林模型进行训练,完成对所述预训练随机森林模型的更新。
21.如权利要求17所述的参数调整方法,其特征在于,所述基于所述多个应用程序对应负载类型的参数样本对预设模型进行训练,建立每个应用程序对应负载类型的参数调优模型还包括:
判断当前迭代次数是否达到第一迭代次数;
若所述当前迭代次数达到所述第一迭代次数,基于当前的所述预训练随机森林模型确定所述应用程序对应负载类型的参数调优模型,并通过当前的所述预训练随机森林模型输出所述参数样本中使得性能数据最优的最优参数。
22.如权利要求21所述的参数调整方法,其特征在于,所述通过当前的所述预训练随机森林模型输出所述参数样本中使得性能数据最优的最优参数包括:
将所述参数样本中的多组预设参数输入当前的所述预训练随机森林模型,得到所述多组预设参数分别对应的性能数据;
确定所述多组预设参数分别对应的性能数据中最优的性能数据,并确定所述最优的性能数据对应的一组预设参数为所述参数样本中使得性能数据最优的最优参数。
23.如权利要求1所述的参数调整方法,其特征在于,所述基于选取的所述参数调优模型确定运行所述在线应用程序的最优参数包括:
基于所述在线应用程序的参数样本对选取的所述参数调优模型进行调整;
基于调整后的所述参数调优模型输出运行所述在线应用程序的最优参数。
24.如权利要求23所述的参数调整方法,其特征在于,所述基于所述在线应用程序的参数样本对选取的所述参数调优模型进行调整包括:
基于所述在线应用程序的参数样本中的多组参数和对应的性能数据以及第二迭代次数对所述参数调优模型进行训练,完成对所述参数调优模型的调整。
25.如权利要求23所述的参数调整方法,其特征在于,所述基于调整后的参数调优模型输出运行在线应用程序的最优参数包括:
将所述在线应用程序的多组参数输入调整后的所述参数调优模型,得到所述在线应用程序的多组参数分别对应的性能数据;
确定所述在线应用程序的多组预设参数分别对应的性能数据中最优的性能数据,将所述最优的性能数据对应的参数确定为所述电子设备运行所述在线应用程序时的最优参数,并输出所述最优参数。
26.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至权利要求25中任一项所述的参数调整方法。
27.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述电子设备执行权利要求1至权利要求25中任一项所述的参数调整方法。
28.一种芯片,与电子设备中的存储器耦合,其特征在于,所述芯片用于控制所述电子设备执行权利要求1至权利要求25中任一项所述的参数调整方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211050001.8A CN117667227A (zh) | 2022-08-30 | 2022-08-30 | 参数调整方法及相关设备 |
PCT/CN2023/103441 WO2024045836A1 (zh) | 2022-08-30 | 2023-06-28 | 参数调整方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211050001.8A CN117667227A (zh) | 2022-08-30 | 2022-08-30 | 参数调整方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667227A true CN117667227A (zh) | 2024-03-08 |
Family
ID=90071967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211050001.8A Pending CN117667227A (zh) | 2022-08-30 | 2022-08-30 | 参数调整方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117667227A (zh) |
WO (1) | WO2024045836A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117909886B (zh) * | 2024-03-18 | 2024-05-24 | 南京海关工业产品检测中心 | 一种基于优化随机森林模型的锯齿棉品级分类方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271152A1 (en) * | 2008-04-28 | 2009-10-29 | Alcatel | Load testing mechanism for server-based applications |
CN113032367A (zh) * | 2021-03-24 | 2021-06-25 | 安徽大学 | 面向动态负载场景的大数据系统跨层配置参数协同调优方法和系统 |
CN114706840A (zh) * | 2022-04-08 | 2022-07-05 | 河海大学 | 面向负载感知的多模数据库ArangoDB参数调优的方法 |
-
2022
- 2022-08-30 CN CN202211050001.8A patent/CN117667227A/zh active Pending
-
2023
- 2023-06-28 WO PCT/CN2023/103441 patent/WO2024045836A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024045836A1 (zh) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665364B (zh) | 神经网络方法和设备 | |
CN111813532B (zh) | 一种基于多任务机器学习模型的图像管理方法及装置 | |
US11507324B2 (en) | Using feedback for adaptive data compression | |
WO2023231794A1 (zh) | 一种神经网络参数量化方法和装置 | |
CN110109899B (zh) | 物联网数据填补方法、装置及系统 | |
CN113326930A (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
EP3767549A1 (en) | Delivery of compressed neural networks | |
CN114418069A (zh) | 一种编码器的训练方法、装置及存储介质 | |
US10608664B2 (en) | Electronic apparatus for compression and decompression of data and compression method thereof | |
WO2024045836A1 (zh) | 参数调整方法及相关设备 | |
US20210375492A1 (en) | Ai enabled sensor data acquisition | |
CN112766467A (zh) | 基于卷积神经网络模型的图像识别方法 | |
US11881052B2 (en) | Face search method and apparatus | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN117033657A (zh) | 一种信息检索方法及装置 | |
CN115359298A (zh) | 基于稀疏神经网络的联邦元学习图像分类方法 | |
CN111309946A (zh) | 一种已建立档案优化方法及装置 | |
CN114640669A (zh) | 边缘计算方法及装置 | |
CN113159269A (zh) | 终端模型处理方法、装置及设备 | |
CN115983362A (zh) | 一种量化方法、推荐方法以及装置 | |
CN114239792B (zh) | 利用量化模型进行图像处理的系统、装置及存储介质 | |
CN113610228B (zh) | 神经网络模型的构建方法及装置 | |
CN116644783A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
EP3683733A1 (en) | A method, an apparatus and a computer program product for neural networks | |
CN116579380A (zh) | 一种数据处理方法以及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |