# 资源池资源监控
#### 简介
多租户管理框架下，用户关联资源池执行查询，用户执行查询所占用的资源将汇总至关联资源池上，通过资源池监控视图，用户可以直观的查询到所有资源池的实时资源使用情况，同时也可以通过资源池监控历史表查询资源池资源的历史使用情况。
资源池监控数据每5秒更新一次，但是因为CN和DN时间差，实际监控数据更新时间可能会大于5秒，正常不会超过10秒。资源池监控数据每30秒持久化一次，资源池监控和用户监控逻辑基本一致，因此共用GUC参数控制持久化和老化，使用GUC参数enable_user_metric_persistent控制是否进行资源池监控数据持久化，使用GUC参数user_metric_retention_time控制资源池监控数据老化。
资源池监控的资源包含：快慢车道作业运行和排队信息，CPU、内存以及逻辑IO资源监控信息。涉及的监控视图和历史表如下：
- 资源池实时运行信息监控视图(单CN)：[GS_RESPOOL_RUNTIME_INFO](https://support.huaweicloud.com/devg-911-dws/dws_04_0976.html)。
- 资源池实时运行信息监控视图(所有CN)：[PGXC_RESPOOL_RUNTIME_INFO](https://support.huaweicloud.com/devg-911-dws/dws_04_0980.html)。
- 资源池实时资源监控视图(单CN)：[GS_RESPOOL_RESOURCE_INFO](https://support.huaweicloud.com/devg-911-dws/dws_04_0977.html)。
- 资源池实时资源监控视图(所有CN)：[PGXC_RESPOOL_RESOURCE_INFO](https://support.huaweicloud.com/devg-911-dws/dws_04_0981.html)。
- 资源池历史资源监控表(单CN)：[GS_RESPOOL_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-911-dws/dws_04_0975.html)。
- 资源池历史资源监控视图(所有CN)：[PGXC_RESPOOL_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-911-dws/dws_04_0982.html)。
![](https://support.huaweicloud.com/devg-911-dws/public_sys-resources/note_3.0-zh-cn.png)
- 资源池监控可以同时监控快慢车道所有作业的CPU、IO和内存使用情况，不再受限于仅监控慢车道作业。
- 当前快车道作业内存和CPU不受控，在快车道运行作业占用资源较多情况下，可能出现已用资源大于资源限制的情况。
- DN资源池监控视图中，IO、内存和CPU显示的是本DN上资源池资源使用和资源限制信息。
- CN资源池监控视图中，IO、内存和CPU显示的是集群内所有DN资源池资源使用和资源限制的累积和。
- DN每隔5秒更新一次资源池监控信息，CN每隔5秒从DN收集一次资源池监控信息，因为各实例单独更新/收集资源池监控信息，因此各实例监控信息更新时间可能不一致。
- 辅助线程中每隔30秒自动调用持久化函数，持久化资源池监控数据，正常情况下不需要用户单独调用持久化函数持久化资源池监控数据。
 
#### 操作步骤
- 查询资源池的作业实时运行情况。
  ```
  SELECT * FROM GS_RESPOOL_RUNTIME_INFO;
  ```
  得到的结果视图如下：
  ```
  nodegroup |    rpname    | ref_count | fast_run | fast_wait | slow_run | slow_wait
  -----------+--------------+-----------+----------+-----------+----------+-----------
   vc1       | p2           |        10 |        0 |         0 |        0 |         0
   vc2       | p3           |        10 |        5 |         5 |        0 |         0
   vc2       | p4           |         0 |        0 |         0 |        0 |         0
   vc1       | default_pool |         0 |        0 |         0 |        0 |         0
   vc2       | default_pool |         0 |        0 |         0 |        0 |         0
   vc1       | p1           |        20 |        5 |         5 |        3 |         7
  (6 rows)
  ```
  其中：
  1. ref_count为引用当前资源池信息的作业数，语句从进入管控到结束一直占用该计数；
  
  2. fast_run和slow_run为负载管理记账信息，只有管控(fast_limit/slow_limit大于0)时该值才有效；
  
  3. 该视图仅在CN上有效，持久化信息保存在GS_RESPOOL_RESOURCE_HISTORY中；
  
  4. 各字段说明详见[GS_RESPOOL_RUNTIME_INFO](https://support.huaweicloud.com/devg-911-dws/dws_04_0976.html)。
   
- 查询资源池的资源限额和资源实时使用情况。
  ```
  SELECT * FROM GS_RESPOOL_RESOURCE_INFO;
  ```
  得到的结果视图如下：
  ```
  nodegroup |    rpname    |       cgroup        | ref_count | fast_run | fast_wait | fast_limit | slow_run | slow_wait | slow_limit | used_cpu | cpu_limit | used_mem | estimate_mem | mem_limit |read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed
  -----------+--------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------
   vc1       | p2           | DefaultClass:Rush   |        10 |        0 |         0 |         -1 |        0 |         0 |         10 |     9.97 |        48 |       20 |            0 |     11555 |          8 |         2880 |           1 |          360 |          1 |         589 |          0 |          0
   vc2       | p3           | DefaultClass:Rush   |        10 |        5 |         5 |          5 |        0 |         0 |         10 |     4.98 |        48 |       11 |            0 |     11555 |          0 |          848 |           0 |          106 |          0 |         173 |          0 |          0
   vc2       | p4           | DefaultClass:Rush   |         0 |        0 |         0 |         -1 |        0 |         0 |         10 |        0 |        48 |        0 |            0 |     11555 |          0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
   vc1       | default_pool | DefaultClass:Medium |         0 |        0 |         0 |         -1 |        0 |         0 |         -1 |        0 |        48 |        0 |            0 |     11555 |          0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
   vc2       | default_pool | DefaultClass:Medium |         0 |        0 |         0 |         -1 |        0 |         0 |         -1 |        0 |        48 |        0 |            0 |     11555 |          0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
   vc1       | p1           | DefaultClass:Rush   |        20 |        5 |         5 |          5 |        3 |         7 |          3 |     7.98 |        48 |       16 |          768 |     11555 |          8 |         2656 |           1 |          332 |          1 |         543 |          0 |          0
  (6 rows)
  ```
  1. 该视图在CN和DN上均有效，DN上CPU、内存和IO为本DN资源消耗情况，CN上CPU、内存和IO为集群内所有DN上资源消耗的累加和；
  
  2. estimate_mem仅在动态负载管理情况下CN上有效，显示资源池估算内存记账情况；
  
  3. IO监控信息仅在enable_logical_io_statistics开启时才会记录；
  
  4. 各字段说明详见[GS_RESPOOL_RESOURCE_INFO](https://support.huaweicloud.com/devg-911-dws/dws_04_0977.html)。
   

- 查询资源池的资源限额和资源历史使用情况。
  ```
  SELECT * FROM GS_RESPOOL_RESOURCE_HISTORY ORDER BY timestamp DESC;
  ```
  得到的结果视图如下：
  ```
  timestamp           |  nodegroup   |    rpname    |       cgroup        | ref_count | fast_run | fast_wait | fast_limit | slow_run | slow_wait | slow_limit | used_cpu | cpu_limit | used_mem | estimate_mem | mem_limit | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed
  -------------------------------+--------------+--------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------
   2022-03-04 09:41:57.53739+08  | vc1          | p2           | DefaultClass:Rush   |        10 |        0 |         0 |         -1 |        0 |         0 |         10 |     9.97 |        48 |   20 |            0 |     11555 |           0 |         2320 |           0 |          290 |          0 |         474 |          0 |          0
   2022-03-04 09:41:57.53739+08  | vc1          | p1           | DefaultClass:Rush   |        20 |        5 |         5 |          5 |        3 |         7 |          3 |     7.98 |        48 |   16 |          768 |     11555 |           0 |         1896 |           0 |          237 |          0 |         387 |          0 |          0
   2022-03-04 09:41:57.53739+08  | vc2          | default_pool | DefaultClass:Medium |         0 |        0 |         0 |         -1 |        0 |         0 |         -1 |        0 |        48 |    0 |            0 |     11555 |           0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
   2022-03-04 09:41:57.53739+08  | vc1          | default_pool | DefaultClass:Medium |         0 |        0 |         0 |         -1 |        0 |         0 |         -1 |        0 |        48 |    0 |            0 |     11555 |           0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
   2022-03-04 09:41:57.53739+08  | vc2          | p4           | DefaultClass:Rush   |         0 |        0 |         0 |         -1 |        0 |         0 |         10 |        0 |        48 |    0 |            0 |     11555 |           0 |            0 |           0 |            0 |          0 |           0 |          0 |          0
   2022-03-04 09:41:57.53739+08  | vc2          | p3           | DefaultClass:Rush   |        10 |        5 |         5 |          5 |        0 |         0 |         10 |     4.99 |        48 |   11 |            0 |     11555 |           0 |          880 |           0 |          110 |          0 |         180 |          0 |          0
   2022-03-04 09:41:27.335234+08 | vc2          | p3           | DefaultClass:Rush   |        10 |        5 |         5 |          5 |        0 |         0 |         10 |     4.98 |        48 |   11 |            0 |     11555 |           0 |          856 |           0 |          107 |          0 |         175 |          0 |          0
  ```
  1. 该监控信息来自资源池监控历史表，enable_user_metric_persistent开启时每30秒记录一次；
  
  2. 该表数据保存时间由GUC参数user_metric_retention_time控制；
  
  3. 各字段说明详见[GS_RESPOOL_RESOURCE_HISTORY](https://support.huaweicloud.com/devg-911-dws/dws_04_0975.html)。
   
 
