排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
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 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
简单体验一下PolarDB新版本的等待事件监控功能增强
简单体验一下PolarDB新版本的等待事件监控功能增强
白鳝的洞穴
2022-04-16
895
以前我多次说过等待事件分析对于数据库运维来说十分关键,目前也确实有越来越多的数据库开始支持等待事件分析了。实际上,一些基于PG内核的数据库,大多数是有等待事件的,不过PG原生态的等待事件只有事件,没有等待时间,而且缺乏统计等待事件的汇总信息表,所以使用起来并不容易。利用pg_stat_activity去采集等待事件也要看运气,有时候就会把一些重要的等待事件忽略掉。而且因为缺乏等待时间的指标,因此我们只能从总量上来看一些问题。
这两天正好Polardb的朋友给我发来了最新版的优化手册,可以对应Polardb-O 2.0.2版本的。我拿到后简单翻了翻,发现和2.0.1版本相比,多了一些性能监控方面的管理特性。这正是我们一直期待的。
实际上基于PG代码的国产数据库基本上都是支持等待事件分析的,包括人大金仓、瀚高、优炫、神通、openGauss等。不是基于PG开源代码开发的达梦数据库也同样支持等待事件。我们的产品去年开始对接PolarDB的时候,原有的PG等待事件分析功能就能够直接支持了。我们这个Polardb数据库安装后还没有针对WAL和checkpoint进行优化,因此WAL的相关等待时间has排在第一位。
CHECKPOINT检查工具对当前的参数提出了一些修改建议。我们按照上述建议调整一下参数,这些参数都是通过alert system 设置后使用pg_ctl reload就可以动态修改的,十分方便。
我们看到,WAL方面的lwlock等待小多了,从系统的TPMC指标上来看,也有了明显的改善。在性能监控视图方面,PolarDB 2.0.2明显比2.0.1版本提升了不少。依赖于PolarDB的polar_monitor/polar_monitor_reload这两个插件,我们可以获得很多的原生态PG数据库所没有的监控特性。其中最为重要的是,我们能够获得等待事件的等待时长的数据了。等待时长可以为运维分析提供更为准确的信息。这一点我前阵子发的几篇关于openGauss的文章中也做了阐述。Polar_monitor插件为我们带来了数个polar开头的监控视图。其中就有我们所期待的polar_stat_activity,这个和pg_stat_activity近似的监控接口有着我们需要的新数据。
这个监控视图的前半部分和pg_stat_activity类似,不过后半部分的内容确实十分有价值。等待时间、CPU开销,rss内存使用,共享存储读写指标(针对PorlarFS)和本地存储读写指标,这些监控指标可以让我们更加清晰地理解当前等待事件的情况。
这些数据比我们以前仅仅看到等待次数要清晰得多。
Polar_stat_io_info/polar_stat_io_latency
视图给我们展现了更为详细的I
O
状态。
Polar_stat_io_info
监控视图
Polar_stat_io_latency监控视图
今天只是简单的体验了一下,目前我的环境中,这两个监控接口还没有数据,不知道是不是有什么参数要设置,留待后面慢慢研究吧。这些功能对于我们增强对PolarDB数据库的监控能力至关重要。
在一个高并发系统中,轻量级锁的等待占比是比较高的,因此对于高并发系统中存在的一些性能瓶颈的分析需要对轻量级锁进行深度分析。原生态的PG数据库中我们只能通过定期采集pg_stat_activity来了解轻量级锁的等待数量,这远远不够。和openGauss不同的是,PolarDB并没有针对所有等待事件收集等待事件的汇总信息,仅仅针对lwlock进行了采集,这些数据可以通过polar_stat_lwlock监控视图来获得。
有了这些汇总信息,我们就可以随时掌握一些重要的LWLOCK的等待情况了。这对于分析系统性能瓶颈十分关键。
针对lock,PolarDB也提供了类似的监控能力,这个能力同样来自于polar_monitor_preload插件。通过插件实现这些监控,其开销如何目前我们还没有测试,增强监控要带来一定的系统开销,这一点是肯定的。在Oracle 9i之前,OWI刚刚成熟的时候,Oracle数据库在高负载场景下也是经常建议关闭一些监控的。不过随着现代硬件性能的提升,以及OWI的日渐成熟,大部分监控都成为标准开启的了。在这方面,我想国产数据库也需要不断地在摸索中前进。记得数年前和一个国产数据库研发团队交流的时候,他们也提出过在自己数据库中开启了等待时间监控后,数据库并发性能受到了很大的影响,最终在正式版本中,他们只能舍弃了这个监控功能。
polardb
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨