本文主要是介绍2024 DTC大会精彩演讲:DBdoctor,基于eBPF重新定义数据库可观测 (附PPT下载和演讲视频),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
由中国DBA联盟(ACDU)和墨天轮社区联合主办的第十三届数据技术嘉年华(DTC)于北京盛大召开。4月13日上午海信聚好看云平台负责人张纪宽受邀在『数据库生态软件』分论坛发表主题演讲《DBdoctor:利用eBPF技术实现数据库智能诊断与优化》。
以下是演讲主要内容,文末附演讲PPT和视频获取方式。
一. 演讲思路
首先从数据库行业调研数据为切入分析数据库痛点,紧接着重点介绍独有的技术创新,提出重新定义数据库可观测解决方案,进一步站在产品视角展示方案的应用场景,最后站在用户视角给出场景的落地案例。整个分享层层递进,逻辑鲜明,配合纪宽一贯幽默又激情的演讲风格,赢得场下阵阵掌声。
二. 分析数据库痛点
通过MySQL社区调研的数据库十大痛点,墨天轮调研的DBA和架构师工作耗时数据为切入,引出数据库性能问题作为第一大痛点且耗时最长。
进一步通过亲身体感介绍数据库性能的的挑战,例如:
- **平时很好,关键时候掉链子:**比如每到放假或大促时候就会出现问题,以前不慢的SQL,关键时候就慢了。
- **出现问题,定位时间长:**通过已有监控和日志无法很快定位问题根因,且定位过程中门槛高,强依赖经验。
- **故障后没有解决方案:**发生故障不能很快处理,无法满足SLA的要求。
这些挑战可能会引发更进一步的不良现象,比如:
- 平时不重视,出现问题再追责,为时已晚
- 整日忙于处理线上紧急问题,临时救火
- 出现故障后多个团队甚至同团队的推责扯皮
目前基于开源组件,比如Prometheus+grafana很快能搭建一套监控系统,大多数的公司也有监控平台,为什么还会出现以上痛点,演讲中给了进一步分析。
既然传统监控无法解决,所以提出了基于新的采集技术,配合数学量化模型来重新定义数据库的可观测,打破传统的基于经验、规则、阈值的方法,彻底解决数据库性能问题。
三. DBdoctor技术创新
1.重新定义数据采集代替传统采样
DBdoctor借助eBPF技术,可以在不修改数据库内核代码的前提下,拿到一条SQL语句执行过程中的关键资源消耗,包含CPU/内存/IO等资源指标,还包含数据库锁,SQL执行消耗等详细指标,这些内核细粒度指标是DBdoctor能重新定义数据库可观测性的关键。
2.精准数学模型代替传统经验
基于eBPF采集到的这些细粒度指标,经过进一步大数据聚合分析,把SQL的资源消耗映射为图形面积,做到了从经验到数学的第一步转换,紧接着通过三大数学模型做到更精准的诊断。
三大算法实现精准诊断:
- 1). 相关性算法:通过图形相关性的数学比对,重新排序问题根因SQL,进一步提升诊断精确性
- 2). 预测识别算法:通过AI预测未来半小时、1小时曲线,结合历史SQL,提前发现未来故障,并预估故障根因
- 3). 根因诊断算法:通过资源、流量、锁、Cost、matrix等全量数据作为模型输入,经过诊断模型和模型加权得出根因
3.问题自动推荐案例库
针对出现过的故障现场,会自动保存问题快照,进行多指标特征提取,提取模型与案例标签联动,后续再出现相同场景会进行自动案例推荐。在案例库中会给出问题解释,通过具体的场景进行分析问题,最后给出最佳实践。
4.一分钟内推荐索引,全局最优
传统索引推荐大多基于规则,只能匹配些简单场景,无法覆盖线上场景真实。基于eBPF技术可以拿到数据的详细时空分布,包含运行时的数据和存储中的数据,基于这些数据通过自研外置优化器,可实现无需真实执行便可精准评估SQL代价,进一步经过表维度全局最优处理,最终给出需要添加索引、修改索引,删除索引的建议。
5.涵盖性能的SQL审核
目前业界SQL审核均采用静态规则,SQL parse后命中已配置的规则进行简单的表结构、使用规范、安全等审核,没有真正的考虑性能,如果在上线前能评估开发人员的SQL语句进行性能评估,在开发阶段就能发现问题SQL,会大大提升线上稳定性。
DBdoctor基于上述1分钟内快速索引诊断能力,单独搭建了一条SQL性能审核链路,基于自研的外置Cost优化器,开发人员在coding阶段,就能评估引入的SQL语句,审核是否存在性能问题,如果存在问题同步给出优化建议。
6.DBdoctor功能架构
基于以上五大创新点,便组合起了DBdoctor核心架构。最下层是基于eBPF的细粒度采集;第二层是对细粒度数据进行大数据处理;第三层是核心重点功能包含:平台管理、主动发现问题、SQL根因分析、锁根因分析、优化建议、SQL审核、监控巡检;最上层是展示层,分为管理员、性能可观测平台、OpenAPI三个视角。
7.企业级解决方案
基于以上功能,DBdoctor提供了企业级全方位性能诊断解决方案,包含事前发现隐患,事中精准诊断,事后随时追溯。
8.DBdoctor核心价值
四. DBdoctor应用场景
DBdoctor基于eBPF技术重新定义数据采集,并通过数学量化模型重新定义数据库性能可观测,打破基于经验、规则、阈值的传统,实现了从基于经验到基于数学的转换,最终做到1分钟内精准定位问题SQL,在多个场景上有着独特的优势。
场景一:上线前发现SQL性能问题,提前规避故障
研发工程师在开发阶段引入的新的SQL语句,在发布上线前很难进行性能评估,发布后容易对线上业务产生影响。业界传统SQL审核工具或产品多基于静态规则,没有考虑到最关键的性能因素,因此上线前的性能评估亟待解决。
DBdoctor通过自研外置Cost优化器,创新性实现了覆盖性能诊断的SQL审核,能够基于线上数据模型,在发布上线前快速、精准评估SQL性能问题,并给出优化建议,提前规避线上故障的发生。
场景二:疑难问题快速定位和诊断
数据库性能诊断技术门槛高。对疑难性能问题的解决,强依赖DBA经验,甚至需要购买数据库专家服务。由于缺少有效的现场信息,经常会导致问题解决的时效性无法保证,甚至无法解决。传统数据库监控工具对疑难问题的定位能力甚微,例如高并发时的锁问题往往令专业DBA也感到头疼。
DBdoctor实时探测数据库内核,就像给数据库做CT,将疑难问题一网打尽,而且能保留问题快照便于回溯。例如,DBdoctor提供的锁透视功能,涵盖锁等待、死锁、长事务、未提交事务四大锁场景;通过环形图和泳道图的方式直观的慢动作回放问题现场,快速定位加锁过程,找到问题源头并给出详细的剖析过程,真正做到疑难问题快速定位与诊断。
场景三:主动发现问题并自动分析根因
传统数据库监控平台大多基于采样式监控结合阈值告警的方式发现问题,由于数据库出现问题时影响面较广,所以事出即紧急。从收到告警,到分析监控指标和日志,到定位问题根因,再到出具解决方案整个链路时间不可控。故障处理需要争分夺秒,很多互联网大厂通过故障恢复时间来定责,但靠定责依然解决不了定位的时效性问题。
DBdoctor拥有主动发现问题的能力,通过自研的主动识别算法实时对内核级指标进行计算,一旦发现问题会立即触发根因识别算法,快速产出根因诊断报告。报告会详细描述问题现象,直指问题源头并给出优化建议,解决了定位时效性问题,可以有效减少故障时间,确保SLA达成。
场景四:自动给出优化建议,降低问题解决门槛
出现性能问题时,需要快速给出解决方案。在DBA较少或者无DBA的企业中,通过开源组件自行搭建的传统监控平台,很难定位到问题根因和提供有效的优化建议。随着信创替换的深入,国产数据库引擎百花齐放,这一痛点也进一步加剧。
DBdoctor拥有自动匹配场景的专家经验库。出现问题时,用户可随时查看经验文档。文档中详细解释了每一事件,通过案例的方式描述问题场景,并给出最佳解决实践。
DBdoctor还自研外置Cost优化器,能够一分钟内推荐最优索引,哪怕是无DBA的企业也能快速使用DBdoctor优化性能问题。
五. DBdoctor用户案例
六. PPT&视频下载
关注『DBdoctor』公众号,回复ppt,立即获取,回复视频,在线观看回放!
七. DBdoctor推出长久免费版
在DTC大会众同仁的见证下,DBdoctor重磅推出长久免费版,如果您是个人用户或者想试用全部功能可随时联系小助手,免费获取专业版license!
在PC端打开体验更佳哦~
1️⃣ 下载地址:https://www.hisensecloud.com/h-col-126.html?statId=9
2️⃣ 在线试用:https://dbdoctor1.hisensecloud.com
(关注公众号,点击菜单栏【试用下载-在线试用】获取试用环境专属账号密码)
3️⃣ 如何部署:http://hisensecloud.com/h-col-133.html
这篇关于2024 DTC大会精彩演讲:DBdoctor,基于eBPF重新定义数据库可观测 (附PPT下载和演讲视频)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!