简介:近日,智能数据库和DAS团队研发的智能调参ResTune系统论文被SIGMOD 2021录用,SIGMOD是数据库三大顶会之首,是三大顶会中唯一一个Double Blind Review的,其权威性毋庸置疑。
近日,智能数据库和DAS团队研发的智能调参ResTune系统论文被SIGMOD 2021录用,SIGMOD是数据库三大顶会之首,是三大顶会中唯一一个Double Blind Review的,其权威性毋庸置疑。?
ResTune论文的录用,说明了我们在智能化数据库管控方向的技术积累和深度,也是阿里云自治数据库和智能化运维里程碑式的一步。目前,智能调参功能已经在数据库自治服务(DAS)上落地,是业界第一个正式上线的数据库配置参数智能调参功能,进一步说明了阿里云自治数据库方向的技术领先性。
1.?概述
调参服务在阿里丰富的业务场景中有着广泛的应用,如数据库系统的性能与配置参数优化、机器学习模型/深度神经网络的超参选择、推荐系统和云调度系统中参数的自适应调节、工业控制和供应链中的仿真优化和参数优化等。如何在生产环境中支持客户实际需求,是学术界AI for system的一个研究热点。
今年,由达摩院-数据库与存储实验室-智能数据库团队研发的ResTune智能调参工作(ResTune: Resource Oriented Tuning Boosted by Meta-Learning for Cloud Databases,地址:
https://dl.acm.org/doi/pdf/10.1145/3448016.3457291__),主要针对OLTP数据库系统的性能参数进行调优,涉及RDS MySQL、RDS PostgreSQL、PolarDB MySQL、PolarDB-O等数据库系统,该工作发表在数据库领域的顶级会议SIGMOD2021(Research Track),并在阿里云数据库自治服务DAS产品中技术落地。?
2.?背景
数据库系统如MySQL提供200多个配置参数,不同的参数组合与不断变化的业务负载特征,共同决定着数据库系统的性能和资源使用。针对集团内的业务,通常DBA会根据不同的业务,按人工经验手动选择一组适合的参数。随着数据库上云的加速,业务越来越多样化,仅仅依赖于DBA人工调参遇到水平扩展的瓶颈制约。同时,由于DBA经验的差异性,很难对多种多样的业务负载都找出最优参数。云厂商要做到“客户第一”,自动化的调参功能至关重要:在不同的实例环境下对时间上不断变化的多样业务负载,自适应的提供个性化的优化参数。
数据库系统调参需要同时考虑性能(如Transactions per second/TPS、Latency)和资源使用(CPU、Memory、IO)的情况。性能优化固然重要,但真实负载的TPS往往受用户的request rate所限,很难达到峰值性能。图1是两个参数下不同取值的TPS和CPU利用率,可以看到,在TPS最高的红色区域对应的CPU利用率变化较大,从15%到75%。而在TPS相同的情况下,资源利用率有很大优化空间。从成本角度,TCO(Total Cost of Ownership)是云数据库的重要指标,也是云数据库的主要优势。
优化资源使用对减少云数据库的TCO,提高成本优势有着重要意义。事实上,我们发现云上大多数实例都存在Over-Provision的情况。此外,资源使用过高可能会造成云数据库的异常和资源争抢带来的性能下降;优化数据库的资源使用能够有效减少甚至避免此类情况引发的故障,提高稳定性。
3.?挑战
我们分析了调参的目标是同时考虑优化资源使用率和性能,上文也提到性能如TPS往往会被客户端的request rate所限而达不到峰值性能。因此,我们需要找出资源利用率最小的数据库配置参数,并且满足SLA的要求。
另一方面,调参本身需要尽可能快(不然违背了降低资源使用),通常的调参系统需要上百步迭代来找出好的配置,每一步迭代约3-5分钟回放workload,这样通常需要天级别的时间进行调参训练。但如果想解决在线troubleshoot的需求,往往需要在1个小时内找出问题,进行恢复。作为云厂商,我们基于已有业务负载调参的历史数据,采用知识迁移学习,可有效加速调参过程,从而尽可能快地找出好的数据库参数配置。
4.?相关工作
数据库调参是最近研究相对热门的领域,在过去几年中有不少工作发表。这些工作按照技术思路主要可以分为三大类:基于搜索的启发式方法、基于贝叶斯优化的方法、基于强化学习(Reinforcement Learning)模型的方法。
5.?问题定义和算法概述
我们将问题定义成带限制的优化问题如下,其中限制条件常数可通过设定为默认配置参数下的TPS和Latency值。
ResTune将最优化资源使用并满足SLA转化成带限制的优化?(Constrained Bayesian Optimization)?问题。相比于传统的贝叶斯优化算法,这里采用了带限制的 EI 函数?(Constrained EI, CEI),我们将限制信息加入了常用的 EI 效用函数(Acqusition Function)。详见论文的第五章内容。
另一方面,为了更好地利用已有数据,ResTune还设计了静态权重和动态权重相结合的高斯加权模型。通过ensemble历史的高斯过程模型,加权平均出目标workload的surrogate函数。这里最核心的问题是如何定义权重。
在冷启动时(没有观察数据时),静态权重学习会根据任务工作负载的 meta-feature 距离分配权重。meta-feature 的计算需要通过工作负载的分析,得到工作负载特征向量。
当积累了一定数据(如10条数据)后,ResTune使用动态权重学习策略,通过偏序关系(如下图所示,尽管TPS绝对值不同,但是曲面趋势相同,因此偏序关系也类似),比较历史学习器的预测与目标任务的真实观察结果之间的相似程度。使用动态分配策略,权重会随着对目标工作负载的观察次数的增加而动态更新。通过这两种策略,ResTune最终得到了一个元学习器(Meta-Learner),它可以作为经验丰富的代理模型,更多的细节可以参考论文的第六章内容。
6.?ResTune系统设计
ResTune将调参问题抽象成带限制的优化问题,即最小化资源使用率,同时满足SLA的限制。下图给出了ResTune的系统架构设计。ResTune 系统包括两个主要部分:ResTune Client 和 ResTune Server。?
一次调参任务中的一个迭代步流程如下:当一个调参任务开始后,系统首先对目标数据库进行拷贝,并收集一段时间内的目标工作负载到用户环境用于未来的回放。
在每一轮迭代中,目标任务首先通过 Meta-Data Processing 模块得到 meta-feature 与 base model,作为 Knowledge Extraction 模块的输入;Knowledge Extraction 模块负责计算当前任务与历史任务 base model 集成时的静态与动态权重,并对 base models 进行加权求和得到 meta model;在 Knobs Recommendation 模块根据 Meta Learner 推荐一组参数配置;Target Workload Replay 模块对推荐参数进行验证,并将结果写入目标任务的历史观察数据。
以上训练过程重复若干迭代步,当达到最大训练步或提升效果收敛时终止。目标任务训练结束后,ResTune会当前任务的 meta-feature 与观察数据收集到 Data Repository 作为历史数据。
每个模块的具体功能如下:
7.?实验评测
我们在多个场景下对比了 ResTune 和其它 SOTA (state-of-the-art)系统的性能与速度。
7.1.?单任务场景
首先,在单任务场景下,我们选定CPU利用率作为优化目标,验证了 ResTune 解决带 SLA 限制的优化问题的效果。这里我们测试了Sysbench、Twitter、TPC-C和两个真实的workload:Hotel Booking和Sales。可以看出,ResTune方法在所有负载上都可以得到最佳效果与最佳效率。
7.2.?迁移场景
由于云数据库上存在大量用户各种实例,因此我们提出的方法能否在不同工作负载、不同硬件之间迁移至关重要。同样以CPU利用率作为优化目标,我们测试了不同机器硬件之间的迁移效果,可以看到我们提出的元学习算法带来了显著的训练速度提升和训练效果提升。使得整个ResTune的调参过程能在30-50步左右完成,而非迁移场景通常需要几百个迭代步。
类似的,在不同工作负载之间的迁移实验中,我们的元学习方法也带来了显著的训练速度提升。
7.3.?Memory和I/O资源优化
除CPU资源外,我们测试了内存资源、IO资源的调参优化效果。下图可以看出,对于IO资源优化调参任务,ResTune 降低了 84%?- 90% IOPS;对于内存资源优化调参任务,ResTune 将内存利用从 22.5G 下降至 16.34G。我们在论文中还估算了TCO的成本减少。
8.?DAS业务落地
智能调参技术在DAS(Database Autonomy Service)产品上进行了落地。我们分为不同阶段和细化功能进行上线。主要包括模板功能和基于压测的智能调参功能。阿里云是业界第一个上线调参功能的厂商,领先于腾讯和华为。
8.1.?模板参数功能
模板参数功能是我们一期上线的调参场景。在此之前,云上RDS MySQL数据库仅有一套统一的参数模板,这很难满足云上各不相同的用户业务负载。因此,我们选取了不同种类的benchmark,在用户使用最频繁的RDS Instance类型上调参的离线训练。
我们将用户负载分为典型的6种场景如交易、社交网络、压测等,通过离线训练我们给每一种典型场景训练出了最优配置,并提供给用户根据其业务特征进行选择。这样我们将之前的RDS的统一一套参数模板扩展到了多种典型的OLTP业务场景。
下表列出了我们离线调参训练的结果,在不同workload上有13%-50%的提升。这里我们以TPS性能作为优化目标。
Workload名称 | RDS默认配置下的TPS | 调参后的TPS | 提升百分比 |
TPCC(订单处理) | 620 | 940 | <span>↑52%</span> |
Smallbank(银行业务处理) | 17464 | 22109 | <span>↑26.6%</span> |
Sysbench(压力测试) | 7950 | 10017 | <span>↑26%</span> |
Twitter(社交网络) | 41031 | 48946 | <span>↑19.2%</span> |
TATP(通信) | 18155 | 21773 | <span>↑19%</span> |
YCSB(压力测试) | 41553 | 55696 | <span>↑34%</span> |
Wikipedia(知识百科) | 600 | 678 | <span>↑13%</span> |
注释1:上图整个大背景是这个网页的全部尺寸,中间的小框才是浏览器中的可见尺寸...
先点赞再看,养成好习惯 前言 这两天在另一个社区看到了一个关于 Tomcat 的提问...
简介: 企业上云多账号架构中,如何做到从上到下管理的同时,处理好员工的权限边...
Redis 官方在 2020 年 5 月正式推出 6.0 版本,提供很多振奋人心的新特性,所以...
复制代码 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional...
1.HTML5的内容类型 内容类型 描述 内嵌 向文档中添加其他类型的内容,例如audio...
data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据,可以...
content属性一般用于::before、::after伪元素中,用于呈现伪元素的内容。平时con...
John Au-Yeung 来源:medium 译者:前端小智 有梦想,有干货,微信搜索 【大迁世...
解决方法如下: 第一种 使用iframe,但是目前使用iframe的人已经越来越少了,而...