GaussDB(DWS)的用户监控视图

举报
门前一棵葡萄树 发表于 2023/12/26 16:26:46 2023/12/26
【摘要】 一、历史背景GaussDB(DWS)在8.1.3之前版本就已经支持了用户资源监控,但是仅支持实时监控,不支持历史转储。用户可以通过监控视图pg_total_user_resource_info查询用户实时资源监控信息。但是8.1.3之前版本中,用户资源监控单独打桩,因为打桩时机原因导致用户资源监控存在以下问题:1. CPU使用信息是通过cgroup获取到的,而cgroup与资源池绑定,用于C...

一、历史背景

GaussDB(DWS)在8.1.3之前版本就已经支持了用户资源监控,但是仅支持实时监控,不支持历史转储。

用户可以通过监控视图pg_total_user_resource_info查询用户实时资源监控信息。但是8.1.3之前版本中,用户资源监控单独打桩,因为打桩时机原因导致用户资源监控存在以下问题:

1. CPU使用信息是通过cgroup获取到的,而cgroup与资源池绑定,用于CPU资源管控,同时多个用户可能共用一个资源池,因此这里展示的其实是用户所属资源池的CPU使用信息,而不是用户CPU使用信息;

2. 内存、IO只统计复杂作业资源使用信息;

3. 两次资源信息上报之间结束的作业资源使用信息,感知不到。

基于以上问题,我们在8.1.3版本对用户资源监控进行了重构优化,并支持了历史转储。主要优化点如下:

1. 删除原有内存、IO以及CPU资源监控打桩逻辑;

2. 使用作业监控信息,汇总得到用户资源监控数据;

3. 作业结束时,将作业监控数据保存至内存中,用于统计监控周期内结束作业资源信息。

4. 增加系统表gs_wlm_user_resource_history用于转储用户监控数据。

以上优化已经解决了用户资源监控不准的问题,但是某些场景下还是无法满足用户需求:用户想要查询用户资源监控数据的同时,可以查询到用户作业运行信息。基于此我们设计实现了用户监控DFX视图。

二、用户监控DFX视图

为了能通过一个视图展示作业运行和资源使用信息,我们在8.2.1设计实现了用户监控DFX视图:gs_user_monitor,用于展示所有用户作业运行信息及资源使用信息。

视图包含字段如下:

名称

类型

描述

usename

name

用户名称。

rpname

name

用户关联的资源池名称。

nodegroup

name

资源池所属逻辑集群的名称,默认集群显示“installation”。

session_count

bigint

该用户发起的会话数量,包含IDLE和ACTIVE会话。

active_count

bigint

该用户发起的活跃会话数量,即正在执行查询的会话数量。

global_wait

bigint

该用户执行的所有作业中,因单CN上并发超max_active_statements引起排队的作业数。

fast_run

bigint

该用户执行的所有作业中,正在资源池快车道运行的作业数。

fast_wait

bigint

该用户执行的所有作业中,在资源池快车道排队的作业数。

slow_run

bigint

该用户执行的所有作业中,正在资源池慢车道运行的作业数。

slow_wait

bigint

该用户执行的所有作业中,在资源池慢车道排队的作业数。

used_mem

bigint

用户在所有DN上已用内存的平均值,单位:MB。

estimate_mem

bigint

用户正在运行的作业估算内存之和,单位:MB。

used_cpu

double precision

用户在所有DN上使用CPU核数的平均值,单个节点上包含多个DN时,用户在单节点上占用的CPU核数需要乘以DN数。

read_speed

bigint

用户在所有DN上逻辑IO读速率的平均值,单位:KB/s。

write_speed

bigint

用户在所有DN上逻辑IO写速率的平均值,单位:KB/s。

send_speed

bigint

用户在所有DN上网络发送速率的平均值,单位:KB/s。

recv_speed

bigint

用户在所有DN上网络接收速率的平均值,单位:KB/s。

used_space

bigint

用户永久表已使用的空间大小,单位:KB。

space_limit

bigint

用户永久表可使用的空间大小上限,单位:KB。-1为不限制。

used_temp_space

bigint

用户临时表已使用的空间大小,单位:KB。

temp_space_limit

bigint

用户临时表可使用的空间大小上限,单位:KB。-1为不限制。

used_spill_space

bigint

用户中间结果集落盘已使用的空间大小,单位:KB。

spill_space_limit

bigint

用户中间结果集落盘可使用的空间大小上限,单位:KB。-1为不限制。

该视图展示用户资源使用信息的同时,可以同步展示用户作业排队运行信息以及用户所属资源池和逻辑集群信息,可以一目了然的显示用户负载和资源使用情况。

在出现负载/资源冲高问题时,可以通过该视图迅速定位到是哪个用户负载/资源高导致的问题。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。