通过数据库自治服务DAS,可以帮助企业节省90%的数据库管理成本,降低80%的运维风险,让您可以更集中在业务创新,让业务持续行驶在快车道上。本文以双11期间的实际案例介绍DAS已拥有6大核心自治特性:7x24实时异常检测、故障自愈、自动优化、智能调参、自动弹性、智能压测。

7x24实时异常检测

DAS的7x24实时异常检测通过机器学习算法,实时对数据库的Workload进行异常检测,相比传统基于阈值的告警方式,能够更及时的发现数据库的异常,而不是靠故障驱动。您可以采集各种数据,比如从链路上采集数百个数据库性能指标和从链路上采集已加载SQL语句的查询日志,海量数据的离在线处理与存储,基于机器学习和数据库领域预测算法,实现各业务数据库实例的持续模型训练,实时模型预测和实时异常检测分析能够顺利运行。相比传统基于规则和基于阈值的方式,实时异常检测具备以下优势:
  • 检测范围更广,例如不仅限监控指标, 还包括SQL、日志、锁等。
  • 实现准实时的检测,大大超前传统方式发现异常。
  • 基于AI和异常驱动的检测技术,而非故障驱动的检测。
  • 具备周期性识别能力,自适应业务特征,拥有提前预测能力。
7*24

现实中常见的workload场景,如毛刺特征、周期性特征、趋势性特征、均值偏移特征等, 异常检测服务都能够准确自动识别,并支持多种时序特征叠加识别,识别出异常后, 会触发基于根因的全局诊断分析,以及后续的异常恢复、优化自治场景。

222

故障自愈

通过7x24实时异常检测, 数据库实例异常完成实时检测发现,DAS自动进行根因分析,自动执行相关止损或修复操作,帮助数据库自动恢复,减少对企业业务的影响。如下图为双11期间自动SQL限流的实际案例:

224

某自治服务接入实例于2020年11月5日12点31分,活跃会话数和CPU开始骤然飙升,DAS异常检测中心于12点33分确定此次飙升为一次数据库异常而非抖动尖刺,触发SQL自动限流根因诊断,12点34分诊断完成,共发现两条导致该次异常的问题SQL,发现问题SQL后随即发起自动限流,活跃会话数开始降低,存量已提交问题SQL执行结束后,活跃会话数开始急速恢复,CPU使用率同时也恢复到正常。整个过程满足“1-5-10”异常自愈能力, 即1分钟发现,5分钟定位,10分钟恢复。

外置式SQL自动优化

数据库自治服务(DAS) 基于全局workload和真实的业务场景,持续对数据库进行SQL Review和优化。按照经验,约80%的数据库性问题可通过SQL优化手段解决,但SQL优化一直以来都是一个非常复杂的过程,需要多方面的数据库领域专家知识和经验,另外,由于SQL工作负载不断变化,SQL优化还是一项非常耗时繁重的任务,这些都决定了SQL优化是一项高门槛,高投入且非常专业的工作。数据库自治服务(DAS)基于全局workload和真实的业务场景,持续对数据库进行SQL Review和优化,就像有一个不知疲倦的专业DBA一直在守护着您的数据库,将SQL优化推向了更高的境界。同时,DAS的SQL诊断能力有与传统不同的技术特征,如:
  • 它采用外置式的,基于代价模型方式,实现索引、语句改写推荐,以及性能瓶颈问题识别和推荐,避免传统规则式的,过于机械化,推荐质量无法保证,无法量化性能提升收益等问题。
  • DAS给在这些方面提供了足够覆盖度的场景:测试用例的正式特征库、在线用例的自动反馈提取、阿里巴巴多样化的应用场景。
  • 基于全局的Workload优化,基于Workload特征,例如SQL执行频率,读写比等进行优化,最大限度地消除局部优化的片面性弊端。
225
下面是双11期间自动SQL优化一个实际案例:某自治服务接入实例, DAS于11月7日通过负载异常检测到因慢SQL引起的负载异常,自动触发SQL优化闭环,SQL语句优化上线后,经过持续24小时优化效果跟踪完成优化收益评估,优化效果显著,如优化之前后的平均RT及扫描行数如下图所示,据统计,在优化之前,被优化SQL的平均扫描行数为148889.198,平均RT为505.561毫秒。而优化之后,平均扫描行数为12.132,大约降为优化前的万分之一,而平均RT降至0.471毫秒,也大约降低到优化前的千分之一。
  • 自动SQL优化前平均RT及扫描行数:s
  • 自动SQL优化后平均RT及扫描行数:;

自动弹性

云上数据库提供基于计算规格的选项以及存储容量供用户选择,当用户业务Workload规模变化时可适当进行弹性扩缩容,但对于云原生应用而言,数据库能够根据业务Workload的变化自动决定最合适的规格,使用最小的资源完成业务所需的数据库容量。DAS基于AI的时序列预测,能够自动对数据库的业务模型、容量水位进行计算和预测,实现及时按需(或先知先觉式)自动扩缩容。

DAS的自动弹性实现了一套完整的数据闭环,包含性能采集、决策中心、算法模型、规格建议模块、管控执行以及任务跟踪评估等。
  • 性能采集负责对实例进行实时性能数据采集,涉及数据库的多项性能指标信息、规格配置信息、实例运行会话信息等。
  • 决策中心模块则会根据当前性能数据、实例会话列表数据等信息进行全局判断,以基于根因的全局自治,例如可通过SQL限流来解决当前计算资源不足的问题则会采取限流处理。若确实为突增的业务流量,则会继续进行弹性服务流程。
  • 算法模型是整个DAS 自动弹性服务的核心,负责对数据库实例的业务负载异常检测和容量规格模型推荐进行计算,解决核心的扩容时机、扩容方式、计算规格选择问题。
  • 规格推荐和验证模块生成具体的推荐规范,并检查推荐的规范是否适合数据库实例的部署类型和实际运行环境。该模块还会重复检查推荐的规范是否可以在当前区域购买,这确保了推荐的规范可以在管理端顺利使用。
  • 管控执行负责按照产出的规格建议进行分发执行。
  • 状态跟踪最后用于衡量和跟踪规格变更前后数据库实例上的性能变化情况。
下图是双11期间自动SQL优化一个实际案例,某自治服务接入实例,用户的业务流量不断上升,PolarDB实例的CPU使用率不断飙高并达到了高负载状态,此时DAS的Autoscaling算法精确的识别出了实例当前的异常状态,于是自动为实例增加了两个只读节点,实例的CPU使用率成功降到了较低的水位;在维持该状态两个小时后,用户实例的流量依然在不断上升,并第二次触发DAS的Autoscaling,DAS Autoscaling将实例的规格从4核8GB升级到8核16GB,并平稳持续了10多个小时,帮助用户顺利度过了业务高峰期。s

智能压测

DAS提供的智能压测服务能够帮助您在上云或在业务大促前评估所需的数据库规格容量。规格自动扩容AutoScale能力能够帮助您在根据配置的数据库性能阈值,或根据DAS内置智能化策略自动触发扩缩容动作,从而一定程度上解决了做规格评估和管理的负担。

传统的压测方案大部分基于现有的压测工具,如sysbench、TPCC等,其最大的问题是这些压测工具对应的SQL与真实业务差距太大,压测结果无法准确反映出真实业务的性能和稳定性。DAS提供的智能压测服务是基于用户真实业务的workload,因此压测结果可以直接体现在不同压力下的性能和稳定性变化。达到该目标,智能压测需要解决如下挑战:
  • 在不能采集大量SQL的情况,如何提供长时间压测,如7x24小时稳定性压测。因为SQL采集需要时间和存储成本,在给定部分SQL的情况,DAS需要生成满足业务要求的SQL。
  • 并发回放能力:DAS需要保证和真实业务一致的并发,并能够提供倍速(如2倍速、10倍速等)和峰值压测功能。
s

DAS通过自动学习业务模型,自动生成符合压测时间的真实业务Workload,同时提供给用户更丰富的压测场景,帮助用户解决大促、数据库选型等问题。

智能调参

数据库的参数成百上千,业务场景多种多样,靠人肉的方式很难将参数调整为最优的配置,通过基于机器学习技术,和智能压测相结合,可以为每个数据库实例将自动推荐最优的参数模版。云上常用数据库如MySQL、PolarDB配置参数多达几百个,同时每个参数的范围从几十到几万,甚至几十万不等。配置参数的过程相当于从巨大的多维空间中搜索出满足目标(如提升TPS,或降低latency)的参数值。DBA通常是通过经验,或者直接使用默认参数值设定配置。然而,不同workload,不同硬件对应的参数都会发生变化,就算有经验的DBA也无法保证对参数配置的有效性,云上大量的中小企业甚至没有专门的运维人员,对于最优参数基本无法设定和调整。因此,数据库参数设置存在如下挑战:
  • 参数组合空间巨大,全部遍历为NP-hard。
  • 调参依赖经验,无法保证参数的有效性。
  • 云上Workload存在多样性,不同Workload的参数不同。
  • 硬件(规格)异构,不同硬件规格下,对应的参数不同。
dS

DAS通过高效的机器学习手段,将调参看做黑盒优化问题,进行迭代学习,对于不同Workload的TPS提升有15%-55%,整个过程能在3-5个小时约100个迭代步内完成。基于阿里巴巴集团内部丰富的Workload和硬件基础设施,离线学习出不同种类workload和硬件规格的特征和参数,再通过偏序关系的匹配和Meta Learning,在线拟合出适配给定目标workload的模型,通过少量迭代便可以快速学习出目标workload的参数值,可以在缩短到1个小时以内约10-30步以内找出理想的参数。