暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Gaussdb的可观测性进步很快

白鳝的洞穴 2024-01-18
380

数据库的可观测性能力决定了数据库的运维便捷性,目前很多国产数据库厂商不大重视可观测性能力的建设,要么可观测性指标种类不全,数量不多,要么数据不够准确。

细想下来这也是很正常的事情,一方面数据库研发千头万绪,研发人力资源总是不足的。核心功能研发占据了绝大多数研发资源,在可观测性能力方面的设计与研发的优先级就会降低。第二方面,也是特别重要的一方面,那就是如果没有用户的反馈,没有真正在实战环境中磨合,研发人员也不知道数据库需要对外提供哪些可观测性接口。第三方面,提供可观测性能力需要在数据库内核做大量的埋点和统计,如果代码质量不高会引起数据库性能和稳定性下降,很多数据库产品不敢做得太多。

最近在做D-SMART GaussDB版的开发工作,因此对GaussDB的指标体系做了一次重新梳理,分析了一下2.x版本分布式数据库的可观测性接口,发现目前GaussDB提供的接口比以前要丰富得多,而且也更加规范,分类也做得相当不错。在dbe_perf schema下提供的视图中,GaussDB对可观测性接口做了十分友好的分类。

从上图中我们可以 看到监控视图根据操作系统、实例、内存、文件、对象、负载、会话、事务、查询、CACHE/IO、锁、等待事件、配置、操作、RTO&RPO等做了十分严格的分类。这种精细的设计,在数据库产品中是不多见的。从另外一个方面也说明GaussDB的可观测性能力十分丰富,否则也很难梳理出那么多维度来。

更加友好的是GaussDB提供了global*的全局视图和local*的本地视图。只要登录到某个CN节点上就可以对整个分布式数据库的各个节点和组件进行分析了。大家都知道分布式数据库的组件十分复杂,故障的诊断与分析如果能够在一个全局节点上完成,会省时省力不少。

这个global_os_runtime视图的内容已经与Oracle数据库的OS runtime视图内容十分接近了,对于以OS资源的开销来分析数据库的问题有很大帮助。

仅仅从Session方面的视图我们就可以看到其接口数据十分丰富。涵盖了Oracle AWR/ASH/ADDM等分析工具所需要的各种类型的指标。LOCAL_ACTIVE_SESSION/GLOBAL_ACTIVE_SESSION是一组类似于Oracle ASH的视图,可以显示内存中ASP(Active Session Profile)的数据,当数据库出现某些故障时,可以从会话级进行等待事件、阻塞链等方面的分析。

在pg_catalog schema下,GaussDB提供了一些传统的可观测性接口,甚至提供了一些与Oracle数据库兼容的 v$*视图。

比如从v$system_event视图中,我们可以分析等待事件的总体情况,从而通过等待事件的变化来分析系统中可能存在的问题。

GaussDB可观测性能力提升最直接的就反映在WDR报告的提升上。以前我针对openGauss的WDR报告做过分析,发现其内容对运维诊断分析来说,用处不是很大。从新版本的WDR报告上看,这方面也是有不小的进步的,GaussDB的 WDR已经可以用于一些问题分析了。

WDR报告分为集群、CN、DN三种,集群报告注重于集群健康、负载方面的数据。CN的报告注重于SQL和负载方面的问题,而DN则注重于事务、锁和IO等方面。

最令人高兴的是在Time Model和Wait Events方面,GaussDB都有了较大的进步。其指标体系更加准确,也能够给运维人员更好的参考性。

通过Time Model,我们可以从CN/DN上看到哪些地方是最耗时的,通过对正常状态的数据和异常状态的数据进行比较,可以让人很快地定位到哪些地方出了问题。Time Model中的这些数据在dbe_perf.global_instance_time视图中可以直接获取到,为用户构建这方面的分析工具提供了方便。


Time Model的准确性对于数据库运维中的异常发现和故障、性能问题分析都十分关键。通过对Time Model的标注、分类等,可以快速定位当前数据库系统的问题点在哪,从而收敛故障分析路径,加快分析进程。如果Time Model比较准确,那么可以作为一次分析的起点,对比正常状态的Time Model,可以十分快速地从故障场景中找出问题。

GaussDB提供了一个基础运维监控工具TPOPS,这个工具是利用GaussDB的可观测性能力开发的,可以 用于数据库的基础运维和监控。不过这个工具提供的运维操作还比较简单,复杂一些的工作还是离不开在客户端或者Data Studio里通过命令来操作。其监控维度方面的指标设计也还存在一些不合理的地方,还没有充分利用GaussDB的可观测性能力。

下一步我们将参考以往在Oracle、Oceanbase、openGauss等数据库运维方面的经验,利用GaussDB的 可观测性能力构建D-SMART高斯版的运维知识工具,把如此丰富的数据充分利用起来。团队的同学们第一次看到国产数据库拥有如此丰富的可观测性数据,也是十分兴奋。

目前对接工作正顺利进行中,初步计划春节后会发布第一个版本,到时候我们也会在DBAIOPS社区首先发行免费版供广大GaussDB用户使用。与大家共同构建一个GaussDB运维知识共享的协作生态。

文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论