更新时间:2022-08-16 GMT+08:00
实时TopSQL
系统提供了不同级别的资源监控实时视图用来查询实时TopSQL。资源监控实时视图记录了查询作业运行时的资源使用情况(包括内存、下盘、CPU时间、IO等)以及性能告警信息。
实时视图具体的对外接口如下表所示:
- 视图级别取决于资源监控的等级,即参数resource_track_level的配置。
- perf和operator级别会影响GS_WLM_SESSION_STATISTICS/PGXC_WLM_SESSION_INFO中的query_plan和warning字段的取值,详细内容参见SQL自诊断。
- 对外接口通过不同的前缀(gs与pgxc)来区分单CN查询视图以及集群级别查询视图。普通用户仅支持登录到集群的某个CN查询以gs为前缀的视图。
- 查询此类实时视图时,因需要获取作业运行实时资源使用情况,会有一定的网络延时。
- 实例故障时,实时TopSQL视图有可能记录不全。
- 实时TopSQL中能够记录的SQL语句的规格是:
- 不记录数据定义语句,例如:执行CREATE、ALTER、DROP、GRANT、REVOKE和VACUUM语法;
- 记录数据操作语句,例如:
- 执行SELECT、INSERT、UPDATE和DELETE语法
- 执行explain analyze和explain performance场景
- 使用query级别视图/perf级别视图(此视图额外支持create table as语法)
- 记录函数与存储过程的调用入口语句与内部的语句,但是当函数与存储过程中含有循环体时不记录其循环体内部的语句,记录循环体外部的语句;
- 不记录匿名块中的语句;
- 记录事务块中的语句,但是当事务块中含有循环体时,不记录其循环体内部的语句,记录循环体外部的语句;
- 记录游标语句。
- 重分布过程中的作业不统计。
前提条件
- GUC参数enable_resource_track为on (默认为on)。
- GUC参数resource_track_level为query、perf或operator(默认为query)。
- 监控作业的类型为:
- 优化器估算的执行代价大于或等于resource_track_cost取值的作业。
- 该作业为长查询的作业。
- Cgroups功能正常加载,可通过gs_cgroup -P查看控制组信息。
在上述条件中,enable_resource_track为系统级参数,用于设置是否开启资源监控功能。resource_track_level为session级参数,可以对某个session的资源监控级别进行灵活设置。这两个参数的设置方法如下表:
操作步骤
- 通过视图gs_session_cpu_statistics查询实时CPU信息。
1
SELECT * FROM gs_session_cpu_statistics;
- 通过视图gs_session_memory_statistics查询实时memory信息。
1
SELECT * FROM gs_session_memory_statistics;
- 通过视图gs_wlm_session_statistics查询当前CN的实时资源。
1
SELECT * FROM gs_wlm_session_statistics;
- 通过视图pgxc_wlm_session_statistics查询所有CN的实时资源。
1
SELECT * FROM pgxc_wlm_session_statistics;
- 通过视图gs_wlm_operator_statistics查询当前CN作业算子执行实时资源信息。
1
SELECT * FROM gs_wlm_operator_statistics;
- 通过视图pgxc_wlm_operator_statistics查询所有CN作业算子执行实时资源信息。
1
SELECT * FROM pgxc_wlm_operator_statistics;
- 通过视图pg_session_wlmstat查询当前用户执行作业正在运行时的负载管理信息。
1
SELECT * FROM pg_session_wlmstat;
- 通过视图pgxc_wlm_workload_records(动态负载功能开启,即enable_dynamic_workload为on时该视图有效)查询当前用户在每个CN上作业执行时的状态信息。
1
SELECT * FROM pgxc_wlm_workload_records;
父主题: 资源监控