BestConfig: Tapping the Performance Potential of Systems via Automatic Configuration Tuning解读

       这是一篇关于参数配置的论文,但是感觉这篇论文读下来存在大量的冗余介绍,看到第六页才看到论文具体做了哪些工作?使用了什么方法。但是本着强迫症要把前面也看完的态度,我来概括和解析下这篇论文。

摘要:

  1. 一个好的参数配置能够提高部署系统在特定工作负载下的性能。
  2. 随着配置参数的增加,大量的参数会花费大量的时间决定最佳设置。而且用户通常不擅长调整参数达到最佳。
  3. BestConfig就是这样一个在资源有限的条件下用已有的工作负载自动找到最佳配置参数的系统。使用两种方法(divide and diverge(DDS)和recursive bound-and-search(RBS))。
  4. 提高tomcat吞吐量75%,提高cassandra吞吐量63%, 提高mysql吞吐量430%,减少hive join命令50%运行时间,减少spark join命令80%运行时间。

设置参数量大对应的复杂度高更容易产生配置错误,用户需要配置调整找到适合的参数才能挖掘系统潜在的性能。

系统调节面临的三个问题:

  1. 多变性, 与用户相关的性能目标可以是吞吐量,延迟,运行时间等。在各种性能目标中,有些需要最大化,而有些则最小化。 配置调整过程还必须考虑应用程序工作负载,并且存在各种可能的工作负载。  
  2. 复杂性,不同的性能目标和运用不同的工作负载,部署的系统在特定参数配置下会有不同的性能表现。参数量大复杂度高会对参数调节产生影响。比如spark主要目的是为了缩短运行时间,mysql的主要目标是为了增加吞吐率。
  3. 开销,由于没有性能模拟器,所以样本生成只能在部署系统中根据实际的测试,因此收集样本需要大量的开销,同时通过优化过程中的时间开销也需要考虑。

BestConfig是一个自动配置调节去优化性能目标为整体的云系统调节参数,在资源有限的条件下推荐最好的配置。同时使用有效的宽覆盖空间的采样方法。为了便于拓展到各种已经部署的系统和工作负载上,BestConfig提供了一个软件架构,该软件架构具有松散耦合但是可以拓展的特性,并采用闭环中的样本测试样本优化过程。 

主要贡献:

  1. BestConfig对广泛部署在云上的6个系统(spark、hadoop、hive等)进行自动参数调节。
  2. 提出一个架构能很容易插入任何已知系统的测试   ,并且容易测试其他的配置调节算法。
  3. 使用两种方法(divide and diverge(DDS)和recursive bound-and-search(RBS))确保在资源限制条件下调节整体系统配置。
  4. 通过广泛的实验证明了BestConfig的可行性和优势,同时拒绝使用基于模型的通用方法的可能性,例如一般系统的线性或平滑预测模型。
  5. 即使Tomcat的云部署具有资源完全消耗完,BestConfig仍然可以仅通过配置调整来 提高系统性能。

一些用于分布式系统的机器学习模型对于以下分布的复杂情况不适用,因为维度太高,对其中内在规律很难通过机器学习模型进行学习。

图

BestConfig的复杂架构如下图所示,组件之间的连接是通过数据流。其中系统模拟器(system manipulator)是与目标环境中部署的SUT交互的接口,工作负载生成器可以允许插入各种目标工作负载。整个调节过程是闭环的。在给定配置限制的情况下,配置采样器会生成资源限制允许的许多配置设置。然后使用配置设置更新SUT的配置设置。如果资源限制允许更多测试和样本,则性能优化算法将记录找到的配置设置,并为下一个调整循环输出一组新的配置约束。如果没有资源,BestConfig输出现在为止最佳性能的配置设置。同时这个架构具有高拓展性,可以通过微小改变用于不同的部署系统中。

架构

 子问题:采样和性能优化算法

采样需要满足的条件:广泛覆盖高维空间的配置参数,设置足够小减少资源和测试成本,如果资源被拓展可以覆盖更加广泛范围。

性能优化算法需要满足的条件:在有限样本条件下可找到配置结果;随着提供的样本增多,配置结果更优;不会局限在局部最优解,可以找到全局最优解在资源充足的条件下。

 DDS和RBS:解决子问题,确保BestConfig调节的有效性

DDS:

  1. 参数空间覆盖:有n个参数,每个参数设置k间隔区间,然后进行采样,会有k的n次方种可能这叫做网格化,通过子空间划分,网格化保证整个参数空间的完整覆盖。但是随着参数n的增加维度呈指数级增长。
  2. 资源有限:由于资源有限所以应该只关注对性能影响大的参数进行不断的调参,不是关注所有的参数。将参数范围划分为k个区间后,我们不会对所有区间进行完整组合。 相反,我们对每个参数进行间隔排列; 然后,我们调整每个参数的间隔置换并得到k个样本。 例如,将两个参数X和Y分别划分为6个范围间隔,我们可以采用6个样本。(如下图所示)
  3. 可拓展性。

RBS:

  1. 约束步骤。给定初始样本集,RBS找到具有最佳性能的点C0。 然后它要求在C0周围的有界空间中采样的另一组点,很有可能找到另一个具有更好性能的点(比如C1)。 然后再次在C1周围的有界空间中进行采样,递归执行以上采样步骤,直到在样本集中找不到具有更好性能的点。
  2. 递归步骤。目的是为了不会局限在局部最优解,可以找到全局最优解在资源充足的条件下。

结合DDS和RBS:

使用分布函数:

公式

 其中Di表示的是D的正交子空间,m(*)函数表示勒贝格测度(是欧式距离的一种标准测量方法)。如果没有优化空间的话该分布函数结果为0,如果每个维度都有优化空间的话,结果会接近于1。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值