关于数据库:重磅-数据库自治服务DAS论文入选全球顶会SIGMOD领航数据库自动驾驶新时代

39次阅读

共计 8927 个字符,预计需要花费 23 分钟才能阅读完成。

简介:近日,智能数据库和 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…),次要针对 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) 模型的办法。

• 基于搜寻的启发式办法:该类办法通常基于启发式思路,通过给定的规定算法进行搜寻来找出优化参数,这一工作的代表是 BestConfig[3]零碎。这类办法依赖于对 workload 以及参数对性能影响的先验假如,但在理论中特地是云场景,往往很难为每个 workload 进行非凡优化和特色工程。这类办法在搜寻一组新参数的时候,没有思考到之前采样到数据的散布,因而效率不高。

• 基于贝叶斯优化的办法:该类办法的代表是 iTuned[4]和 CMU 的 Andy Pavlo 实验室的 SIGMOD17 工作 OtterTune[5]。贝叶斯优化将调参看作是一个黑盒优化问题,通过代理函数模仿参数和指标间的函数,并设计采集函数来最小化采样步数。这类办法没有思考以优化资源为指标的调参,只思考了优化峰值性能。在理论中,除了压测和大促的极其场景,通常用户对 TPS 是无感的,TPS 往往达不到峰值,因而仅思考性能作为指标还不够。OtterTune 零碎还提出了基于 Internel Metric(数据库状态表的指标)的 mapping 的计划来利用已有数据,这种 mapping 办法利用来自同一硬件类型的历史数据,没有充分利用云厂商丰盛的数据资源。另一方面,这种形式依赖于预测进去的 Internel Metric 的相似性计算,在数据点较少的状况下容易不精确。

• 基于强化学习的办法:这类办法是最近数据库调参的热门方向,次要包含 SIGMOD18 的工作 CDBTune[6]和 VLDB19 的 QTune[7]工作。通过将 Internal Metrics(state)到 Knobs(action)的关系形象成一个 policy neural network 和一个 value network 来反馈,将数据库调参问题转化成一个马尔科夫决策过程,一直地自我训练,学习出最优参数。一方面,这类工作没有思考优化资源。另一方面,更重要的是调参问题并不是一个带状态的马尔科夫决策过程,因为参数间接决定了数据库性能,不须要简单的状态空间,不同于强化学习须要通过解 bellman equation 来优化模型累计取得的 Reward。在这些工作中,往往须要上千步迭代找出好的参数,这难以满足咱们在生产环境中进行调参的要求。

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。

• ResTune Client 运行在用户 VPC 环境中,负责指标工作的预处理和举荐参数配置的执行,由 Meta-Data Processing 模块和 Target Workload Replay 模块组成。

• ResTune Server 运行在后端调参集群中,负责在每次训练迭代中举荐参数配置,包含 Knowledge Extraction 模块和 Knobs Recommendation 模块。

一次调参工作中的一个迭代步流程如下:当一个调参工作开始后,零碎首先对指标数据库进行拷贝,并收集一段时间内的指标工作负载到用户环境用于将来的回放。

在每一轮迭代中,指标工作首先通过 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 作为历史数据。

每个模块的具体性能如下:

• Meta-Data Processing: 在调参工作初始启动时,元数据处理模块剖析指标工作的工作负载,应用 TF-IDF 办法统计 SQL 保留字作为指标工作的特征向量 (meta-feature);在每轮迭代中,元数据处理模块以历史察看数据为输出,通过归一化解决后,对资源 (CPU, memory, IO 等) 利用率、TPS、Latency 拟合高斯模型,作为指标工作的基模型。

• Knowledge Extraction: 为了提取与利用历史常识,咱们提出了采纳高斯模型加权求和的集成形式,即元模型 M 的要害参数 u 由基模型加权计算失去。在计算基模型权重时采纳了动态与动静两种形式。在初始化时,权重的计算采取动态形式,以特征向量作为输出,通过预训练的随机森林,失去资源利用率的概率分布向量,最终以据概率分布向量之间的间隔作为工作相似性,决定动态权重。当数据量短缺后,ResTune 应用动静权重学习策略,比拟基学习器的预测与指标工作的实在察看后果之间的类似水平。应用动态分配策略,权重会随着对指标工作负载的察看次数的减少而更新。通过这两种策略,咱们最终失去元学习器,它能够作为经验丰富的代理模型。

• Knobs Recommendation: 参数举荐模块依据元模型举荐一组参数配置;采集函数咱们应用了带限度的 EI 函数 (Constrained EI, CEI),其依据限度状况重写了 EI 的效用函数:当参数不满足 SLA 限度时效用置 0,且以后最佳参数定义为满足 SLA 限度的最佳参数。CEI 采集函数可能更好的疏导摸索满足限度的最优区域。

• Target Workload Replay: 指标工作负载回放模块首先举荐参数利用在备份数据库上,并触发工作负载的回放,通过一段时间的运行验证后,验证后果(包含资源利用率、TPS、latency)与举荐参数将一起写入指标工作的察看历史。

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 性能作为优化指标。

8.2. 基于压测的智能调参性能 Cloudtune

以上基于模板参数性能验证了云上用户对智能调参性能的需要。事实上,除了特地业余的用户,大部分用户较难十分精确地把握其业务特色。因而,用户无奈选出最合适其 workload 特点的一组参数模板。

为了解决用户痛点,咱们在 DAS 上线了基于压测的智能调参性能。次要通过收集并回放用户实在 workload(在用户 VPC 环境进行保障安全性),来针对用户业务负载,定制化地训练出性能最优的参数配置。这个性能咱们叫做 Cloudtune 智能调参。

如前文 ResTune 的架构设计,咱们首先须要在用户 VPC 环境筹备一个用户数据库 RDS 指标实例,而后启动一个压测肉机进行用户环境实在 workload 的回放,并采集指标实例上的性能数据进行调参训练。DAS Master 用户买通线上 VPC 环境和后端网络环境。后端 DAS App 负责调参的主控逻辑,次要操作在用户 VPC 环境的回放压测,从而获取相应 Metric(资源使用率、TPS、Latency 等),而后通过调用 Cloudtune Microservice 来进行迭代训练,Cloudtune Service 通过算法模型给出下一个采样配置和目前为止找出的最好配置参数。

9. 将来工作

目前上线的调参性能是通过拉库回放的形式,对用户来说是一种离线的操作,且绝对繁琐。咱们正在为帮用户简化去这个过程进行在线动静调参。

在线动静调参技术的挑战和要求更高,首先,参数调节成果要求稳步晋升,不能让零碎运行时呈现性能剧烈的降落,不能影响线上实时的服务;其次,为了保障线上稳定性和调节过程疾速收敛,在线动静调参须要针对不同的 workload 主动抉择要害的相干参数进行调节;最初,目前的工作假如用户负载变动不频繁,一旦用户负载变动就须要从新进行调参。为了进步用户体验,要联合 workload 的检测反对自适应的调参服务。

10. 智能数据库其余钻研工作简介

智能数据库团队以数据库运维和内核智能化为次要方向,深度交融人工智能、机器学习和数据库专家教训,使数据库具备自治能力,实现自感知、自优化、自修复与自平安,保障服务的稳固、平安及高效。对外提供业内首个智能数据库管控平台 Database Autonomy Service (DAS)。

相干工作还包含异样 SQL 检测之海底捞针、一键智能压测与基于压缩感知的数据库生成、采样算法和 SQL workload 外置优化、图多模数据异样检测与根因诊断、索引举荐、冷热数据拆散、基于实例常识图谱的智能调度、NLP2SQL 人机交互接口、计算平台一体化、One-sided RDMA 内存池化零碎研发等。例如,DAS 团队在 VLDB2020 上发表的工作 Leaper[2]无效地进行数据预取和 Cache 淘汰,解决了 LSM-Tree 存储引擎架构的性能抖动,是学术界将机器学习模型集成到在 OLTP 数据库内核的重要尝试。

最近 DAS 基于统计与医疗数据分析中的生存剖析设计了全新的冷热数据分层算法,集成至 Polar X Engine 中,测试显示性能晋升 10%,存储老本降落 25%。同样在 VLDB2020 年发表的慢 SQL 诊断工作,DAS 解决了海量 SQL 申请中近 90% 的 CPU 密集型的异样问题。

参考文献

[1] Zhang, Xinyi, Hong Wu, Zhuo Chang, Shuowei Jin, Jian Tan, Feifei Li, Tieying Zhang, and Bin Cui. “ResTune: Resource Oriented Tuning Boosted by Meta-Learning for Cloud Databases.” In Proceedings of the 2021 International Conference on Management of Data, pp. 2102-2114. 2021.
[2] Yang, Lei, Hong Wu, Tieying Zhang, Xuntao Cheng, Feifei Li, Lei Zou, Yujie Wang, Rongyao Chen, Jianying Wang, and Gui Huang. “Leaper: a learned prefetcher for cache invalidation in LSM-tree based storage engines.” Proceedings of the VLDB Endowment 13, no. 12 (2020): 1976-1989.
[3] Y.Zhu,J.Liu,MengyingGuo,YungangBao,WenlongMa,ZhuoyueLiu,Kunpeng Song, and Yingchun Yang. 2017. BestConfig: tapping the performance potential of systems via automatic configuration tuning. Proceedings of the 2017 Symposium on Cloud Computing (2017).
[4] SongyunDuan,VamsidharThummala,andShivnathBabu.2009.TuningDatabase Configuration Parameters with ITuned. Proc. VLDB Endow. 2, 1 (Aug. 2009), 1246–1257.
[5] Dana Van Aken, Andrew Pavlo, Geoffrey J. Gordon, and Bohan Zhang. 2017. Automatic Database Management System Tuning Through Large-scale Machine Learning. In Acm International Conference on Management of Data. 1009–1024.
[6] Ji Zhang, Yu Liu, Ke Zhou, Guoliang Li, Zhili Xiao, Bin Cheng, Jiashu Xing,
Yangtao Wang, Tianheng Cheng, Li Liu, Minwei Ran, and Zekang Li. 2019. An End-to-End Automatic Cloud Database Tuning System Using Deep Reinforce- ment Learning. In Proceedings of the 2019 International Conference on Management of Data (Amsterdam, Netherlands) (SIGMOD’19). Association for Computing Ma- chinery, New York, NY, USA, 415–432.
[7] Guoliang Li, Xuanhe Zhou, Shifu Li, and Bo Gao. 2019. QTune. Proceedings of the Vldb Endowment (2019)
[8]Tan, J., Zhang, T., Li, F., Chen, J., Zheng, Q., Zhang, P., … & Zhang, R. (2019). ibtune: Individualized buffer tuning for large-scale cloud databases. Proceedings of the VLDB Endowment, 12(10), 1221-1234.

原文链接
本文为阿里云原创内容,未经容许不得转载。

正文完
 0