论文阅读-Automatic Database Knob Tuning-A Survey
论文标题:Automatic Database Knob Tuning: A Survey
作者:Xinyang Zhao, Xuanhe Zhou, Guoliang Li
关键词:旋钮调优 Knob Tuning, 机器学习 Machine Learning, 旋钮选择 Knob Selection, 特征选择 Feature Selection, 旋钮方法 Tuning Methods
1. 摘要
旋钮调优对数据库优化十分重要,它能够提高数据库性能或提升资源利用率。但是旋钮调优面临着几个共性的挑战:
- 配置旋钮个数很多,难以确定哪些是性能/资源的瓶颈。
- 大部分旋钮是连续变量,导致搜索空间巨大,启发式方法无法在有限时间内高效地找到旋钮设置
- 随着云服务的激增,旋钮调优愈发的困难。我们需要对各种场景中大量的数据库实例进行调优(不同应用、数据集、硬件)。
一些基于学习的方法被提出用于解决这些问题。常见的工作流程如下所示:
- 收集旋钮调优数据
- 利用数据训练旋钮调优模型
- 使用模型为新的类似的场景推荐旋钮设置,从而实现预期的优化目标
文章认为旋钮调优的流程分为:
- 旋钮选择 knob selection:经验方法、排名方法
- 特征选择 feature selection:特征离散化、特征聚类
- 调优方法 tuning method:启发式方法、贝叶斯优化、深度学习、强化学习
- 迁移技术 transfer technique:特征提取和自适应权重转移
2. 引言
2.1 调优目标
有两方面的调优目标:
- 提高性能:面对并发查询时的吞吐量 throughput、延迟 latency (面对单个查询时的响应时间)
- 提高资源利用率/减少代价(以不牺牲性能为前提)
此外,调优方法还通常从下面四个方面进行评估:
- 性能 performance:(在特定场景下的是否能实现目标)
- 开销 overhead:(该方法需要多少时间或系统资源来推荐旋钮设置)
- 适应性 adaptivity:该方法在新的场景下的表现
- 安全性 safety:该方法能否防止调整后性能下降
性能
和开销
对离线调优更重要(在克隆机器上)适应性
和安全性
对在线调优更重要(在生产机器上)
2.2 调优对象
数据库有几百个旋钮,对所有旋钮进行调优会消耗许多时间和系统资源。因此需要选择合适的旋钮进行调优,对性能有重要影响的旋钮进行调优。
如何确定调优对象,面临着两个挑战
- 如何衡量旋钮表现之间的关系。旋钮之间的关系是复杂的。
- 如何针对不同的调优任务选择重要的旋钮。旋钮对数据库的性能有着不同的、甚至相反的影响。
2.3 多样化的特征 Diversified features for characterizing the tuning requirements
确定了合适的旋钮,另一个问题是如何选取调优特征。
- 调优特征通常是在高位空间的,监管许多特征能够反映数据库的状态,许多特征捕获的是相似的调优特征,使得过滤冗余特征变得困难。
- 许多调优特征是在不同的领域上(例如查询特征和状态尺度)。将有用的特征合并/嵌入到相同的输入域是一件困难的事情。
2.4 如何调优(巨大的配置搜索空间)
由于多种的旋钮组合,旋钮调优是一个 NP-hard
问题。
- 即使旋钮的数量被减少,许多旋钮是连续的,搜索空间仍然是巨大的。
- 获取调优旋钮是一件昂贵的事情。我们需要在特定设置上执行工作负载来得到反馈,用于更新模型。
传统的方法往往无法意识到多种优化目标和限制,基于学习的方法能够解决这些问题。
2.5 配置迁移
一个旋钮配置无法在多个场景下得到最优的表现。多数现存的机器学习方法无法直接对新的调优任务做出推荐,重新训练需要花费大量的时间。
迁移方法能够将在历史调优任务上训练好的模型迁移到新的任务上。