一种基于空间搜索的服务配置自动优化方法与流程

文档序号:29957198发布日期:2022-05-11 08:16阅读:101来源:国知局
一种基于空间搜索的服务配置自动优化方法与流程

1.本发明涉及一种基于空间搜索的服务配置自动优化方法,属于软件技术领域。


背景技术:

2.云服务的数量规模不断增加,类型呈现多样化,用户需要面对越来越多的配置参数。大量的配置参数导致配置的复杂性不断增加,给用户、开发人员和管理员带来了巨大压力,更容易出现配置错误,从而导致性能衰减。因此,为了挖掘服务的性能潜力,保证服务质量,用户需要通过配置优化找到合理的配置。然而,由于以下方面的问题,造成调整常规服务配置变得困难。首先,云服务具有多样性,包括数据分析服务、数据库服务、业务逻辑处理服务,在云计算环境下需要可以对各类服务进行各种部署与配置。同时,用户有关的性能目标可以是吞吐量,延迟,运行时间等,有些需要最大化,而有些则需要最小化。文献(dana van aken, et al. 2017. automatic database management system tuning through large-scale machine learning. in proceedings of the 2017 acm international conference on management of data. acm, 1009

1024.)仅考虑数据库管理系统和响应延迟性能目标,但在云计算环境下,配置调优过程还必须考虑到应用程序的各种服务、性能目标和负载的各种组合。第二,云服务具有复杂性。给定不同的性能目标和不同的负载,对于给定的一组配置参数,已部署的服务会具有不同的性能表现,不同的服务可能具有复杂的性能表现。第三,配置云服务具有较高的操作开销。配置调优涉及解决高维参数空间的问题,通常需要大样本集,由于不存在用于常规服务的性能模拟器,只能通过对已部署服务进行测试来生成样本。文献(yuqing zhu, et al. 2017. acts in need: automatic configuration tuning with scalability guarantees. in proceedings of the 8th sigops asia-pacific workshop on systems. acm.)使用少量仿真环境下获取的配置数据进行优化,但在云计算实际部署环境下,配置调优样本收集和优化过程具有较高的计算和时间开销。文献(chunqiang tang, et al. 2015. holistic configuration management at facebook. in proceedings of the 25th symposium on operating systems principles. acm, 328

343.)针对分布式应用系统提出了特定自动配置优化方法,但对于各种各样的云服务不具有通用性,并且难以解决以上在云计算环境下的挑战。尤其是,针对分布式系统提出了统计或机器学习模型,但是这些模型通常基于仿真环境开展研究,不适用于具有高维参数的复杂云计算环境,同时也很少考虑实际环境的计算开销。


技术实现要素:

3.本发明的目的:为了满足用户对云应用及服务的性能优化需求,同时简化优化问题,在给定的资源限制内,自动查找能够在特定应用程序和负载的条件下,优化已部署系统性能的配置。
4.本发明的原理:资源限制是允许在调优过程中运行的测试数量,作为调优过程的输入提供。其他输入包括配置参数集及其下界/上界为配置约束。采用效用函数方法将多个
性能优化需求合并为最大化目标。调优过程处于闭环状态,可以在资源限制允许的任意多个循环中运行。输出是配置,具有给定资源限制内的最佳性能。
5.本发明技术解决方案:一种基于空间搜索的服务配置自动优化方法,其特点在于实现步骤如下:第一步,给定配置约束,根据资源限制生成许多配置,然后使用这些配置更新目标应用的配置。能够处理所有类型的参数,包括布尔型、枚举型和数值型。生成的样本必须覆盖广泛的参数空间范围。为了保证资源的可伸缩性,如果用户允许运行更多的调优测试,则采样方法还必须保证更好地覆盖整个参数空间。因此,采样方法生成的样本集必须满足以下三个条件:(1)该样本集在配置参数的高维空间上具有广泛的覆盖范围;(2)该集合足够小,可以满足资源限制并降低测试成本;(3)如果资源限制得到扩展,则该集合可以缩放以具有更大的覆盖范围。
6.为了保证对高维参数空间的广泛覆盖,本发明将空间划分为子空间,然后从每个子空间中随机选择一个点,每个子空间由一个样本表示。对于不进行子空间划分的随机抽样,很可能有某些子空间没有被表示出来,特别是当空间的维数很高的时候。给定n个参数,本发明可以将每个参数的范围划分为k个区间,并收集这些区间的组合,一共有kn个组合,因此有kn个子空间和样本。通过子空间划分,网格化保证了整个参数空间的完全覆盖。但它也产生了一个具有较大基数的样本集,该基数与参数维数呈指数关系。
7.本发明减少了要采样的子空间的数量。一个有影响的参数的值对性能的影响可以通过性能的比较来证明,而无需考虑其他参数的值。本发明不需要检查参数值与其他参数值的所有组合。相反,只需要检查一次每个参数中可能突出的那个值,并将得到的性能与其他样本进行比较。因此,在资源有限的情况下,只考虑一个参数的每个区间一次,而不是对所有的区间进行完整的组合。在将参数范围划分为k个区间之后,并没有对所有区间进行完全组合。相反,对每个参数的区间进行排列,然后对齐每个参数的区间排列并得到k个样本。对于给定的样本集大小,通过将每个参数代表的每个区间精确地表示一次来最大程度地分散样本点集。
8.由于配置调优过程处于闭环状态,因此可以运行多次采样。为了可伸缩性和覆盖率,不会通过重新划分整个空间来重新启动一个新的采样过程。相反,在需要重新采样的情况下,在尽可能分散采样点的同时,重用了之前对整个样本空间的初始化分以及子空间中未被考虑的样本点。虽然要求参数的连续范围,但是可以通过将类型转换为具有连续数值范围的参数来应用于布尔类型或范畴类型的参数。
9.第二步,对于每个配置,对目标应用运行测试,并收集相应的性能结果,然后通过效用函数将性能结果转换为标量性能度量。针对仅具有单个值的标量性能指标进行优化,此性能指标由一个效用函数定义,用户关注的性能目标作为输入。如果仅关注一个性能目标,例如吞吐量或等待时间,则效用函数就是标识函数。如果同时考虑多个性能目标,则可以将效用函数定义为加权求和。用户可以通过一个性能接口定义和实现自己的效用功能。
10.第三步,性能优化算法使用性能度量的所有样本对和相应的配置,找到性能最好的配置。如果资源限制允许进行更多的测试和采样,则优化算法将记录找到的配置,并为下一个调优循环输出一组新的配置约束。否则,调优过程将结束,输出迄今为止发现的性能最佳的配置。通过最大化效用函数定义的性能指标,用户可能具有需要最小化的性能目标,但
是可以将最小化问题转化为最大化问题。根据给定的样本数来最大化性能指标。要求输出配置设置必须比给定配置设置对系统性能有所提高,给定配置设置可以是默认设置,也可以是用户手动调整。为了优化一个函数/系统的输出,优化算法必须满足以下条件:(1)即使样本数量有限,也可以找到答案;(2)如果提供更多的样本集,则可以找到更好的答案;(3)如果有足够的资源,不会陷入局部次优区域,并且有可能找到全局最优值。
11.由于性能图具有带有数值和连续范围的参数,因此性能曲面是连续曲面。给定一个连续的表面,很可能会在样本集中具有最佳性能的点附近找到具有相近或更好性能的其他点。即使连续性能表面可能不光滑,或者仅当投影到特定维度时或约束到特定子空间时,性能表面才是连续的, 以上观察仍然适用。在此基础上,本发明给定一个初始样本集,找到性能最好的点,然后在改点周围的有界空间中采样另一组点,在其附近的有限空间中采样。递归地执行这个有界抽样步骤,直到在抽样集中找不到性能更好的点为止。
12.这个过程中存在一个有界空间应该有多大的问题。如果参数值对性能有积极影响,则他在样本集中也应具有较高的性能。通过递归地在样本集中性能最好的点上执行边界采样步骤,即使在有限的样本集上也能找到性能最佳的点。每个边界采样步骤为一轮,可以调整样本集的大小和轮数,以满足资源限制要求。如果允许的测试数量更多,则可以执行更多的边界采样步骤,以便在有可能的有界子空间中进行更精细的搜索。为了避免陷入次优的有界子空间,如果在边界内找不到性能更好的点,则通过在完整的参数空间中使用采样器进行采样,从而重新开始搜索,这个措施能够在提供更大的样本集时找到更好的答案。
13.本发明与现有技术相比具有如下优点:为面向云计算环境的应用及服务,实现自动化的配置调优,并且使用分散采样方法和递归界搜索方法,从而能够在资源受限情况下对常规系统进行配置调优。该方法可以广泛适用于各类云应用及服务,具有较低的时间开销,无需人工参与的自动实现配置调优。
附图说明
14.图1为基于空间搜索的服务配置自动优化方法技术路线图。
具体实施方式
15.以下结合具体实施例和附图对本发明进行详细说明,如图1所示,本发明实施例方法流程:为了处理各种已部署的系统和负载,系统架构设计具有灵活性,由众多松散耦合的组件构成,这些组件通过数据流连接。主要组件包括配置采样器,性能优化器,系统操纵器和负载生成器。
16.配置采样器:实现可扩展的采样方法,向系统操纵器输入要采样的配置集;性能优化器:实现可伸缩的优化算法,将新的配置约束条件自适应地输入到配置采样器;系统操纵器:更新目标应用的配置,监控和测试目标应用的状态,操作目标应用,将性能配置对样本输入到性能优化器中;负载生成器:生成应用程序工作负荷,可以是一个基准测试系统,也可以是用户提供的测试系统,可以重新生成实际的应用程序负载。
17.架构中的组件是松散耦合的,仅通过配置约束,配置和性能指标的数据流相互交互,允许将不同的可扩展采样方法和可扩展优化算法插入到配置调优过程中。在应对不同的目标应用或负载时,仅需要调整系统操纵器和负载生成器。借助可扩展的体系结构,可以优化未来出现的系统,而只需对系统操纵器和负载生成器进行少量更改即可。系统操纵器组件是一个与部署在目标环境中的目标应用交互的接口,而负载生成器组件则允许轻松输入任何目标负载。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1