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产品上线,后续会在更多腾讯云数据库产品上应用,为学术及工业界带来更多贡献和服务。

面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读的更多相关文章

  1. php开发面试题---数据库SQL调优的几种方式

    php开发面试题---数据库SQL调优的几种方式 一.总结 一句话总结: 创建索引:尽量避免使用or或者like,或者sql中的正则 存储查询中间结果 可以加sphinx搜索技术 查询优化 主从数据库 ...

  2. MySQL 数据库性能调优

    MySQL 数据库性能调优 MySQL性能 最大数据量 最大并发数 优化的范围有哪些 存储.主机和操作系统方面: 应用程序方面: 数据库优化方面: 优化维度 数据库优化维度有四个: 优化选择: 数据库 ...

  3. mysql数据库性能调优总结积累

    mysql数据库的调优大概可以分为四大块 0 架构调优 ---根据业务 读写分库分表   ---主从 读写分离 1 配置的调优 ---开启缓存查询  设置缓存大小 ---最大连接数设置 ---数据库引 ...

  4. OCM_第十五天课程:Section6 —》数据库性能调优 _SQL 访问建议 /SQL 性能分析器/配置基线模板/SQL 执行计划管理/实例限制

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  6. OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  7. OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  8. 数据库MySQL调优实战经验总结<转>

    数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...

  9. 数据库性能调优之始: analyze统计信息

    摘要:本文简单介绍一下什么是统计信息.统计信息记录了什么.为什么要收集统计信息.怎么收集统计信息以及什么时候收集统计信息. 1 WHY:为什么需要统计信息 1.1 query执行流程 下图描述了Gau ...

  10. 数据库性能调优——sql语句优化(转载及整理) —— 篇2

    下面是在网上搜集的一些个人认为比较正确的调优方案,如有错误望指出,定虚心改正 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中 ...

随机推荐

  1. 【Go语言】LiteIDE使用的个人使用方法

    Go语言开发 可以使用的IDE很多 (Goclipse,sublime,notepad++,vim等)目前使用的最顺手的就是LiteIDE了 但是尽管这样,一开始使用LiteIDE也有很多不习惯的地方 ...

  2. poj 3264 Balanced Lineup (RMQ)

    /******************************************************* 题目: Balanced Lineup(poj 3264) 链接: http://po ...

  3. 今日又遇无法启动apache

    前几天安装了.NET要用到的MSSERVER,之后apache就running none of service. 把微软的MSSERVER停用掉服务就没问题.哪部分冲突了

  4. cf701C They Are Everywhere

    Sergei B., the young coach of Pokemons, has found the big house which consists of n flats ordered in ...

  5. Mysql,zip格式安装、修改密码、建库

    Mysql,zip格式 1. Mysql 主目录最好别带有"- ."之类的字符 2. Mysql 配置环境变量 Path 环境变量后加上 mysql解压路径:eg:E:\mysql ...

  6. 零基础学Python--------第7章 面向对象程序设计

    第7章 面向对象程序设计 7.1 面向对象概述 面向对象(Object Oriented)的英文缩写是OO,它是一种设计思想.从20世纪60年代提出面向对象的概念到现在,它已经发展成为一种比较成熟的编 ...

  7. 【译】4. Java反射——字段

    原文地址:http://tutorials.jenkov.com/java-reflection/fields.html ======================================= ...

  8. ubuntu常用软件命令

    解压zip软件 unzip  xxx.zip -d解压到指定目录 清理磁盘空间 sudo apt-get autoremove sudo apt-get clean sudo dpkg --list ...

  9. 最大值最小值(max,max_element)

    min 如果比不出大小就返回第一个引数 //版本一:调用operator< template <class LessThanComparable> const LessThanCom ...

  10. 洛谷 P2245 星际导航 解题报告

    P2245 星际导航 题目描述 sideman做好了回到Gliese 星球的硬件准备,但是sideman的导航系统还没有完全设计好.为了方便起见,我们可以认为宇宙是一张有N 个顶点和M 条边的带权无向 ...