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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序公共组件封装使用

1.在components目录下创建公共组件,以navbar为例 2.完成组件功能 3.调用,如果很多地方都会用到,建议放全局,如果不是则放在需要引用的文件中 3.1全局引用,在app.json做全局引用配置 3.2局部引用,在需要引入…

springcloud第4季 springcloud-alibaba之nacos篇

一 nacos 1.1 nacos作用介绍 nacos是一个分布式的配置中心和注册发现中心。 nacos是 dynamic naming configuration service nacosconfigbus 实现动态刷新;nacosconsul 1.2 各个注册中心对比 注册中心CAP模型控制台管理社区活跃度EureakaAp支持低zkcp不支持中…

初学python记录:力扣2923. 找到冠军 I

题目&#xff1a; 一场比赛中共有 n 支队伍&#xff0c;按从 0 到 n - 1 编号。 给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0 < i, j < n - 1 且 i ! j 的所有 i, j &#xff1a;如果 grid[i][j] 1&#xff0c;那么 i 队比 j 队 强 &…

什么是队头阻塞以及如何解决

前言 通常我们提到队头阻塞&#xff0c;指的可能是TCP协议中的队头阻塞&#xff0c;但是HTTP1.1中也有一个类似TCP队头阻塞的问题&#xff0c;下面各自介绍一下。 TCP队头阻塞 队头阻塞&#xff08;head-of-line blocking&#xff09;发生在一个TCP分节丢失&#xff0c;导致…

Springboot+Vue项目-基于Java+MySQL的校园管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

裸机开发之汇编、寄存器

一、什么是汇编&#xff1f;为什么学汇编&#xff1f; 在之前写控制代码的时候就在想&#xff1a;底层是怎么控制的&#xff1f;后来经过学习知道之前所编写的代码都是应用层代码&#xff0c;顾名思义就是在系统写好的底层之上调用系统函数。原以为底层是指写系统写好的底层函数…

VRRP(虚拟路由冗余协议)详解

VRRP-------虚拟路由冗余协议 在一个网络中&#xff0c;要做为一个合格的网络首先就要具备几种冗余&#xff0c;增加网络的可靠性。 这几种冗余分别为&#xff1a;线路冗余&#xff0c;设备冗余&#xff0c;网关冗余&#xff0c;UPS冗余 VRRP该协议就是解决网关冗余的。在二层…

面经:MapReduce编程模型与优化策略详解

作为一名专注于大数据处理与分布式计算的博主&#xff0c;我深知MapReduce作为一款经典的分布式计算框架&#xff0c;在海量数据处理领域所起的关键作用。本篇博客将结合我个人的面试经历&#xff0c;深入剖析MapReduce编程模型与优化策略&#xff0c;分享面试必备知识点&#…

Vue 移动端(H5)项目怎么实现页面缓存(即列表页面进入详情返回后列表页面缓存且还原页面滚动条位置)keep-alive缓存及清除keep-alive缓存

一、需求 产品要求&#xff1a;Vue移动端项目进入列表页&#xff0c;列表页需要刷新&#xff0c;而从详情页返回列表页&#xff0c;列表页则需要缓存并且还原页面滚动条位置 二、实现思路 1、使用Vue中的keep-alive组件&#xff0c;keep-alive提供了路由缓存功能 2、因为我项…

自然语言处理NLP:文本预处理Text Pre-Processing

大家好&#xff0c;自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向&#xff0c;其研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。本文将介绍文本预处理的本质、原理、应用等内容&#xff0c;助力自然语言处理和模型的生成使用。 1.文本…

MMU映射

MMU功能&#xff1a; 将虚拟地址转换物理地址 提供页属性&#xff0c;地址保护

K8S之Controller

我们在回顾下pod的启动流程&#xff1a; 用户通过kubectl&#xff0c;向api-server 发起请求api-server接受请求&#xff0c;并将数据写入etcdkube-scheduler通过watch检测到未绑定node 的pod&#xff0c;调度pod到某一node上&#xff0c;并通知给api-server&#xff0c;api-se…

Linux高级IO——多路转接之epoll

本章代码Gitee地址&#xff1a;EpollServer 文章目录 1. epoll接口1.1 epoll_create1.2 epoll_wait1.3 epoll_ctl 2. epoll原理3. epoll_server4. epoll两种工作模式 1. epoll接口 1.1 epoll_create #include <sys/epoll.h> int epoll_create(int size);参数int size理…

微信小程序 uniapp+vue城市公交线路查询系统dtjl3

小程序Android端运行软件 微信开发者工具/hbuiderx uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 前端&#xff1a;HTML5,CSS3 VUE 后端&#xff1a;java(springbootssm)/python(flaskdja…

2011年认证杯SPSSPRO杯数学建模B题(第一阶段)生物多样性的评估全过程文档及程序

2011年认证杯SPSSPRO杯数学建模 B题 生物多样性的评估 原题再现&#xff1a; 2010 年是联合国大会确定的国际生物多样性年。保护地球上的生物多样性已经越来越被人类社会所关注&#xff0c;相关的大规模科研和考察计划也层出不穷。为了更好地建立国际交流与专家间的合作&…

文献学习-32-新生儿皮质表面重建的条件时间注意网络

Conditional Temporal Attention Networks for Neonatal Cortical Surface Reconstruction Authors: Qiang Ma, Liu Li, Vanessa Kyriakopoulou, Joseph V. Hajnal, Emma C. Robinson, Bernhard Kainz, and Daniel Rueckert Source: MICCAI 2023 Abstract 皮层表面重建在模拟…

数学杂谈之四:学习数学的方法

数学杂谈之四&#xff1a;学习数学的方法 数学杂谈之一&#xff1a;数学的形态 https://blog.csdn.net/cnds123/article/details/137437208 数学杂谈之二&#xff1a;数学中的概念和理解 https://blog.csdn.net/cnds123/article/details/137500537 数学杂谈之三&#xff1a;…

UTONMOS元宇宙游戏特点

在元宇宙的世界里&#xff0c;游戏不再只是一种娱乐方式&#xff0c;而是一种全新的生活体验。UTONMOS元宇宙游戏带你穿越虚拟与现实的边界&#xff0c;开启一段前所未有的冒险之旅。 在这个充满无限可能的UTONMOS元宇宙游戏中&#xff0c;你将成为自己游戏世界的主角。可以自…

如何恢复未保存或删除/丢失的Word文件?

关闭 Word 应用程序而不保存文档&#xff1f;误删Word文档&#xff1f;许多用户会在不同的情况下丢失Word文档。如果不幸遇到此类问题&#xff0c;如何恢复已删除或未保存的 Word 文档&#xff1f;有一些方法可以恢复未保存/删除的文档。此外&#xff0c;您还可以使用Word文件恢…

程序员如何搞副业?——程序员的副业建议

目录 前言 一、个人项目开发 二、在线教育和培训 三、技术博客和内容创作 总结 前言 程序员不仅拥有将抽象概念转化为实际应用的能力&#xff0c;还通常具备强大的逻辑思维和问题解决能力。然而&#xff0c;许多程序员并不满足于仅仅在一家公司工作&#xff0c;他们渴望通…