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

本文围绕BestConfig系统展开,该系统能在资源有限时自动为云系统找到最佳配置参数。它使用DDS和RBS两种方法,可提高多种系统吞吐量、减少运行时间。还分析了系统调节面临的多变性、复杂性和开销问题,通过实验证明了其可行性和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

摘要:

  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。

内容概要:本文介绍了基于Python实现的SSA-GRU(麻雀搜索算法优化门控循环单元)时间序列预测项目。项目旨在通过结合SSA的全局搜索能力和GRU的时序信息处理能力,提升时间序列预测的精度和效率。文中详细描述了项目的背景、目标、挑战及解决方案,涵盖了从数据预处理到模型训练、优化及评估的全流程。SSA用于优化GRU的超参数,如隐藏层单元数、学习率等,以解决传统方法难以捕捉复杂非线性关系的问题。项目还提供了具体的代码示例,包括GRU模型的定义、训练和验证过程,以及SSA的种群初始化、迭代更新策略和适应度评估函数。; 适合人群:具备一定编程基础,特别是对时间序列预测和深度学习有一定了解的研究人员和技术开发者。; 使用场景及目标:①提高时间序列预测的精度和效率,适用于金融市场分析、气象预报、工业设备故障诊断等领域;②解决传统方法难以捕捉复杂非线性关系的问题;③通过自动化参数优化,减少人工干预,提升模型开发效率;④增强模型在不同数据集和未知环境中的泛化能力。; 阅读建议:由于项目涉及深度学习和智能优化算法的结合,建议读者在阅读过程中结合代码示例进行实践,理解SSA和GRU的工作原理及其在时间序列预测中的具体应用。同时,关注数据预处理、模型训练和优化的每个步骤,以确保对整个流程有全面的理解。
内容概要:本文详细介绍了如何使用PyQt5创建一个功能全面的桌面备忘录应用程序,涵盖从环境准备、数据库设计、界面设计到主程序结构及高级功能实现的全过程。首先,介绍了所需安装的Python库,包括PyQt5、sqlite3等。接着,详细描述了SQLite数据库的设计,创建任务表和类别表,并插入默认类别。然后,使用Qt Designer设计UI界面,包括主窗口、任务列表、工具栏、过滤器和日历控件等。主程序结构部分,展示了如何初始化UI、加载数据库数据、显示任务列表以及连接信号与槽。任务管理功能方面,实现了添加、编辑、删除、标记完成等操作。高级功能包括类别管理、数据导入导出、优先级视觉标识、到期日提醒、状态管理和智能筛选等。最后,提供了应用启动与主函数的代码,并展望了扩展方向,如多用户支持、云同步、提醒通知等。 适合人群:零基础或初学者,对Python和桌面应用程序开发感兴趣的开发者。 使用场景及目标:①学习PyQt5的基本使用方法,包括界面设计、信号与槽机制;②掌握SQLite数据库的基本操作,如创建表、插入数据、查询等;③实现一个完整的桌面应用程序,具备增删改查和数据持久化功能;④了解如何为应用程序添加高级特性,如类别管理、数据导入导出、到期日提醒等。 阅读建议:此资源不仅适用于零基础的学习者,也适合有一定编程经验的开发者深入理解PyQt5的应用开发。建议读者跟随教程逐步实践,结合实际操作来理解和掌握每个步骤,同时可以尝试实现扩展功能,进一步提升自己的开发技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值