摘要:本文主要着重介绍资源池资源监控以及用户资源监控。

本文分享自华为云社区《GaussDB(DWS)资源监控之用户、队列资源监控》,作者: 一只菜菜鸟。

GaussDB(DWS)资源监控功能包含实例资源监控、内存资源监控、资源池资源监控、查询监控以及用户资源监控,本文主要着重介绍资源池资源监控以及用户资源监控;

多租户

用户是使用数据库系统以及执行业务的主要手段,在GaussDB(DWS)中将用户场景分为两种方案,分别是普通方案以及多租户方案;为了更好的使用GaussDB(DWS)的资源分组管理,建议依托多租户场景构造具体的使用情况;

多租户引入了两级用户机制,分别为组用户以及业务用户;两级用户分别关联不同的资源池以及存储空间;

示例

1、创建组用户关联到组资源池

CREATE USER user_g RESOURCE POOL 'respool_g1' PASSWORD 'Gauss_234';

2、创建业务用户关联到业务资源池

CREATE USER user_1 RESOURCE POOL 'respool_g1' USER GROUP 'user_g' PASSWORD 'Gauss_234';

注:创建业务用户时,业务资源池(resource pool)和组用户(user group)为必选字段;

用户资源监控

用户资源监控中记录所有用户使用资源(内存、CPU核数、存储空间、临时空间、算子落盘以及IO)的实时使用情况,也可以通过查询历史表访问用户资源的历史使用情况;

相关GUC参数:

相关视图/表:

实时视图为: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 | 0 | 0 | 0 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g1_job_2 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_grp_2 | 0 | 5574 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g1_job_1_2 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_2 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_grp_1 | 0 | 5574 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_1 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_4 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g1_job_1_1 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g2_job_1 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_5 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_3 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g2_job_2 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
(13 rows)

历史视图为: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
-------------------+-------------------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------
perfadm | 2022-06-29 14:26:32.063948+08 | 0 | 0 | 0 | 0 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_3 | 2022-06-29 14:26:32.063948+08 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_5 | 2022-06-29 14:26:32.063948+08 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g2_job_1 | 2022-06-29 14:26:32.063948+08 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g1_job_1_1 | 2022-06-29 14:26:32.063948+08 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_4 | 2022-06-29 14:26:32.063948+08 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_1 | 2022-06-29 14:26:32.063948+08 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_grp_1 | 2022-06-29 14:26:32.063948+08 | 0 | 5574 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_2 | 2022-06-29 14:26:32.063948+08 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g1_job_1_2 | 2022-06-29 14:26:32.063948+08 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_grp_2 | 2022-06-29 14:26:32.063948+08 | 0 | 5574 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g2_job_2 | 2022-06-29 14:26:32.063948+08 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g1_job_2 | 2022-06-29 14:26:32.063948+08 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_1 | 2022-06-29 14:26:01.987779+08 | 0 | 27876 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0
user_g2_job_2 | 2022-06-29 14:26:01.987779+08 | 0 | 1113 | 0 | 24 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0

资源池资源监控

多租户场景下,用户关联资源池执行业务,其消耗的资源汇总到其对应的资源池上,可以通过资源池资源监控视图,实时查看其相应数值,以及历史表记录的资源历史使用情况;

相关GUC参数

同用户资源监控相关GUC参数。

相关视图/表

资源池实时信息监控视图:GS_RESPOOL_RUNTIME_INFO

 nodegroup | rpname | ref_count | fast_run | fast_wait | slow_run | slow_wait
-----------+------------------+-----------+----------+-----------+----------+-----------
lc1 | respool_grp_1 | 0 | 0 | 0 | 0 | 0
lc1 | default_pool | 0 | 0 | 0 | 0 | 0
lc1 | respool_g1_job_1 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g1_job_2 | 0 | 0 | 0 | 0 | 0
lc1 | respool_grp_2 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g2_job_1 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g2_job_2 | 0 | 0 | 0 | 0 | 0
lc1 | respool_1 | 0 | 0 | 0 | 0 | 0
lc1 | respool_2 | 0 | 0 | 0 | 0 | 0
lc2 | default_pool | 0 | 0 | 0 | 0 | 0
lc1 | respool_3 | 0 | 0 | 0 | 0 | 0
(11 rows)

资源池实时资源监控视图: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
-----------+------------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------
lc1 | respool_grp_1 | ClassG1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 5574 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g1_job_1 | ClassG1:wg1_1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g1_job_2 | ClassG1:wg1_2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_grp_2 | ClassG2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 5574 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g2_job_1 | ClassG2:wg2_1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_g2_job_2 | ClassG2:wg2_2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_1 | ClassN1:wn1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_2 | ClassN1:wn2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
lc2 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
lc1 | respool_3 | ClassN2:wn3 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
(11 rows)

资源池历史资源监控表:GS_RESPOOL_RESOURCE_HISTORY

           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
-------------------------------+-----------+----------------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------
2022-06-29 14:35:02.262234+08 | lc1 | respool_grp_1 | ClassG1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 5574 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_3 | ClassN2:wn3 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc2 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_2 | ClassN1:wn2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_1 | ClassN1:wn1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_g2_job_2 | ClassG2:wg2_2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_g2_job_1 | ClassG2:wg2_1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_grp_2 | ClassG2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 5574 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_g1_job_2 | ClassG1:wg1_2 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | respool_g1_job_1 | ClassG1:wg1_1 | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 24 | 0 | 0 | 1113 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:35:02.262234+08 | lc1 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 24 | 0 | 0 | 27876 | 0 | 0 | 0 | 0 | 0 | 0
2022-06-29 14:34:31.517585+08 | lc1 | respool_g2_job_1 | ClassG2:wg2_1 | 0 |

点击关注,第一时间了解华为云新鲜技术~

最新文章

  1. React Native:使用 JavaScript 构建原生应用
  2. Android中矢量动画
  3. 【zZ】OpenCV HOGDescriptor 参数图解
  4. 一:c语言(数据类型和运算符)
  5. 【bzoj1367】[Baltic2004]sequence
  6. 在Ubuntu上安装JDK、Ant、Jmeter和Jenkins
  7. Android:去掉默认的标题bar
  8. tomcat 部署脚本
  9. Java基础—ClassLoader的理解
  10. POJ 3034 Whac-a-Mole(DP)
  11. C++拾遗(二)关于变量
  12. java内存模型6-final
  13. 201521123085《Java程序设计》第10周学习总结
  14. sql sever模糊查询和聚合函数
  15. HBase总结 LSM理解
  16. 欢迎使用 MWeb-Test
  17. 云笔记项目-网页端debug功能学习
  18. POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]
  19. PHP中private和public还有protected的区别
  20. VFL使用

热门文章

  1. 拥抱 OpenAPI 3:springdoc-openapi 食用指南
  2. 想写个小说,关于C#的,名字就叫《原Csharp》吧 (第一回 买书未成炁自生 惶惶回屋遇老翁)
  3. 写了个基于 MacOS + iTerm2 自动打开窗口执行命令的工具
  4. 教你用VS code 生成vue-cli代码片段
  5. SQL优化常用的几种方法
  6. nodejs - http.request是否有超时
  7. Redis基础课程讲义
  8. 关于 STrAduts
  9. Solution -「营业」「CF567D」One-Dimensional Battle Ships
  10. ORM框架介绍——什么是ORM框架?