文档首页 > > 开发指南> 资源负载管理> 资源监控> 实时TopSQL

实时TopSQL

分享
更新时间: 2019/06/24 GMT+08:00

数据库用户执行查询作业时,对处于Active状态的SQL查询,系统提供了Query级别和算子级别的资源监控实时视图用来查询执行代价大于resource_track_cost的实时TopSQL。资源监控实时视图记录了作业运行时的资源使用情况(包括内存、下盘、CPU时间、IO等)以及性能告警信息。您可以根据这些信息评估查询是否存在性能瓶颈或对集群的整体性能造成影响。

默认开启query级别的资源监控功能,如果要开启query级别和算子级别资源监控功能,需将resource_track_level设置为operator。支持实时资源监控的作业类型为:

  • 优化器估算的执行代价大于等于resource_track_cost的作业。使用explain语句可以查询语句的执行代价。
  • SELECT, INSERT, UPDATE, DELETE和CREATE TABLE AS语句,包括使用explain analyze和explain performance来执行的场景。query级别视图还额外支持fetch语法。

资源监控实时视图如下表所示,您可以像查询数据库表一样查询这些视图,普通用户仅支持查询以gs为前缀的视图:

表1 资源监控实时视图

监控级别

节点范围

查询视图

视图说明

Query级别

当前CN

GS_WLM_SESSION_STATISTICS

查询当前CN的实时资源。

所有CN

PGXC_WLM_SESSION_STATISTICS

查询所有CN的实时资源。

算子级别

当前CN

GS_WLM_OPERATOR_STATISTICS

查询当前CN作业算子执行实时资源信息。

所有CN

PGXC_WLM_OPERATOR_STATISTICS

查询所有CN作业算子执行实时资源信息。

典型的实时TopSQL查询

此处以查询在当前CN上执行的SQL语句为例,列举一些典型的查询实时TopSQL资源使用信息及性能运行信息的SQL语句。如果需要查询所有CN上执行的SQL语句,请将查询语句中视图名的前缀gs替换为pgxc。
  • Query级别查询。此处提供的每条查询语句,默认第一列为query(即当前查询的SQL语句)。
    • 查询SQL语句执行的开始时间,结束时间,实际执行时间,执行状态信息。时间单位为:ms。
      SELECT query,start_time,finish_time,duration,status FROM gs_wlm_session_history ORDER BY start_time DESC;
    • 查询SQL语句在所有DN上的最大内存峰值,语句执行过程中的内存使用平均值,语句在各DN间的内存使用倾斜率。内存单位为:MB。
      SELECT query,max_peak_memory,average_peak_memory,memory_skew_percent FROM gs_wlm_session_statistics ORDER BY start_time DESC;
    • 查询SQL语句在所有DN上的下盘信息,所有DN上下盘的最大数据量,所有DN上下盘的平均数据量,DN间下盘倾斜率。数据量单位为:MB。
      SELECT query,spill_info,max_spill_size,average_spill_size,spill_skew_percent FROM gs_wlm_session_statistics ORDER BY start_time DESC;
    • 查询SQL语句在所有DN上的最大执行时间,在各DN上的执行时间倾斜率。时间单位为:ms。
      SELECT query,max_dn_time,dntime_skew_percent FROM gs_wlm_session_statistics ORDER BY start_time DESC;
    • 查询SQL语句在所有DN上的最大CPU时间,在所有DN上的CPU总时间,在DN间的CPU时间倾斜率。时间单位:ms。
      SELECT query,max_cpu_time,total_cpu_time,cpu_skew_percent FROM gs_wlm_session_statistics ORDER BY start_time DESC;
    • 查询SQL语句在所有DN上的每秒最大IO峰值,在所有DN上的每秒平均IO峰值,在DN间的IO倾斜率。IO单位:列存单位是次/s,行存单位是万次/s。
      SELECT query,max_peak_iops,average_peak_iops,iops_skew_percent FROM gs_wlm_session_statistics ORDER BY start_time DESC;
  • 算子级别查询。此处提供的每条查询语句,默认第一列为plan_node_name(即对应于plan_node_id的算子的名称)。
    • 当前算子处理第一条数据的开始时间,到结束时候的总执行时间(单位为:ms),以及执行状态。
      SELECT plan_node_name,start_time,duration,status FROM gs_wlm_operator_statistics ORDER BY start_time DESC;
    • 当前算子在所有DN上的最大内存峰值,在所有DN上的平均内存峰值,在各DN内存使用倾斜率。内存单位为:MB。
      SELECT plan_node_name,max_peak_memory,average_peak_memory,memory_skew_percent FROM gs_wlm_operator_statistics ORDER BY start_time DESC;
    • 当前算子在所有DN上下盘最大数据量,所有DN上下盘平均数据量,DN间下盘倾斜率。数据量单位为:MB
      SELECT plan_node_name,max_spill_size,average_spill_size,spill_skew_percent FROM gs_wlm_operator_statistics ORDER BY start_time DESC;
    • 该算子在所有DN上的最大执行时间,在所有DN上的总执行时间,各DN间执行时间的倾斜率。时间单位为:ms。
      SELECT plan_node_name,max_cpu_time,total_cpu_time,cpu_skew_percent FROM gs_wlm_operator_statistics ORDER BY start_time DESC;

注意事项

  • 重分布过程中的作业不统计。
  • 资源监控实时视图通过不同的前缀(gs与pgxc)来区分单CN查询视图以及集群级别查询视图。普通用户仅支持查询以gs为前缀的视图。
  • 查询实时视图时,因需要获取作业运行实时资源使用情况,会有一定的网络延时
  • 查询如表1所示的实时视图时,因需要获取作业运行实时资源使用情况,会有一定的网络延时。
  • 单独查询实时CPU信息,可以使用视图GS_SESSION_CPU_STATISTICS;单独查询内存信息可以使用视图GS_SESSION_MEMORY_STATISTICS;视图GS_WLM_SESSION_STATISTICS字段包含GS_SESSION_CPU_STATISTICS和GS_SESSION_MEMORY_STATISTICS查询字段结果。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区