写点什么

带你认识数仓的监控系统 TopSQL

  • 2023-08-04
    广东
  • 本文字数:960 字

    阅读完需:约 3 分钟

带你认识数仓的监控系统TopSQL

本文分享自华为云社区《GaussDB(DWS)TopSQL总结》,作者:nullptr_ 。

TopSQL 背景


TopSQL 为 DWS 的监控系统,记录 DWS 中各个作业、算子级别的资源使用数据、耗时数据,包括下盘信息、内存、网络、耗时、警告、基础信息等作业执行的数据。

TopSQL 简介


TopSQL 分为实时表和历史表,实时表主要展示系统当前的负载情况,历史表主要用于存储作业执行的历史情况。历史表主要用于历史问题的分析回溯和问题定位、实时表主要用来展示当前系统中作业执行情况,让系统现场更加直观,为运维工作带来了极大的方便。

TopSQL 功能介绍

主要视图


前提条件(参数介绍)


  • enable_resource_track topsql 开关,是否开始 topsql 功能

  • resource_track_level 设置监控级别,query:类似于 sql 的 explain 输出信息,perf:类似于 explain analyze 输出信息,operator_reltime: 统计实时算子信息,operator:详细记录到每个算子的执行信息,并且层级为向下兼容 query->perf->operator_reltime->operator

  • resource_track_cost topsql 追踪执行时间大于等于 resource_track_cost 的作业

  • enable_track_record_sql 控制是否记录存储过程、匿名块内部的语句

  • enable_track_record_subsql 控制是否记录存储过、匿名块内部语句

  • resource_track_subsql_duration 过滤执行时间小于 resource_track_subsql_duration 的语句

字段含义介绍(重点功能作用)




类型介绍


值异常分析



当作业因为异常例如某 DN 挂了,作业会重新开始,topsql 会记录两条记录

TopSQL 重点逻辑梳理剖析



在 DN 通过打桩定期记录作业的实时信息,并将记录定期发送至 CN,并将信息定期存储至实时表中 pgxc_wlm_session_statistics 中,并定时将实时表中的作业落盘到历史表中 pgxc_wlm_session_info 中,此过程为了减少阻塞将记录放到无锁队列中,无锁队列提供了记录的 CAS 原子操作,然后定期读取无锁队列中的内容进行转储,pgxc_wlm_session_info 通过 start_time 进行分区,每天一个分区,通过参数 topsql_retention_time 配置默认保留 30 个分区即 30 天的记录,定期对 pgxc_wlm_session_info 的分区进行清理、创建。此过程在 dws 中有单独的线程运行,对系统的影响较小。无锁队列大小是有上限的,如果转储处理的速度赶不上生成的速度那么作业也会被丢弃。


历史


当前 pgxc_wlm_session_history 只包含最近 3 分钟的数据且数据来源实际是 pgxc_wlm_session_info。


点击关注,第一时间了解华为云新鲜技术~


发布于: 刚刚阅读数: 5
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
带你认识数仓的监控系统TopSQL_数据库_华为云开发者联盟_InfoQ写作社区