前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >腾讯云CDB的AI技术实践:CDBTune

腾讯云CDB的AI技术实践:CDBTune

原创
作者头像
腾讯云数据库 TencentDB
修改于 2018-11-09 10:49:42
修改于 2018-11-09 10:49:42
13.1K2
举报

作者:邢家树,高级工程师,目前就职于腾讯TEG基础架构部数据库团队。腾讯数据库技术团队维护MySQL内核分支TXSQL,100%兼容原生MySQL版本,对内支持微信红包,彩票等集团内部业务,对外为腾讯云CDB for MySQL提供内核版本。

导语:CDBTune是腾讯云自主研发的数据库智能性能调优工具。相比于现有业界通用方法,CDBTune无需细分负载类型和积累大量样本,通过智能学习参与参数调优,获得较好的参数调优效果。

数据库系统复杂,且负载多变,调优对DBA非常困难:

  • 参数多,达到几百个
  • 不同数据库没有统一标准,名字、作用和相互影响等差别较大
  • 依靠人的经验调优,人力成本高,效率低下
  • 工具调优,不具有普适性

总结起来就是三大问题复杂效率低成本高。腾讯云的智能性能调优工具如何在不断实践中破解这些问题呢?

实践一:启发式搜索方法/Search-Based Algorithm

输入包括两部分:

  • 参数约束:包括要调优的参数集合和参数的上下界;
  • 资源的限制:调优过程在多少轮以后停止。

Configuration Sampler:会对输入参数进行取样,生成配置;配置会被设置到SUT(也就是待调优环境)。System Manipulator:它和SUT进行交互,设置参数,并且会获得SUT的性能数据。

Performance Optimizer:根据配置和性能数据找到最优的配置。PO算法主要包括两个方法:DDS和RBS。

lDivide-and-Diverge Sampling (DDS)

这里通过DDS来划分参数的子空间,降低问题的复杂度。首先把每个参数划分成k个区域,那么n个参数就有k^n个组合,从而降低复杂度。假设k和n如果比较大的话,空间可能还是很大。如何处理?此时可用超抽样的方法,只抽出k个样本解决。

lRecursive Bound-and-Search (RBS)

在一个性能平面上的某个点附近,总是能找到性能相近或者更好性能的点,也就是说可能找到更好的配置。在已有的样本里,找到性能最好的那个配置。然后在这个配置周围,运行多轮,递归寻找可能更好的配置。

基于搜索的方法可能的问题是,抽样和测试可能耗时很长,而且可能陷入局部最优。

实践二:机器学习方法/Machine Learning

主要包括三个步骤:

l识别负载特征

对metric进行了降维,metric是指系统的内部状态指标,比如MySQL的innodb_metric。这里用了两个方法,一个是FA,一个是K均值聚类。

  • 识别配置参数和性能的相关性

配置参数有几百个,先通过Lasso线性回归参数和性能的关系进行排序。优先考虑对性能影响较大的参数。

  • 自动调优

匹配目标workload,也就是根据负载在不同配置下面运行,表现出来的metric特性,匹配到最相似的负载。然后,根据匹配到的负载,推荐最优的配置。这里用到高斯过程,同时加入exploration/ exploitation,即探索、利用的过程。

这种方法的问题是,调优过程非常依赖历史数据,要匹配到相似的workload才可以,对训练数据要求比较高。如果匹配不到,则找不到很好的配置。

实践三:深度学习方法/Deep Learning

通过深度学习网络,推荐需要最终调节的参数:

  • 获得Workload对应的内部metric
  • 学习调参过程中内部metric的变化规律
  • 学习最终需要调节的参数

这个模型高度依赖训练数据,需要获得各种负载在各种配置下的性能数据。而数据库的负载和配置的组合实在太多了,基本不可能覆盖到。假设匹配不到类似场景,调优结果可能不理想。

实践四:深度强化学习方法/Reinforcement Learning

强化学习中,模拟人与环境交互的过程。Agent会根据观察到的状态state,做出相应的反应action。同时,Environment接受action,改变自己的状态。这个过程会根据一定规则,产生相应的reward,也就是对于action的评价。

最终通过实践比较,我们选取使用强化学习的模型,开发数据库参数调优工具CDBTune。它强调调参的动作,摆脱以数据为中心的做法。

强化学习与参数调优,我们定义如下规则:

  • 规则:每间隔一定时间调参,获得性能数据
  • 奖励:性能提高获得正奖励值,下降获得负奖励值
  • 目标:调参时间/次数尽可能少,获得较高的期望奖励值
  • 状态:系统内部metric指标

我们把系统的内部metric叫做内部指标;外部的性能数据,比如TPS/QPS/Latency叫做外部指标。在数据库参数调优场景中,具体做法是:Agent选择一个参数调整的action(也可能是多个参数)作用于数据库,根据执行action后的外部指标,计算应该获得的即时奖励。

在强化学习对应到参数调优这个场景。此场景的问题是:强化学习需要构造一张表,表明在某种状态下,执行某个操作,获得的收益后,我们才知道执行什么操作获得的收益是最大的。但是数据库的状态空间(性能指标)和动作空间(配置组合)特别大,组合这样一张表出来是不可能的任务。此时深度强化学习就派上用场了,我们要通过一个深度网络逼近这个Q-table的效果,也就是CDBTune的实现方法。

CDBTune实现

  • S为当前数据库性能状态(内部指标),S'为下一状态数据库性能状态
  • r为即时奖励,w为神经网络参数,a为采取的动作(配置参数的执行)
  • Q为状态行为价值函数

此模型主要分成两部分。

l数据库环境:如图左边,参数会被设置到这个环境里,然后环境的内部指标和外部指标会被采集,反馈给右边的模型。

l深度强化学习网络:如图右边,实现算法类似DeepMind发布的Nature DQN,采用两个Q-Network。

另外,Replay Memory是我们的记忆池,历史数据会被记录下来。然后训练会不断进行,不断加入记忆池。深度学习网络会从记忆池中随机选取样本机型训练。

在估计一个action的reward的时候,基于一个假设:我们的回报取决于对未来每一步的结果影响;而影响最大的,是最近的回报。通过

近似获得这个Q值。对于一个样本(s, a)而言,我们可以得到真正的回报r。这时候我们可以获得他们之前的Loss,调整左边的网络,使两边的Loss越来越小。这样我们的网络就会逐渐收敛,获得更好的推荐。

数据形式和相关策略

效果评估

通过测试可以看到,在不需要任何前期数据收集的情况下,CDBTune通过自我学习参数调优过程,达到较优的参数调优效果,CDBTune调优获得的吞吐和延时性能均达到较为理解的水平。这也是深度强化学习方法相对于其他几种方法的优势所在。

总结:

基于DQN智能调参的优势

  • 化繁为简,无需对负载进行精确分类
  • 调参动作更符合实际调参时的情况
  • 无需获取足够多的样本来,减少前期数据采集的工作量
  • 利用探索-开发(Exploration & Exploitation)特点,降低对训练数据的依赖,减小陷入局部最优的可能性

在实践过程中,我们也遇到一些问题:

  • 选择动作实际运行,训练效率不高,训练周期长
  • 对连续配置离散化处理,可能导致推荐配置的精度不高,收敛较慢
  • 使用动作的最大Q值,导致Q值的过高估计问题

针对这些问题,我们也在不断优化和改进我们的模型,优化参数。相信CDBTune可以在未来取得更好的效果。

更多前沿数据库技术和案例分享,请关注我们的微信号:腾讯云数据库CDB

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
2 条评论
热度
最新
写的很多,但是目前水平有限,先收藏了,以后学习
写的很多,但是目前水平有限,先收藏了,以后学习
回复回复点赞举报
大佬辛苦了!公式和 PPT 有点看不清,能否更新一下?
大佬辛苦了!公式和 PPT 有点看不清,能否更新一下?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
AI调参新纪元,腾讯数据库论文被SIGMOD收录
—   点击▲关注 腾讯云数据库 — 腾讯数据库与华中科技大学合作发布了最新研究论文 《An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforcement Learning》,该论文首次提出了云数据库自动性能优化系统 CDBTune,该系统可以在缺少相关经验数据训练的情况下建立优化模型,为用户提供在线自动优化数据库性能的服务,性能调优结果首次全面超越数据库专家,将大幅提高数据库运维效率。该论文已经被国际数据库
腾讯云数据库 TencentDB
2019/08/16
1.3K0
AI调参新纪元,腾讯数据库论文被SIGMOD收录
腾讯云数据库亮相数据库顶级会议SIGMOD
| 导语ACM SIGMOD/PODS 2019 数据管理国际会议于6月30日到7月5日在荷兰首都阿姆斯特丹召开。腾讯技术团队直击现场第一时间带回大会盛况。
腾讯云数据库 TencentDB
2019/08/14
1.2K0
腾讯云数据库亮相数据库顶级会议SIGMOD
解放双手,数据库智能调参CDBTune等你来测
好消息,腾讯云数据库团队智能调参CDBTune产品现已进入内测阶段,欢迎数据库爱好者、使用者、开发者前来测试。 CDBTune(cloud database tune)是基于2019至2021年间腾讯云数据库团队连续发表两篇顶级论文的研究成果,对云数据库进行调优的一整套解决方案,旨在充分借助深度学习技术提升数据库的运行效率。 在现实场景中,由于业务系统的千差万别以及大量参数带来的可设置范围复杂度,往往需要借助经验去构筑一套相对较为优异且通用的参数模板。因此,数据库当前运行参数往往也不是业务所需的最佳参数。同
腾讯云数据库 TencentDB
2022/04/26
8250
解放双手,数据库智能调参CDBTune等你来测
未来,软+硬+AI三位一体化自治数据库
在2022世界人工智能大会(WAIC)上,腾讯云数据库技术负责人程彬为大家分享了数据库与 AI 相结合背后的故事。在专场《当数据库遇上 AI 》中,程彬基于腾讯云数据库在 AI 智能化的探索与实践,剖析数据库与 AI 融合背后的技术关键点,为产业界提供前沿解决方案。以下为演讲实录: 点击观看完整版直播回放 线上、线下的朋友们,大家好,我是腾讯云数据库工程师程彬,非常荣幸能够在这个时期跟大家一起交流数据库技术。今天我代表我们团队,和大家一起谈谈AI和数据库结合的技术思考,并结合腾讯云数据库的实战经验分享一
腾讯云数据库 TencentDB
2022/09/07
7530
未来,软+硬+AI三位一体化自治数据库
数据库“自动驾驶”,腾讯云原生数据库 X AI 探索与突破!
导语 | 腾讯云原生数据库团队最新研究成果入选国际顶会SIGMOD,数据库结合AI形成自治大脑,并在2022年智能调优人机大赛中战绩不菲,标志着腾讯云在数据库自治领域取得重大突破,实现性能领先。 加入AI技术,形成数据库自治大脑 —— 周可/华中科技大学教授 周可教授表示,在海量数据的大背景下,DBA(人工运维)的增长远远跟不上数据的增长,且用户负载具有多样性和动态性,一成不变的运维方式已不能够满足用户的需求。把AI加入到数据库,形成数据库的自治大脑,符合数据库自治的发展方向。 实现数据库自治的基本框架包
腾讯云开发者
2022/04/11
5140
数据库“自动驾驶”,腾讯云原生数据库 X AI 探索与突破!
面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
SIGMOD 数据管理国际会议是数据库领域具有最高学术地位的国际性会议,位列数据库方向顶级会议之首。近日,腾讯云数据库团队的最新研究成果入选 SIGMOD 2022 Research Full Paper(研究类长文),入选论文题目为“HUNTER: An Online Cloud Database Hybrid Tuning System for Personalized Requirements”。标志着腾讯云数据库团队在数据库AI智能化上取得进一步突破,实现性能领先。 数据库参数自动调优在学术界和工业
腾讯云数据库 TencentDB
2022/07/01
7780
面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
性能全面超数据库专家,腾讯提基于机器学习的性能优化系统 | SIGMOD 2019
腾讯与华中科技大学合作的最新研究成果入选了国际数据库顶级会议SIGMOD的收录论文,并将于6月30日在荷兰阿姆斯特丹召开SIGMOD 2019国际会议上公开发表。
AI科技大本营
2019/06/21
9860
性能全面超数据库专家,腾讯提基于机器学习的性能优化系统 | SIGMOD 2019
【犀牛鸟·硬核】腾讯-华中科技大学联合实验室最新研究成果入选SIGMOD国际顶级会议研究类长文
前言:腾讯与华中科技大学于2018年成立智能云存储技术联合研究中心,联合研究中心旨在通过强强联合建设一流的智能云存储技术创新和人才培养平台,吸引汇聚顶尖专业人才,在分布式存储技术、高性能存储引擎、业务负载预测等方面开展联合技术攻关,突破超大规模云存储服务系统的诸多技术难题,推动智能云存储技术的科技创新及技术应用落地。 SIGMOD数据管理国际会议是数据库领域具有最高学术地位的国际性学术会议,位列数据库方向顶级会议之首。今年腾讯技术工程事业群云架构平台部CDB数据库团队的最新研究成果入选SIGMOD 2
腾讯高校合作
2019/06/18
1.3K0
【犀牛鸟·硬核】腾讯-华中科技大学联合实验室最新研究成果入选SIGMOD国际顶级会议研究类长文
论文学习笔记:增强学习应用于OS调度
【引子】周末,读了一篇同事推荐的论文《STUN: Reinforcement-Learning-Based Optimization of Kernel Scheduler Parameters for Static Workload Performance》,很有启发,遂加入个人思考编译成文。
半吊子全栈工匠
2023/09/02
5370
论文学习笔记:增强学习应用于OS调度
MySQL之父直播公开课来了!与腾讯云CDB专家天团联袂分享
在各行业爆发式增长的云时代,传统IT架构已无法满足企业需求。相比较于传统数据库,国产数据库技术取得了长足进步,也更适用于企业的生产环境和IT系统。 作为腾讯云最早的 MySQL 生态的云数据库,CDB (TencentDB for MySQL) 不仅是腾讯云上规模最大、最受欢迎的数据库产品,同时在腾讯集团内部也承担了微信红包、微信广告、QQ 空间等重量级业务的数据库访问服务。为了保证数据库服务质量,解决原生数据库内核存在的性能、功能、稳定性等方面的问题,CDB 维护了自己的 MySQL 内核分支 TX
腾讯技术工程官方号
2020/06/01
4920
DeepMind到底是如何教AI玩游戏的?这篇在Medium上获得1700个赞的文章,把里面的原理讲清楚了
一篇顶十篇!想入门强化学习,专心研读这篇对DeepMind经典论文的解析就够了 作者 | Aman Agarwal 编译 | Shawn 编辑 | 鸽子、焦燕 DeepMind到底是如何教AI玩游戏的?这篇在Medium上获得1700个赞的文章,把里面的原理讲清楚了。 谷歌的DeepMind是世界一流的AI研究团队,其研发的AlphaGo在2016年备受瞩目的人机大战中击败了韩国围棋冠军李世石(Lee Sedol),一战成名。AlphaGo背后的关键技术就是深度强化学习(Deep Reinforcem
AI科技大本营
2018/04/26
1.5K0
DeepMind到底是如何教AI玩游戏的?这篇在Medium上获得1700个赞的文章,把里面的原理讲清楚了
强化学习在智能对话上的应用
TEG数据平台部联合AiLab、Ai平台部,结合语音合成、语音识别、机器人问答、大数据能力等前沿性、高复用性的功能模块构建腾讯小知智能语音机器人产品,支持问答、业务办理、营销推广、回访调研、通知提醒等应用场景,降低人工服务成本、提升服务质量和转化效率,目前已在多个领域落地,如公安、零售、教育和地产等。
腾讯技术工程官方号
2019/05/16
1.2K0
强化学习在智能对话上的应用
数据库的AI到底是真的吗?
腾讯云数据库国产数据库专题线上技术沙龙已圆满结束,本期带来邢家树分享的《CDB Tune:腾讯云数据库的AI技术实践》直播视频和文字回顾。 关注“腾讯云数据库”公众号,回复“0530邢家树”,即可下载直播分享PPT。 大家好,我是邢家树,今天和大家分享的主题是CDBTune,腾讯云数据库的AI技术实践。主要内容分为四个部分,第一部分是智能调参的背景;第二部分会介绍一下我们采用的强化学习的方法;第三部分是CDBTune的技术架构;第四部分对性能做一个评估。 1 Part 01 智能调参背景 我们首先来
腾讯云数据库 TencentDB
2020/08/27
1.1K0
腾讯深度学习编译器BlazerML项目技术分享
Apache TVM 是一个用于 CPU、GPU 和机器学习加速器的开源机器学习编译器框架。TVM 支持 TensorFlow、Pytorch、MXNet、ONNX 等几乎所有的主流框架,目标是优化机器学习模型让其高效运行在不同的硬件平台上。TVM 提供了深度学习模型编译、优化和部署的端到端解决方案,支持从模型定义到部署的全流程自动化。 近日,TVM 社区举办了 TVMCon2023 会议。会议上,腾讯 BlazerML 深度学习编译器团队发表了题为《TVM at Tencent》的演讲,主要介绍了 Bla
腾讯技术工程官方号
2023/04/14
8990
腾讯深度学习编译器BlazerML项目技术分享
现场报道 SIGMOD 2019 数据库顶级会议
| 导语ACM SIGMOD/PODS 2019 数据管理国际会议于6月30日到7月5日在荷兰首都阿姆斯特丹召开。腾讯技术团队直击现场第一时间带回大会盛况。 SIGMOD第一天大会Keynote主题为“Responsible Data Science”;第二天的Keynote主题是区块链,更偏应用一些,由IBM Almaden研究中心的著名数据库研究员C. Mohan报告。他自从2016年以来重点研究和推广区块链技术,据统计已经在全世界十几个国家做过相关的报告。区块链技术经过了十年的发展,至今还存在一些争
腾讯数据库技术
2019/07/09
2K0
现场报道 SIGMOD 2019 数据库顶级会议
AutoTiKV:基于机器学习的数据库调优
TiKV 底层使用了 RocksDB 作为存储引擎,然而 RocksDB 配置选项很多,很多情况下只能通过反复测试或者依靠经验来调优,甚至连 RocksDB 的开发者都自嘲,他们没办法弄清楚每个参数调整对性能的影响。如果有一个自动 tuning 的方案就可以大大减少调优的人力成本,同时也可能在调优的过程中,发现一些人工想不到的信息。我们从 AutoML 中得到启发,希望能用 Automated Hyper-parameter Tuning 中的一些方法来对数据库参数进行自动调优。
PingCAP
2019/10/10
7680
【RL Application】语义分割中的强化学习方法
语义分割旨在对图像中的每个像素进行类别划分并对其分配标签。传统图像语义分割技术有基于阈值、基于边缘、基于区域和基于直方图等。尽管这些方法已在图像处理领域得到了广泛应用,但在实际应用中,由于分割精度和效率的局限,往往难以满足更高的需求。此外,仅依赖单一的传统分割算法难以获得预期的分割效果,限制了其在复杂场景中的应用潜力。 随着深度学习技术,尤其是卷积神经网络(CNN)在语义分割领域的广泛应用,极大推动了语义分割技术的发展。深度图像语义分割模型的出现显著提高了语义分割的性能和准确度,使得这些技术在自动驾驶、医学影像、虚拟现实、增强现实等多个领域发挥重要作用,并展示了广阔的市场应用潜力。代表性的深度图像语义分割模型包括 FCN、U-Net、FPN、SegNet、DeepLab 系列等。
不去幼儿园
2024/12/03
1650
【RL Application】语义分割中的强化学习方法
论文趣读:人工智能里程碑?回顾2015年登上Nature的DQN(全文翻译+批注)
文章:Mnih V , Kavukcuoglu K , Silver D , et al. Playing Atari with Deep Reinforcement Learning[J]. Computer Science, 2013. DeepMind链接:(https://deepmind.com/research/publications/playing-atari-deep-reinforcement-learning)
Piper蛋窝
2020/11/19
1.7K0
论文趣读:人工智能里程碑?回顾2015年登上Nature的DQN(全文翻译+批注)
[量化]夏普比率3.27,通过DQN算法进行上证指数择时强化学习策略
本文完整展示了一个将强化学习用于股票投资的案例,呈现了大量算法细节和实验分析,非常值得收藏深研。
核桃量化
2023/01/18
1.7K0
强化学习在美团“猜你喜欢”的实践
强化学习是目前机器学习领域发展最快的方向之一,其与推荐系统和排序模型的结合也有更多价值等待发掘。本文介绍了强化学习在美团“猜你喜欢”排序场景落地的工作。
美团技术团队
2019/01/07
5870
推荐阅读
相关推荐
AI调参新纪元,腾讯数据库论文被SIGMOD收录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文