排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
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 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
openGauss的ASH(ASP)
openGauss的ASH(ASP)
白鳝的洞穴
2022-06-23
2030
这两天写了两篇希望国产数据库具有的能力的文章,就有不少国产数据库的朋友和我反馈说他们的产品已经拥有了其中的一些功能,这确实是十分令人高兴的事情,说明用户关注的问题,数据库研发人员已经关注了。前几天和高斯的朋友交流的时候还提过ASH对于数据库可观测性的必要性,希望openGauss能够支持ASH,昨天我在分析openGauss的一些特性的时候,就发现了高斯的ASP功能。实际上ASP功能就是一个类似于Oracle ASH的高度仿制品。看样子是我孤陋寡闻了,在我们实验室环境的openGauss 2.0和openGauss 3.0环境中,我都看到了ASP这个功能。
openGauss的ASP是和WDR一体化设计的功能,这一点十分重要,因为ASP和WDR是相辅相成,互相补充的。和Oracle 的ASH不同的是,openGauss的ASP支持3种持久化方式,默认的方式是类似Oracle的数据表保存模式,将数据定期持久化到GS_ASP表中;第二种方式是文件方式,直接将内存中的ASP数据输出到磁盘文件中,输出到磁盘文件有助于提升ASP输出的效率,也方便监控软件更为低成本的采集ASP数据;第三种方式是表+文件的方式,实际上这种方式的使用场景会十分有限,因为无论如何,在一个高并发的系统中,输出ASP数据都是有成本的。输出到文件是ASP中的一个不错的设计,不过似乎对于ASP文件的保存期限openGauss并没有做自动管理。比如根据asp_retention_days参数做自动的清理操作(默认保存2天)。随着时间推移,如果DBA忘记了清理数据,会导致PGDATA目录被大量占用,影响系统的稳定运行。
我尝试了将asp_flush_mode设置为file,不过似乎并没有直接起效,不过在PGDATA下有一个asp_data的目录,每天0点会自动产生一个ASP文件,无论参数设置为TABLE还是FILE。这个功能以后我们再来尝试一下。
ASP功能通过asp_sample_interval参数来定义系统采样活跃会话的频率,默认是1秒钟,如果对监控要求没那么高,或者系统负载过高,可以考虑加大这个参数设置。
asp_sample_num参数控制了在内存中保存的ASP采样刷盘数量,达到这个数量ASP数据会被刷盘,默认是10万条,如果我们的业务高峰时期,活跃会话数量是500,那么10万条可以保存200秒的数据,也就是3分多钟,对于较为大型的系统来说,如果物理内存足够大,可以设置更大的值。不过如果一次性过多的数据被同时刷盘,那么过大的设置会引发瞬间的高负载,这一点一定要注意。
参数asp_flush_rate是限制ASP数据刷入持久化存储的比例的参数,默认是10,也就是说默认只有1/10的活跃会话数据会被采样存储到持久化存储中,其他的数据一旦缓冲区写满就会被丢弃。如果你想要加大持久化的采样比例,可以调小该参数,调整为1就是1:1写盘。openGauss的gs_asp表被创建为普通表,而没有被创建成一个unlogged table,因此大量写入ASP数据的开销还是有点大。实际上,gs_asp表示不怕数据损坏的,因此完全可以创建为unlogged table,从而降低写入ASP数据的开销,提升写入性能。
从数据上看,ASP的数据已经包含了ASH分析所需要的基本信息,唯一让Oracle dba感到有些遗憾的是,等待事件的等待时间并没有包含,当然openGauss也提供了某个等待事件的等待次数和时长的统计数据供参考。
可能是从性能的考虑吧,这张表上只有一个sample_time的索引,不过大多数ASP分析也都是基于时间区间的,对于大多数分析操作来说也够用了。
openGauss的ASP在内存中也是可以访问的,不过要通过另外的接口,高斯数据库访问内存的性能数据一般都通过dbe_perf下的视图local_active_session。
openGauss并没有像Oracle一样提供一个统一的视图来获取内存和表中的数据,提供了两个接口。如果我们在分析ASP的时候需要获得完整的数据,需要通过一个UNION操作来访问这两个接口。
另外openGauss也提供了一个get_local_active_session的函数来获取内存中的ASP数据,不过这个函数功能上面还不够完善,只能一次性取出所有的ASP内存中的数据,如果能够加上一些根据sample_time或者SESSION ID的筛选条件就更完美了。
高斯的ASP采集功能是通过enable_asp参数来控制的,默认情况下,这个参数是on,ASP采集是开启的。这说明高斯的厂商认为ASP的功能是成熟的,打开ASP采集并不会过大的影响高斯的性能。这一点是十分重要的。
今天我简单的介绍了一下openGauss的ASP功能,ASP是分析数据库某个时间段中是否存在某种问题的利器,具体怎么用好ASP功能,掌握Oracle ASH分析的DBA可能很快就能想出很多。不过对于大多数DBA来说,这方面并不擅长。如果openGauss能够开发一个类似Oracle ASH REPORT的功能就更好了。
opengauss
数据库
ash
asp
高斯
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨