排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
用一个Gaussdb的例子探讨一下指标波动的关联性
用一个Gaussdb的例子探讨一下指标波动的关联性
白鳝的洞穴
2023-08-02
140
数据库系统是一个十分神奇的系统,我们以前习惯于监控某个指标是否出现了异常。不过单一指标的波动与异常往往很难定位故障或者问题。不同的应用系统中,指标之间的关联度会有很大的差异。如果在类似业务场景,类似的负载情况下,数据库的指标波动与相互影响还是具有一定的相似性的。这也是智能化运维的算法具有一定的普适性应用范围的理论基础。
我们探究指标后面的复杂关系是为了分析问题时能够尽快抓住要点,从而避开错误的路径分叉,直击问题的根源于本质。因此我们对数据库的指标体系理解的越为深刻,分析问题的能力也就越强。在二十多年的Oracle数据库运维工作中,我就是通过不断的理解指标与指标后面的复杂关联关系,再结合Oracle数据库内部原理与基础概念,去不断的提升自己的分析问题的能力的。
接下来我们来看一个例子,这个例子来自于一套负载比较高的Gaussdb数据库系统,这套数据库的配置比较豪华,有6个CN节点,12个DN节点,运行于华为云上,每个CN节点配置了16个CPU核心。Gaussdb的CN是采用负载均衡的模式接受来自应用的负载的,这套应用系统是十分典型的后台交易型业务,大部分业务负载来自于前端过来的流式交易数据。数据库是均匀分区在多个DN上的,应用负载也是较为均匀的分布在多个CN上的。
在一般情况下,这几个CN承载的业务与业务负载十分相近,也不存在特别差的SQL语句。我们选取相同的时间片切面,用“每秒返回行数”这个指标,看看在同一时间切片上,不同的CN节点中,与这个指标具有较为相似的波动特性的指标有哪些。
首先我们来看187节点的情况,有较强关联性的指标是每秒逻辑读、每秒获取行数、活跃会话数(低相似性)这几个指标。
再来看看224节点的情况,也十分类似,关联性最强的是每秒逻辑读和每秒获取行数。
235节点的情况又会如何呢?也差不多,不过每秒获取行数的指标波动更为相近一些。
从上面的数据可以看出,每秒逻辑读与每秒获取行数是关联性最强的两个指标。逻辑读是与返回行数与并发SQL执行量是十分强关联的指标,因此这个指标的波动特性与每秒返回行数的关联系很强,在大多数场景中都可能会出现。
而每秒获取行数指标看上去和每秒返回行数的血缘关系十分相近。不过实际上在不同的应用场景中,二者可能会有较大的差异。每秒获取行数是在扫描表或者访问表时读取的行的数量,而每秒返回行数是每秒返回到客户端的行的数量。这二者在不同的SQL中可能会有较大的差异。比如SELECT COUNT(*)可能统计了1万条数据,但是只返回了1条数据,这样访问数和返回数可能会相差万倍。再比如说我们通过索引找出了一万行数据,再根据SQL中的和索引无关的过滤条件从中筛选出1000条,那么二者会有10倍的差异。从这两个指标的波动关联性强弱可以看出数据库执行的SQL是否发生了变化,亦或是SQL访问的数据或者使用的参数是否发生了变化。一般来说探索这些问题需要很复杂的过程,而通过指标波动关联性的分析就可以比较简单,粗略的获得了。
下面我把时间窗口调整到0点系统做批处理报表的时间段,我们会发现指标波动的规律完全改变了。
白天的业务特点是大量的小型的查询语句并发执行,因此与之关联的指标数量较多,集中度较低。而晚上是少量的批处理作业在执行,因此指标波动的集中度很高,波动相似性也较强,每秒逻辑读与返回行数的关系十分相近。
虽然说某种业务下的某个指标的波动关联性会发生一些变化,不过有些东西是不会变的,那就是指标之间的波动关联性都是与数据库的基本原理有关的。一般情况下不会存在两个完全不相干的指标之间存在较强的波动关联性。
数据库系统中的指标波动特性是存在内在的必然联系的。比如说我们这个例子中的每秒返回行数指标,与每秒获取行数(获取是指从数据库中访问到了,但是并不一定返回客户端了)、每秒逻辑读、每秒物理读、长查询数量等,这些指标之间都是存在较大的关联关系的。活跃会话数虽然与这些指标直接不存在直接的关系,不过是能够标识出数据库的活跃程度的,与之存在稍微弱一点的波动关联性也是解释得过去的。
研究与分析指标之间的关系,有助于理解某个数据库产品的基本特性,有助于在分析问题时抓住隐藏在表面之下的问题。这些年我们对Oracle数据库的研究已经十分深入了,这方面的知识很丰富。不过不幸的是,目前的国产数据库厂家并没有对外公布任何这方面的知识,这对于我们今后运维国产数据库形成了一定的障碍。我想现在肯定有一些从事数据库服务的企业与个人已经开展了这方面的研究,我们也希望数据库厂商除了完善用户文档外,也发布一些这方面的知识,从而丰富国产数据库运维生态中的知识库。我们团队也会通过我的公众号,不断的向外公开一些我们的研究成果。
数据库
gaussdb
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨