
# 用户资源监控
在多租户管理的框架下，用户可以通过系统视图[PG_TOTAL_USER_RESOURCE_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0790.html)、[PGXC_TOTAL_USER_RESOURCE_INFO](https://support.huaweicloud.com/devg-dws/dws_04_1020.html)和函数GS_WLM_USER_RESOURCE_INFO实时查询所有用户资源（包括内存，CPU核数，存储空间、临时空间、算子落盘空间和IO）实时使用情况，也可以通过系统表[GS_WLM_USER_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-dws/dws_04_0567.html)和系统视图[PGXC_WLM_USER_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-dws/dws_04_1021.html)查询用户资源的历史使用情况。
#### 注意事项
- 用户监控可以同时监控快慢车道（快车道管控简单作业，慢车道管控复杂作业）所有作业的CPU、IO和内存使用情况，不再受限于仅监控慢车道作业。
- 当前快车道作业内存和CPU不受控，在快车道运行作业占用资源较多情况下，可能出现已用资源大于资源限制的情况。
- DN监控视图中，IO、内存和CPU显示的是本DN上资源池资源使用和资源限制信息。
- CN监控视图中，IO、内存和CPU显示的是集群内所有DN资源池资源使用和资源限制的累积和。
- DN每隔5秒更新一次监控信息，CN每隔5秒从DN收集一次用户监控信息，因为各实例单独更新/收集用户监控信息，因此各实例监控信息更新时间可能不一致。
- 辅助线程中每隔30秒自动调用持久化函数，持久化用户监控数据，正常情况下不需要用户单独调用持久化函数持久化用户监控数据。
- 当用户数量较多，集群规模较大时，查询此类实时视图，因CN/DN间实时通信开销，会有一定的网络延时。
- 初始管理用户不进行资源监控。
 
#### 操作步骤
- 查询所有用户的资源限额和资源实时使用情况。
  ```
  SELECT * FROM PG_TOTAL_USER_RESOURCE_INFO;
  ```
  得到的结果视图如下：
  ```
  username        | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed
  -----------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------
  perfadm               |           0 |            0 |        0 |         0 |          0 |          -1 |               0 |               -1 |                0 |                -1 |           0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
  usern                 |           0 |        17250 |        0 |        48 |          0 |          -1 |               0 |               -1 |                0 |                -1 |           0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
  (2 rows)
  ```
  其中，IO资源监控字段(read_kbytes、write_kbytes、read_counts、write_counts、read_speed和write_speed)需要在GUC参数[enable_user_metric_persistent](https://support.huaweicloud.com/devg-dws/dws_04_0922.html#ZH-CN_TOPIC_0000001811490709__section827402723813)开启时才有监控数据。
  所查各字段说明详见[PG_TOTAL_USER_RESOURCE_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0790.html) 。
  

- 查询具体某个用户的资源限额和资源实时使用情况。
  ```
  SELECT * FROM GS_WLM_USER_RESOURCE_INFO('username');
  ```
  查询结果如下：
  ```
  userid | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed
  --------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------
  16407 |           18 |        1655 |        6 |         19 |          13787176 |          -1 |               0 |               -1 |                0 |                -1 |           0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
  (1 row)
  ```
  

- 查询所有用户的资源限额和资源历史使用情况。
  ```
  SELECT * FROM GS_WLM_USER_RESOURCE_HISTORY;
  ```
  查询结果如下：
  ```
  username        |           timestamp           | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed  | write_speed | send_speed | recv_speed
  -----------------------+-------------------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+-------------+-------------+------------+------------
  usern                 | 2020-01-08 22:56:06.456855+08 |           0 |        17250 |        0 |        48 |          0 |          -1 |               0 |               -1 |         88349078 |                -1 |       45680 |           34 |        5710 |            8 |         320 |           0 |          0 |          0
  userg                 | 2020-01-08 22:56:06.458659+08 |           0 |        15525 |    33.48 |        48 |          0 |          -1 |               0 |               -1 |        110169581 |                -1 |       17648 |           23 |        2206 |            5 |         123 |           0 |          0 |          0
  userg1                | 2020-01-08 22:56:06.460252+08 |           0 |        13972 |    33.48 |        48 |          0 |          -1 |               0 |               -1 |        136106277 |                -1 |       17648 |           23 |        2206 |            5 |         123 |           0 |          0 |          0
  ```
  对于系统表[GS_WLM_USER_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-dws/dws_04_0567.html)，仅当GUC参数[enable_user_metric_persistent](https://support.huaweicloud.com/devg-dws/dws_04_0922.html#ZH-CN_TOPIC_0000001811490709__section827402723813)开启时，才会定期将视图[PG_TOTAL_USER_RESOURCE_INFO](https://support.huaweicloud.com/devg-dws/dws_04_0790.html)中的数据保存到历史表中。
  所查各字段说明详见[GS_WLM_USER_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-dws/dws_04_0567.html)。
  
 
