GaussDB(DWS)的用户监控视图
一、历史背景
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为不限制。 |
该视图展示用户资源使用信息的同时,可以同步展示用户作业排队运行信息以及用户所属资源池和逻辑集群信息,可以一目了然的显示用户负载和资源使用情况。
在出现负载/资源冲高问题时,可以通过该视图迅速定位到是哪个用户负载/资源高导致的问题。
- 点赞
- 收藏
- 关注作者
评论(0)