论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Oracle
›
数仓实时算子难以观测,快来试试算子级监控吧 ...
数仓实时算子难以观测,快来试试算子级监控吧
铁佛
金牌会员
|
2024-1-3 21:08:15
|
显示全部楼层
|
阅读模式
楼主
主题
540
|
帖子
540
|
积分
1620
本文分享自华为云社区《
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性能较慢的原因,并采取措施进行调优。
点击关注,第一时间了解华为云新鲜技术~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
铁佛
金牌会员
这个人很懒什么都没写!
楼主热帖
.net6下使用DotnetZip解压文件,中文出 ...
Visual Studio 2022 安装低版本的 .Net ...
O-MVLL:支持ARM64的基于LLVM的代码混淆 ...
OkHttp Address already in use: no fu ...
浅析云原生时代的服务架构演进 ...
爱上源码,重学Spring AOP深入 ...
k8s pod log日志不显示python print打 ...
Spring 保存带Array字段的记录到Postgr ...
Java 缺失的特性:操作符重载 ...
身为一个测试工程师只会点点点?我劝您 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表