慕测科技|DeepPerf:深度稀疏神经网络对可配置软件的性能预测



慕测科技|DeepPerf:深度稀疏神经网络对可配置软件的性能预测
本文插图
【慕测科技|DeepPerf:深度稀疏神经网络对可配置软件的性能预测】

摘要
通常软件系统会向用户提供了一组配置选项 , 不同的配置可能导致系统运行时性能的不同 。 由于配置的组合可能是指数级的 , 所以在所有可能的配置下都很难全面部署和度量系统性能 。 最近 , 研究者们提出了几种学习方法来建立一个基于小样本配置的性能预测模型 , 然后使用该模型来预测新配置下的系统性能 。 本文提出了一种基于深度前馈神经网络(FNN)和稀疏正则化(L1 正则化)相结合的软件系统建模方法 。 此外 , 本文还设计了一种实用的搜索策略来有效地自动调整网络超参数 。 本文的方法称为 DeepPerf , 它可以用二进制 ‘与/或’ 数字配置选项预测高度可配置软件系统的性能值.与最先进的方法相比 , 它具有更高的预测精度和更少的训练数据 。 在 11 个公开的真实数据集上的实验结果证实了本方法的有效性 。
关键字:软件性能预测 , 深度稀疏前馈神经网络 , 高度可配置系统 , 稀疏正则化
引言
许多大型和复杂的软件系统都是高度可配置的 , 即 , 它们提供了一组配置选项供用户选择 。 这些选项允许用户自定义系统以满足他们的特定要求 , 从而提高系统的可用性和可重用性 。 不同的配置可能导致不同的质量属性(非功能属性) 。 在质量属性中 , 性能(例如响应时间或吞吐量)是最重要的质量属性之一 , 因为它直接影响用户体验 。 在实际配置和部署系统之前 , 有必要了解系统在一定配置下的性能 。 这可以帮助用户在配置方面做出合理的决定 , 并降低性能测试的成本 。 但是 , 本文无法在所有可能的配置下详尽地部署和评估系统性能 , 因为即使是小型可配置系统也已经导致了成倍数量的配置 。
近年来 , 研究人员提出了仅用有限的一组配置(样本)来测量系统的性能 , 建立性能预测模型 , 然后使用该模型来预测新配置(人口)下系统的性能的方法 。这样 , 可以在配置和部署系统变体之前预测性能 。难点在于利用少量样本以高精度预测系统性能 。由于配置系统和收集性能数据需要花费时间和精力 , 因此希望将样本大小保持为最小 。
建立性能预测模型的挑战在于配置选项(功能)之间的相互作用 , 即 , 特定的功能组合会导致系统性能出现意外行为 , 而它们的单独存在则不会 。 为了应对这一挑战 , 一种方法 , 即SPLConqueror , 旨在从样本测量值之间的差异中学习各个配置选项的影响及其相互作用 。 将几种采样启发式方法和用于配置选项的实验设计与建议的学习方法相结合 , 以实现良好的预测精度 。SPLConqueror的强项是可以从二进制数字可配置软件系统中得出性能影响模型 , 即 , 使用预测模型 , 用户可以了解各个功能及其交互如何影响系统性能 。 这种方法的一个缺点是它的灵活性 , 因为可能无法始终测量满足某些预先定义的覆盖标准的配置的性能值 。 此外 , SPLConqueror通常需要比其他方法更多的样本 , 因为它们的重点是使配置选项的影响和它们的交互作用明确化 。
另一种方法是将性能预测问题视为非线性回归问题 , 并应用统计学习方法 , 例如 使用分类树和回归树(CART)技术来发现此非线性模型 。最近 , 它通过与各种重采样和机器学习超参数调整技术相结合而得到进一步扩展 , 并成为一种数据效率更高的性能学习算法(DECART) 。也就是说 , 与 CART 相比 , DE-CART 使用较少的测量工作来学习和验证性能预测模型 。但是 , 目前 , CART 和 DECART 都只能预测具有二进制配置选项的可配置软件系统 。
最近 , Zhang 等人通过将软件性能函数表示为布尔函数来应对这一挑战 。使用布尔函数的傅立叶变换 , 估计性能函数的任务就变成了从一个很小的样本中估计其相关的傅立叶系数 。尽管该算法可以得出可保证预测准确性的理论边界的样本大小 , 但是达到所需准确性所需的样本大小仍然非常大(有时甚至超过系统的总体数量) , 尤其是对于相对较小的样本而言 系统 。与 CART / DECART 相似 , 此方法仅适用于二进制可配置软件系统 。


推荐阅读