共计 2826 个字符,预计需要花费 8 分钟才能阅读完成。
SIGMOD 数据管理国内会议是数据库畛域具备最高学术位置的国际性会议,位列数据库方向顶级会议之首。近日,腾讯云数据库团队的最新研究成果入选 SIGMOD 2022 Research Full Paper(钻研类长文),入选论文题目为“HUNTER: An Online Cloud Database Hybrid Tuning System for Personalized Requirements”。标记着腾讯云数据库团队在数据库 AI 智能化上获得进一步冲破,实现性能当先。
数据库参数主动调优在学术界和工业界都已有较多钻研,但现有的办法在短少历史数据时或是面对新负载进行参数调优时,往往面临着调优工夫过长的问题(可达到数天)。在此篇论文中,团队提出了混合调优零碎 Hunter,即改良后的 CDBTune+,次要解决了⼀个问题:如何在保障调优成果的前提下显著缩小调优工夫。经试验调优成果显著:随着并发度晋升实现调优工夫准线性升高,在单并发度场景下调优工夫只需 17 小时,在 20 并发度场景下调优工夫缩短至 2 小时。
工作原理(技术原理解析)
这是 CDB/CynosDB 数据库团队第三次研究成果论文被 SIGMOD 收录。继 2019 年数据库团队首度提出基于深度强化学习 (DRL) 的端到端云数据库参数调优零碎 CDBTune,该钻研论文“An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforcement Learning”入选 SIGMOD 2019 Research Full Paper(钻研类长文)。
尽管 CDBTune 在调参成果上曾经达到了⼀个相当高的程度,但咱们也发现,CDBTune 须要较长的调优工夫能力通过自我学习达到较高的性能。
对此,本次收录论文中提出改良的 CDBTune+,可能在保障调优成果的前提下极大地缩减调优耗时。
改良的混合调优零碎 CDBTune+,次要蕴含样本生成、搜寻空间优化、深度举荐三个阶段。样本生成阶段利用遗传算法进行初期调优,疾速获取高质量样本;搜寻空间优化阶段利用上⼀阶段的样本信息减小解空间,缩小学习老本;深度举荐阶段利用之前阶段的信息进行维度优化和强化学习预训练,保障调优成果的同时显著缩小调优工夫。
为了进⼀步对调优过程进行减速,咱们充分利用 CDB 的克隆技术,采纳多台数据库实例实现并行化,令整个调优工夫更进⼀步地缩小。
样本生成
如下图所示,因为基于学习的调优办法在训练初期都有着调优成果差、收敛速度慢等问题(咱们称之为冷启动问题)。
咱们认为这些办法面临冷启动问题次要是因为:
1、样本数量少品质差,网络难以疾速学到正确的摸索方向。
2、搜寻空间大,网络结构简单,学习速度迟缓。
为了缓解上述问题,咱们采纳收敛速度更快的启发式办法(如:遗传算法(GA))进行初期的调优,以此疾速取得高质量的样本。
如图 5 所示,不同办法进行 300 次的参数举荐,图中是这 300 次参数所对应的数据库性能散布。能够见得,相较于其余的办法,GA 可能收集到更多的高性能参数。
尽管有着更快的学习速度,然而 GA 却可能更容易收敛到次优解,如图 6 所示。
启发式办法虽有着较快的收敛速度,然而却容易收敛到部分最优,导致最终调优成果不佳。
而基于学习的办法却在较长的调优工夫后能够失去较高的性能,然而却须要较长的训练工夫,速度较慢。咱们将两种办法联合,即放慢了调优速度,也确保了参数品质。
搜寻空间优化
单纯地将两者拼接难以有⼀定的性能晋升(节约约 20% 的工夫),然而咱们冀望更多。
利用样本生成阶段能够取得较多高质量的样本,然而却没有将其成果充分发挥。咱们利用 PCA 进行状态空间降维,Random Forests 进行参数重要性排序。
PCA 是⼀种罕用的降维办法,可将高维数据降为低维数据的同时保留大部分信息。咱们采纳累计方差贡献率来掂量信息的保留度,⼀般来说,当累计方差贡献率 > 90% 时即可认为信息失去了齐全的保留。
咱们抉择贡献率最大的两个成分,并以此作为 x、y 轴描点,以其对应的数据库性能作为点的色彩(色彩越深性能越低),能够看出,低性能的点能够被两个成分较为显著的辨别开来,由此可见,PCA 可能帮忙 DRL 更好地学习。
随机森林能够被用来计算特色的重要性,咱们以数据库参数为输出,对应的数据库性能为输入训练随机森林模型,而后计算各个数据库参数的重要性,并进行排序。采纳不同数量的 Top 参数进行参数调优能够看到数据库最优性能的变动,在⼀定数量的样本保障下,TPC-C 负载调整 20 个参数即可达到较高的性能。
深度举荐
经验样本生成和搜寻空间优化后,咱们在深度举荐阶段采纳深度强化学习(DRL)来进行参数举荐。
首先,搜寻空间优化的后果会对 DRL 的网络进行优化,缩小其输入输出的维度,简化网络结构。
其次,样本生成阶段的样本将退出 DRL 的教训池中,由 DRL 进行⼀定水平的预训练。
最初,DRL 将基于改良后的摸索策略进行参数举荐。
DRL 的根本构造与 CDBTune 相似,为了充分利用高质量的历史数据,咱们批改了其摸索策略。动作(数据库参数配置)有⼀定概率在历史最优参数左近摸索,具体的计算方法如下图所示。
Ac 示意 DRL 的后果,Abest 示意历史最优,初始状况下 Ac 的概率为 0.3。
调优成果性能剖析
成果剖析
为了测试不同调优办法从零开始进行参数调优的成果,咱们在不同负载下进行了测试。在测试中,所有办法都没有任何的预训练。其中 HUNTER-20 示意以 20 个实例进行并发调优的 HUNTER。
如下图所示,尽管只有咱们的办法提供了并发性能,然而并发减速自身是通用的,因而,咱们在实在负载下对不同办法做了进⼀步测试。尽管大部分办法借助较长的调优工夫能够取得足够高的性能,然而,在雷同的代价状况下(工夫 * 实例数),HUNTER 的体现是最好的。
下图展现了 HUNTER-N 达到串行所能找到的最优性能的调优耗时,可见调优速度的成果,随着并发度减少,调优工夫显著缩短。
有余
对于 DBA 来说,负载越简略所需的调优工夫应该会越短,然而主动调优办法却没有这样的特质,如咱们上述的试验图所示,有些时候,简略负载可能须要更多的工夫来取得更高的性能。更重要的在于,咱们目前难以疾速地判断性能是否达到了“最优”,这导致咱们破费了额定的工夫来察看调优零碎是否能令数据库性能再失去进步。
目前
通过技术解读和成果剖析,咱们能够看出改良后的 Hunter 大幅晋升调优成果,同时体现出论文对理论数据库问题的落地可能性很高,具备领导办法意义。
在接下来的钻研中,咱们心愿联合专家教训来解决上文提到的问题,进步参数调优的可解释性并更进一步压缩调优工夫,同时也心愿找到一种预计最优性能的办法,从而缩小额定的调优工夫。
CDBTune+ 旨在升高数据库参数调优的复杂度,实现参数调优零运维,是腾讯云数据库 AI 智能化改革的再一次逾越和实现。智能调优一期曾经在腾讯云 MySQL 产品上线,后续会在更多腾讯云数据库产品上利用,为学术及工业界带来更多奉献和服务。