78建筑网站品牌策划书范文案例
news/
2025/10/9 9:50:24/
文章来源:
78建筑网站,品牌策划书范文案例,电子商务与网站建设,装一个erp系统多少钱我们都知道#xff0c;当 Oracle 数据库出现性能故障后#xff0c;一般会在线上实时诊断数据库性能问题#xff0c;特别是资源突然打高的场景#xff0c;这个时候用到ASH的数据#xff0c;就能很大程度上准确定位问题所在。
Oracle ASH 在 Oracle 数据库中#xff0c;实…我们都知道当 Oracle 数据库出现性能故障后一般会在线上实时诊断数据库性能问题特别是资源突然打高的场景这个时候用到ASH的数据就能很大程度上准确定位问题所在。
Oracle ASH 在 Oracle 数据库中实时捕获相关性能数据是通过ASH工具来实现的。 ASH是v$session为基础1s采样一次记录活跃会话等待的事件。采样工作由后台进程MMNL来完成。 dba_hist_active_sess_history是视图v$active_session_history的历史数据默认每十秒收集一次信息储存在磁盘中。 MMON负责执行与AWR相关的任务。包括收集数据库统计信息收集AWR快照启动各种自动维护作业JOB生成超过阀值告警信息。 MMNL负责执行与ASH相关的任务。
MogDB ASP
ASP (ACTIVE SESSION PROFILE) 是 MogDB 中提供的对活跃会话样本收集的功能类似 Oracle 中ASH。ASP可以让用户查询活跃会话样本的基本信息。对于数据库运行期间的实时监控以及性能问题诊断有重要作用。
MogDB 继承了社区开源版本 openGauss 的ASH能力下面称ASP在此基础上进行企业版增强称为SQL运行状态观测主要是通过在采样数据中增加SQL执行算子的采样来完成的。 图 1
从采样中统计出活跃Session的统计指标这些统计指标从客户端信息、执行开始、结束时间、SQL文本、等待事件、当前数据库对象等维度反映活跃Session的基本信息、状态和持有的资源。
基于概率统计的活跃Session信息可以帮助用户诊断系统中哪些Session消耗了更多的CPU、内存资源哪些数据库对象是热对象哪些SQL消耗了更多的关键事件资源等从而定位出有问题的Session、SQL、数据库设计。
Session采样数据分为两级如图1所示
第一级为实时信息存储在内存中展示最近几分钟的活跃Session信息具有最高的精度视图DEB_PERF.local_active_session显示内存记录的实时活跃会话信息
第二级为持久化历史信息存储在磁盘文件中展示过去很长一段时间的历史活跃Session信息从内存数据中抽样而来适合长时间跨度的统计分析系统表GS_ASP(或ASP log文件)存放持久化的信息。 图 2
如图2所示各session工作线程将各自的状态信息存储在共享内存t_thrd.shemem_ptr_cxt的BackendStatusArray数组中。后台采样线程ASH_WORKER每隔一个采样周期将t_thrd.shemem_ptr_cxt.BackendStatusArray内容采集写入到g_instance.stat_cxt.active_sess_hist_arrary中。当采样填满了active_sess_hist_arrary时ASH_WORKER会将内存中的采样数据按比例刷新到GS_ASP表或者log文件中以供历史查询。而内存active_sess_hist_arrary中的实时信息可以通过视图DEB_PERF.local_active_session查询。
MogDB企业版增强
MogDB 企业版增强的ASH能力称为SQL运行状态观测主要是通过在采样数据中增加SQL执行算子的采样来完成的。
MogDB 在上述视图中增加了plan_node_id字段来记录每次采样时SQL正在执行的算子情况将该算子与其它性能视图中记录的SQL执行计划来关联即可知道对于出现性能问题的SQL具体是慢在了执行计划的哪个步骤上。
以下参数会对企业版ASH功能产生影响 resource_track_level参数指定为operator则会开启算子采样能力默认值是query只会记录SQL级别采样。
ASP数据收集流程 MogDB 启动后会检查enable_asp是否开启如果开启就会启动一个后台采样线程ASH_WORKER。该采样线程每隔一个采样周期将t_thrd.shemem_ptr_cxt.BackendStatusArray内容采集写入到g_instance.stat_cxt.active_sess_hist_arrary中。采样周期由GUC参数asp_sample_interval控制默认采样周期为1秒。当采样填满了active_sess_hist_arrary(由guc参数asp_sample_num控制默认为100000个采样)时会将内存中的采样数据刷新到GS_ASP表或者ASP log文件中以供历史查询。
MogDB ASP参数
有以下几个主要参数会对ASH功能产生影响 enable_asp设置为on或者off表示是否开启ASH功能默认为开启 asp_sample_interval指定每次采样的间隔默认为1s采样一次如果想减轻采样压力可以将该参数设置为更长间隔最长允许设置为10s asp_sample_num指定在内存表LOCAL_ACTIVE_SESSION中保留的样本总数超过该数将会触发将内存中的样本刷盘记录到GS_ASP系统表中的行为默认为10万条。当发生刷盘行为后LOCAL_ACTIVE_SESSION中的所有记录会被清空重新开始采样 asp_flush_rate指定哪些内存中的样本数据会被刷盘记录到GS_ASP表中判断时会计算LOCAL_ACTIVE_SESSION中记录的sampleid字段值其中 sampleid%asp_flush_rate 0的记录会被标志为need_flush_sampletrue这些记录都会被持久化保存在内核函数Asp::SubAspWorker中定义。可以简单地理解为该参数默认值为10也就是1/10的样本会被持久化保存 asp_retention_days指定在GS_ASP中保留的数据的时限默认为2天最多7天。
ASP常用SQL
查看session之间的阻塞关系
select sessionid, block_sessionid from pg_thread_wait_status;采样blocking session信息
select sessionid, block_sessionid from DBE_PERF.local_active_session;Final blocking session展示
select sessionid, block_sessionid, final_block_sessionid from DBE_PERF.local_active_session;最耗资源的wait event
SELECT s.type, s.event, t.count
FROM dbe_perf.wait_events s, (
SELECT event, COUNT (*)
FROM dbe_perf.local_active_session
WHERE sample_time now() - 5 / (24 * 60)
GROUP BY event)t WHERE s.event t.event ORDER BY count DESC;查看最近五分钟较耗资源的session把资源都花费在哪些event上
SELECT sessionid, start_time, event, countFROM (
SELECT sessionid, start_time, event, COUNT(*)FROM dbe_perf.local_active_session
WHERE sample_time now() - 5 / (24 * 60)GROUP BY sessionid, start_time, event) as t ORDER BY SUM(t.count) OVER (PARTITION BY t. sessionid, start_time)DESC, t.event;最近五分钟比较占资源的SQL把资源都消耗在哪些event上
SELECT query_id, event, countFROM (
SELECT query_id, event, COUNT(*)FROM dbe_perf.local_active_session
WHERE sample_time now() - 5 / (24 * 60)GROUP BY query_id, event) t ORDER BY SUM (t.count) OVER (PARTITION BY t.query_id ) DESC, t.event DESC;正在执行的SQL的包括历史采样的所有信息
selectlas.sample_time,las.application_name,las.unique_query_id,las.event,scr.query ,scr.query_plan
fromdbe_perf.local_active_session las,dbe_perf.statement_complex_runtime scr
wherelas.thread_id scr.pidand scr.pid pg_backend_pid();关于作者
许玉晨云和恩墨 MogDB 技术支持工程师有超过10年的金融、保险、政府、地税、运营商等业务关键型系统的运维经验曾担任公司异常恢复东区接口人负责紧急异常恢复工作目前负责 MogDB 数据库的技术推广工作。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932379.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!