更新时间:2022-08-16 GMT+08:00

用户资源查询

背景信息

在多租户管理的框架下,用户可以实时查询所有用户资源(包括内存,CPU核数,存储空间、临时空间、算子落盘空间和IO)实时使用情况,也可以查询用户资源的历史使用情况。

  • 用户实时资源相关视图/函数为:PG_TOTAL_USER_RESOURCE_INFO、GS_WLM_USER_RESOURCE_INFO;用户历史资源相关表为:GS_WLM_USER_RESOURCE_HISTORY
  • 上述视图、表中,used_cpu数值表示该用户对应资源池的CPU使用情况,且资源池仅记录长查询的CPU资源消耗。
  • 上述视图、表中,IO相关资源统计值仅会统计用户所执行长查询的IO读写数据。
  • 当用户数量较多,集群规模较大时,查询此类实时视图,因CN/DN间实时通信开销,会有一定的网络延时。
  • 用户内存、CPU监控不监控短查询,不监控管理员用户作业。

操作步骤

  • 查询所有用户的资源限额和资源实时使用情况。
    1
    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
    -----------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------
    perfadm               |           0 |        17250 |        0 |         0 |          0 |          -1 |               0 |               -1 |                0 |                -1 |           0 |            0 |           0 |            0 |          0 |           0
    usern                 |           0 |        17250 |        0 |        48 |          0 |          -1 |               0 |               -1 |                0 |                -1 |           0 |            0 |           0 |            0 |          0 |           0
    userg                 |          34 |        15525 |    23.53 |        48 |          0 |          -1 |               0 |               -1 |        814955731 |                -1 |     6111952 |      1145864 |      763994 |       143233 |      42678 |        8001
    userg1                |          34 |        13972 |    23.53 |        48 |          0 |          -1 |               0 |               -1 |        814972419 |                -1 |     6111952 |      1145864 |      763994 |       143233 |      42710 |        8007
    (4 rows)

    其中,IO资源监控字段(read_kbytes、write_kbytes、read_counts、write_counts、read_speed和write_speed)需要在GUC参数enable_user_metric_persistent开启时才有监控数据。

    所查各字段说明详见PG_TOTAL_USER_RESOURCE_INFO

  • 查询具体某个用户的资源限额和资源实时使用情况。
    1
    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
    --------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------
    16407 |           18 |        1655 |        6 |         19 |          13787176 |          -1 |               0 |               -1 |                0 |                -1 |           0 |            0 |           0 |            0 |          0 |           0
    (1 row)
  • 查询所有用户的资源限额和资源历史使用情况。
    1
    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
    -----------------------+-------------------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+-------------+-------------
    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
    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
    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

    对于系统表GS_WLM_USER_RESOURCE_HISTORY,仅当GUC参数enable_user_metric_persistent开启时,才会定期将视图PG_TOTAL_USER_RESOURCE_INFO中的数据保存到历史表中。

    所查各字段说明详见GS_WLM_USER_RESOURCE_HISTORY

  • 查询具体某个用户的IO管控资源实时使用情况(视图中的数值并非表示IO读写实际值,而是代表相应的IO管控资源使用情况)。
    1
    SELECT * FROM pg_user_iostat('username');
    

    查询结果如下:

     userid | min_curr_iops | max_curr_iops | min_peak_iops | max_peak_iops | io_limits | io_priority
     -------+---------------+---------------+---------------+---------------+-----------+------------- 
         10 |             0 |             0 |             0 |             0 |         0 | None
    (1 row)