Resource Group 资源组管理介绍
Greenplum在资源管理方面,经历了从资源管理队列到资源管理组的一个升级变化。不同的数据库用户分属于不同的组别,而新的资源管理组可以将资源分配给不同的组别。资源管理组可针对每一个组别,单独设置其特定的CPU、内存和并发限制,这来达到控制不同级别资源的分配和使用的目的。
Resource Group 和 Resource Queue 的对比
资源组和资源队列的主要对比区别有下列表所示:

从中我们可以看出资源组对资源的管理更加细颗粒度。并发控制是基于事务级别,更好保证事务一致性。并且实现了组内内存共享,全局内存共享等多个级别的资源灵活使用。

Resource Group 资源组管理

Greenplum 数据库支持两种类型的资源组:管理角色资源的组,以及管理外部组件(如PL/Container)资源的组。在管理角色资源的组中,对CPU的资源管理使用基于Linux的CGroup,对内存通过vmtracker来进行统计和跟踪。用户还可以使用资源组来管理外部组件(如PL/Container),其使用Linux CGroup来管理组件的总CPU和总内存资源。
主要配置介绍
资源组的参数和限制如下所示:

注意: 不对SET,RESET和SHOW命令执行资源限制。
主要命令介绍
主要相关的创建命令有
1
●
启动资源组
c. 启动资源组选项后,将默认创建2个资源组
-
-
将gp_resource_manager服务器配置参数设置为值"group":
i.gpconfig -s gp_resource_manager
ii.gpconfig -c gp_resource_manager -v "group"
-
重启Greenplum 数据库
-
i. admin_group和default_group:
ii. 例如:

2
●
创建一个资源组
-
-
=# create resource group rg_new with (concurrency=5, cpu_rate_limit=20, memory_limit=30, memory_shared_quota=20, memory_spill_ratio=30);
-
3
●
修改资源组的配置
-
-
=# alter resource group rg _group set memory_spill_ratio 50;
-
=# alter resource group admin_group set memory_limit 70;
-
4
●
将资源组绑定给某一个用户的 SQL
-
-
=# CREATE ROLE r1;
-
=# ALTER ROLE r1 RESOURCE GROUP rg_new;
-
5
●
删除一个资源组
-
a. =# drop resource group rg_new;
事务并发限制介绍
对事务并发限制,指的是资源组内允许的最大并发事务数。每个角色的资源组在逻辑上被划分为固定数量的槽位,也就是并发限制。Greenplum Database以相同的固定百分比为这些插槽分配内存资源。
1. Greenplum Database在资源组达到并发限制后对提交的事务进行排队。当一个正在运行的事务完成时,如果存在足够的内存资源,Greenplum Database从等待队列中取出最早的事务来运行队, 也就是说遵守先进先出的原则(FIFO)。
Greenplum资源组管理详解与实践

本文详细介绍了Greenplum的资源组管理,包括资源组与队列的区别、配置参数、命令操作、事务并发限制、内存管理和CPU管理。资源组提供更细粒度的资源控制,如CPU和内存的分配,并通过并发限制确保事务一致性。内存管理涉及溢出到磁盘的控制,而CPU管理则支持按比例分配或指定核心数。文章还提供了监控和调优建议,帮助优化数据库性能。
最低0.47元/天 解锁文章
628

被折叠的 条评论
为什么被折叠?



