Gauss资源负载管理(资源池、控制组)

举报
张谱继 发表于 2025/03/27 17:41:24 2025/03/27
【摘要】 管理模式介绍资源管理通过用户绑定Resource Pool管理,其中内存、连接、并发、IO都是通过参数直接设置是限额模式并且不支持超分,CPU通过Cgroup控制,可以是配额或者限额两种模式1.模式1:共享配额,CPU满负载竞争时,按照配额比例进行CPU抢占2.模式2:专属限额,通过–fixed参数时,会固定CPU核数。markdown mermaid流程图画法N:1N:1参数参数参数Us...

管理模式介绍

资源管理通过用户绑定Resource Pool管理,其中内存、连接、并发、IO都是通过参数直接设置,并且限额模式,不支持超分,CPU通过Cgroup控制,可以是配额或者限额两种模式,统一层级的百分比配置不能超过100%
1.模式1:共享配额,CPU满负载竞争时,按照配额比例进行CPU抢占
2.模式2:专属限额,通过–fixed参数时,会固定CPU核数。
官网:GaussDB(DWS)资源负载管理
详解GaussDB(DWS)的CPU资源隔离管控能力
markdown mermaid流程图画法

N:1
N:1
参数
参数
参数
User
Resource Pool
CGroup
内存
连接&并发
IO

Cgroup下分Class Cgroup以及Workload Cgroup,正常应该使用Workload Cgroup绑定到资源池

相关SQL

创建资源池、User绑定资源池

create resource pool resource_pool_1 with(
	control_group='class_test:wl_test1', 
	max_dynamic_memory='1GB', 
	max_shared_memory='1GB', 
	io_limits=0, 
	io_priority="High", 
	max_connections=-1,
	max_concurrency=-1);
create user xxx WITH PASSWORD 'xxx'  RESOURCE POOL '{poolname}' USER GROUP  '{groupname}' ;
alter user xxx resource pool '{poolname}';

Cgroup CPU使用情况

select * from gs_wlm_respool_cpu_info() order by respool_name;--查看cpu实时使用状态
select * from gs_wlm_cgroup_info order by cgroup_name,priority;--重点看下,实时的CPU使用情况 来源:pg_stat_get_cgroup_info()
select * from gs_all_control_group_info order by decode(classgid,0,gid,classgid),gid ;--获取系统中所有控制组的配置信息,主要是看层次结构和CPU分配情况  来源:gs_all_control_group_info() 

select rolname ,
(select t.shares from gs_all_control_group_info t where t.name=split_part(c.control_group,':',1) and classgid=0) class_shares ,
(select t.shares from gs_all_control_group_info t where t.class=split_part(c.control_group,':',1) and workload=split_part(c.control_group,':',2)) workload_shares
,c.*from pg_authid a,gs_wlm_respool_cpu_info() c where rolrespool=respool_name
and respool_name<>'default_pool'
and exists(select 1 from pg_stat_activity where usename=rolname and state<>'idle') order by control_group,rolname;

多用户间,使用的resource pool、 cgroup 、绑定cpu、使用率

select rolname ,now(),(select array_agg(a) from (select query_start  a from pg_stat_activity where usename=rolname and state<>'idle' order by query_start)) as run_time,
(select t.shares from gs_all_control_group_info t where t.name=split_part(c.control_group,':',1) and classgid=0) class_shares ,
(select t.shares from gs_all_control_group_info t where t.class=split_part(c.control_group,':',1) and workload=split_part(c.control_group,':',2)) workload_shares
,c.*from pg_authid a,gs_wlm_respool_cpu_info() c where rolrespool=respool_name
and respool_name<>'default_pool'
and exists(select 1 from pg_stat_activity where usename=rolname and state<>'idle') order by control_group,rolname;

User、Resource Pool 查看用户以及资源池信息

select oid,* from pg_resource_pool;--查看当前数据库实例中所有的资源池信息
select * from gs_control_group_info('resource_pool_2');---查看某个资源池关联的控制组信息
select rolname ,rolrespool ,*from pg_authid where rolrespool like 'resource_pool%' or rolname = 'rolename';;--查看资源池被哪个用户绑定,底层表
select * from pg_user where respool like '%';---查看某一用户所绑定的资源池、存储空间(perm、temp、spill)限制 *******-;
select * from gs_wlm_user_info;--•重点看下

查看资源池连接、动态内存、静态内存、IO使用信息

select * from dbe_perf.wlm_user_resource_runtime;--不是实时的???
select * from pg_total_user_resource_info;--_total_user_resource_info视图显示所有用户的资源使用情况,需要使用管理员用户进行查询  下一层是通过函数 gs_wlm_get_all_user_resource_info,函数是通过gs_wlm_user_resource_info()
select * from gs_wlm_user_resource_info('test_2c')
select * from gs_wlm_respool_connection_info() order by respool_name;--查看连接使用情况
select * from gs_wlm_respool_memory_info() order by respool_name;--查看内存使用状态
select * from gs_wlm_respool_io_info() order by respool_name;--查看IO使用 状态
select * from gs_wlm_user_space_info() order by user_name;--查询用户的存储空间资源限额和资源使用情

线程池状态

select * from threadpool_status() ;
select * from dbe_perf.global_threadpool_status;
select * from dbe_perf.local_threadpool_status;
select * from pg_resource_pool;
select * from pg_os_threads where pid=139657859786496;
select * from pg_thread_wait_status where tid=139657859786496;
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。