写点什么

数仓实时算子难以观测,快来试试算子级监控吧

  • 2023-11-21
    广东
  • 本文字数:1522 字

    阅读完需:约 5 分钟

数仓实时算子难以观测,快来试试算子级监控吧

本文分享自华为云社区《GaussDB(DWS)监控工具指南(四)算子级监控【绽放吧!GaussDB(DWS)云原生数仓】》,作者: 幕后小黑爪 。


随着数据量的增大和数据处理的复杂性增加,数据库系统的性能问题变得越来越突出。应用程序对数据库的访问频率和数据量也越来越大。因此,优化数据库系统的性能成为了数据库管理员和开发人员的重要任务。通过 SQL 性能调优,可以提高数据库系统的响应速度和吞吐量,减少资源消耗,提高系统的稳定性和可靠性,从而提高应用程序的性能和用户体验。目前 GaussDB(DWS)已有的 explain 工具无法满足用户实时定位问题的需求,为此 DWS 推出了算子级监控,以解决实时算子难以观测的问题。

1. 需求描述


举个例子,用户下发语句后,无法知道当前语句的执行计划生成的是否合理,目前语句的执行进度和消耗资源等情况。如下图所示,用户仅能看到执行花费了多长时间,并不能看到语句后面执行的什么信息?算子是咋样运行的?每个算子怎么交互的,生成的计划是否合理,无法进行判断。



为此,DWS 提供了 explain performance 的方式进行事后分析,而 explain performance 需要将语句执行完后才能看到结果,对于某些新上业务的语句,不知道会运行多久,甚至说能不能运行出来结果都不知道,所以无法直接通过 explain performance 分析结果。


因此亟需一种实时观测语句算子运行的手段来确定执行计划的优化点,以便 SQL 调优。

2. 解决方案


针对这些情况,GaussDB(DWS)在新版本 821 新推出了算子监控,算子监控能看到语句具体运行的情况,能追踪到具体某个算子的进度以及消耗资源情况。使用步骤如下:


1)设置 guc 参数 resource_track_level 为 operator_realtime 级别,然后执行语句;


2)重新打开一个窗口,连接 gaussdb,通过 pgxc_wlm_operator_statistics 查询集群所有打开算子监控的语句,又或者通过查询 pg_stat_get_wlm_realtime_operator_info(queryid)可以获取到该 queryid 对应语句的信息。


select * from pgxc_wlm_operator_statistics;
复制代码


注:该功能对性能有一定影响,执行基线测试,同样情况下可能会最大新增 2%左右的性能劣化,建议用户在追踪性能问题时使用。


算子监控跟语句监控功能类似,同样包含的语句的静态信息和运行态信息。


1)语句静态信息是语句在真正执行前就已经由优化器生成的信息,如执行计划 plan_node_name,queryid,预估行数 estimated rows 等信息。可用来分析生成的执行计划是否合适。


2)语句动态信息是语句在执行器中执行过程中所占用的资源信息,如算子执行进度 progress、内存 peak_memory、算子下盘 spill_size、网络 net_size、磁盘 IO(read_bytes、write_bytes),CPU(cpu_time)等不同 DN 的实时的信息记录。可用来分析语句执行过程中的进度和资源消耗情况,通过该字段可以分析出语句在运行是消耗较久的在什么地方,便于后续优化。

3. 实际使用


我们下发某个查询,在另一个会话中查询算子视图,结果如下:



1)当前算子进度:字段 progress 展示了当前算子的运行进度,对于第一个算子而言,该字段展示的是当前语句的整体进度。


2)不断刷新视图,能看到语句执行情况,观察进度介于(0,100)之间的进度算子,这些代表该算子正在运行。


3)观察当前算子实际消耗资源情况,判断可能阻塞的原因。

4. 总结


以往需要 explain performance 执行完毕后才能获取算子运行信息,现在通过该视图可以直接在运行期间获取,且该视图对结果集无影响。本文提供的视图可以支持用户对语句算子进行实时监控,能较为准确的反应语句的执行情况,通过观察运行时长较久的算子和消耗资源,可以判断计划生成是否合理,又或者通过进度字段观察语句运行进度可用来定位 SQL 性能问题。当然,该视图也许和其他运行态的视图结合使用,最终确定 SQL 性能较慢的原因,并采取措施进行调优。


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

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

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

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

评论

发布
暂无评论
数仓实时算子难以观测,快来试试算子级监控吧_数据库_华为云开发者联盟_InfoQ写作社区