GBase 8a MPP Cluster资源管理功能可以对SELECT和DML等受控SQL在运行过程中使用的CPU、内存、I/O和磁盘空间等资源进行合理管控,以达到资源合理利用,系统稳定运行的要求。
GBase 8a MPP Cluster资源管理有Consumer Group(资源消费组)、Resource Pool(资源池)、Resource Plan(资源计划)、Resource Directive(资源指令)与User(资源消费用户)组成,这些对象均可以在系统表中检索到相关信息。
1. User
集群用户,添加至资源消费组后受控于资源池。
创建语法:CREATE USER user [IDENTIFIED BY [PASSWORD] [password]]
创建用户后可以在gbase.user表中查询相关信息。
gbase.user表具体内容如下
Host | 用于访问数据库的hostname |
User | 用于访问数据库的用户名 |
Password | 用于访问数据库的密码 |
Default_vc | |
Select_priv | select语句的执行权限 |
Insert_priv | insert的权限 |
Update_priv | update的权限 |
Delete_priv | delete语句的执行权限 |
Create_priv | create table的权限 |
Drop_priv | drop table的权限 |
Reload_priv | 使用flush的权限 |
Shutdown_priv | shutdown权限 |
Process_priv | show processlist的权限 |
File_priv | 使用select...into file的权限 |
Grant_priv | 管理权限的权限 |
References_priv | |
Index_priv | create index和drop index的权限 |
Alter_priv | Alter权限 |
Show_db_priv | show databases的权限 |
Super_priv | |
Create_tmp_table_priv | 创建temporary table权限 |
Lock_tables_priv | 允许在有select权限的表上使用 lock tables |
Execute_priv | 执行存储过程和函数的权限 |
Repl_slave_priv | |
Unmask_priv | |
Create_view_priv | 是否允许创建过程及函数 |
Show_view_priv | 使用show create view的权限 |
Create_routine_priv | 创建存储过程和函数的权限 |
Alter_routine_priv | 是否允许alter 过程及函数 |
Create_user_priv | create user, rename user, drop user, revoke all privileges,只能使用于global级别 |
Event_priv | event权限 |
Trigger_priv | 触发器使用权限 |
ssl_type | |
ssl_cipher | |
x509_issuer | |
x509_subject | |
max_questions | 用户每小时最多query次数 |
max_updates | 用户每小时最多updates次数 |
max_connections | 用户每小时最多连接次数 |
max_user_connections | 用户同时连接的session数 |
max_cpus | 用户使用最大cpu核数 |
max_memories | 用户使用的最大memories |
max_tmp_space | 用户使用的最大临时空间 |
resource_group | 用户资源组,控制cpu,memory等 |
task_priority | 用户优先级 |
user_limit_storage_size | 存储容量上限 |
user_storage_size | 当前存储容量 |
uid | |
plugin | |
Auth_string |
2. Consumer Group
Consumer Group为资源消费组,用户可根据具体业务资源使用情况将集群使用者分为不同的类别组,组内成员资源消费行为一致。
创建语法:CREATE CONSUMER GROUP [vc_name.]<group_name>[COMMENT=’comment’];
创建资源消费组后可在系统表gbase.consumer_group中检索到相关信息
gbase.consumer_group表具体内容如下
consumer_group_id | 消费组ID |
consumer_group_name | 消费组名称 |
comment | 注释信息 |
Vc_id | 虚拟集群ID |
用户添加至资源消费组语法:alter consumer group [vc_name.]<group_name> add user <user_name>;
将用户添加至资源消费组后可在系统表gbase.consumer_group_user中检索到相关信息
gbase.consumer_group_user表具体内容如下
consumer_group_id | 消费组ID |
user_name | 用户名称 |
3. Resource Pool
资源池为集群任务执行过程中的资源供给者和管理者,分为静态资源池和动态资源池两种,静态资源池为资源供给者,动态资源池为资源管理者,约束任务对资源的使用。
创建语法:CREATE RESOURCE POOL [vc_name.]<resource_pool_name> (pool_attribute = value[,…]) TYPE [static|dynamic [BASE ON <parent_pool_name>];
其中,pool_attribute is:
[ priority={1|2|3|4|5|6|7|8 } ]
< cpu_percent=integer >
< max_memory=integer >
< max_temp_diskspace=integer >
< max_disk_space=integer >
< max_disk_writeio= integer >
< max_disk_readio=integer >
[ max_activetask=integer ]
[ task_max_parallel_degree=integer ]
[ task_waiting_timeout=integer ]
[ task_running_timeout=integer ]
创建资源池后可在系统表gbase.resource_pool中检索到相关信息
gbase.resource_pool表具体内容如下
resource_pool_id | 资源池ID |
resource_pool_name | 资源池名称 |
resource_pool_type | 资源池类型(静态/动态) |
parent_resource_pool_id | 父资源池ID |
priority | 资源池优先级 |
max_memory | 内存使用上限 |
max_tmp_table_space | 磁盘临时空间使用上限 |
max_disk_space | 磁盘空间使用上限 |
task_parallel | 任务并发度 |
max_task_number | 最大任务数量 |
cpu_percent | CPU使用上限 |
disk_write_bps | 磁盘写操作IO使用上限 |
disk_read_bps | 磁盘读操作IO使用上限 |
waiting_timeout | 任务等待时长上限 |
running_timeout | 任务运行时长上限 |
Vc_id |
4. Resource Plan
资源计划为按照一定规律规划集群中资源使用的方案,在资源计划中将自愿消费组挂接到合理的资源池中,以保证更有效地利用集群资源。
创建语法:create resource plan [vc_name.]<plan_name> [comment ='comment'];
创建资源计划后可在系统表gbase.resource_plan中检索到相关信息
gbase.resource_plan表具体内容如下
resource_plan_id | 资源计划ID |
resource_plan_name | 资源计划名称 |
comment | 注释信息 |
Vc_id |
5. Resource Directive
资源指令为制定在资源计划中资源消费组与动态资源池的挂接关系。
创建语法:
create resource directive [vc_name.]<directive_name> (
plan_name = 'plan_name',
group_name = 'group_name',
pool_name = 'resource_pool_name',
[comment = 'comment']);
创建资源指令后可以在系统表gbase.resource_plan_directive中查看相关信息。
gbase.resource_plan_directive表具体内容如下
plan_directive_name | 资源计划指令名称 |
resource_plan_id | 资源计划ID |
consumer_group_id | 消费组ID |
resource_pool_id | 资源池ID |
comments | 注释信息 |
Vc_Id |
6. 启动资源管理
启动语法:active resource plan <resource_plan_name> on vc <vc_name>;
启动资源管理后可以在以下系统表查看需要的信息
Information_schema.COORDINATORS_RESOURCE_POOL_USAGE表中可以查询到所有coordinator节点的资源池实时使用情况。
NODE_NAME | 节点名称 |
RESOURCE_POOL_ID | 资源池ID,取值范围同字段类型取值范围 |
RESOURCE_POOL_NAME | 资源池名称 |
PRIORITY | 资源池优先级,取值范围[1,8] |
WAITING_TASKS | 该资源池在集群范围内当前等待任务数,取值范围同字段类型取值范围 |
RUNNING_TASKS | 该资源池在集群范围内当前运行任务数,取值范围同字段类型取值范围 |
VC_ID | |
VC_NAME |
Information_schema.GNODES_RESOURCE_POOL_USAGE表中可以查询到数据节点的资源池实时使用情况。
NODE_NAME | 节点名称 |
VC_ID | |
VC_NAME | |
RESOURCE_POOL_ID | 资源池ID,取值范围同字段类型取值范围 |
RESOURCE_POOL_NAME | 资源池名称 |
PRIORITY | 资源池优先级,取值范围[1,8] |
RUNNING_TASKS | 该资源池在集群范围内当前等待任务数,取值范围同字段类型取值范围 |
WAITING_TASKS | 该资源池在集群范围内当前运行任务数,取值范围同字段类型取值范围 |
CPU_USAGE | cpu使用率(同top命令) |
MEM_USAGE | 内存使用量,取值范围同字段类型取值范围,单位byte |
DISK_USAGE | 磁盘使用量,取值范围同字段类型取值范围,单位byte |
DISK_WRITEIO | 磁盘写IO带宽使用量,取值范围同字段类型取值范围,单位bytes/s |
DISK_READIO | 磁盘读IO带宽使用量,取值范围同字段类型取值范围,单位bytes/s |
Information_schema.COORDINATORS_RESOURCE_POOL_STATUS表中记录集群层的资源池历史使用情况。
NODE_NAME | 节点名称 |
RESOURCE_POOL_ID | 资源池ID号,取值范围同字段类型取值范围 |
RESOURCE_POOL_NAME | 资源池名称 |
PRIORITY | 资源池优先级,取值范围[1,8] |
SERVIED_TASKS | 该资源池在集群范围内已执行任务数,取值范围同字段类型取值范围 |
WAITING_AVG_TIME | 该资源池在集群范围内任务平均等待时间,取值范围同字段类型取值范围,单位为s |
RUNNING_AVG_TIME | 该资源池在集群范围内任务平均运行时间,取值范围同字段类型取值范围,单位为s |
SAMPLE_TIME | 采样时间点 |
VC_ID | |
VC_NAME |
Information_schema.GNODES_RESOURCE_POOL_STATUS表中记录数据节点的资源池历史使用情况。
NODE_NAME | 节点名称 |
VC_ID | |
VC_NAME | |
RESOURCE_POOL_ID | 资源池ID号,取值范围同字段类型取值范围 |
RESOURCE_POOL_NAME | 资源池名称 |
PRIORITY | 资源池优先级,取值范围[1,8] |
SERVIED_TASKS | 该资源池在集群范围内已执行任务数,取值范围同字段类型取值范围 |
WAITING_AVG_TIME | 该资源池在集群范围内任务平均等待时间,取值范围同字段类型取值范围,单位为s |
RUNNING_AVG_TIME | 该资源池在集群范围内任务平均运行时间,取值范围同字段类型取值范围,单位为s |
CPU_USAGE | cpu使用率(同top命令) |
MEM_USAGE | 内存使用量,取值范围同字段类型取值范围,单位byte |
DISK_USAGE | 磁盘使用量,取值范围同字段类型取值范围,单位byte |
DISK_WRITEIO | 磁盘写IO带宽使用量,取值范围同字段类型取值范围,单位bytes/s |
DISK_READIO | 磁盘读IO带宽使用量,取值范围同字段类型取值范围,单位bytes/s |
SAMPLE_TIME | 采样时间点 |
Information_schema.RESOURCE_POOL_EVENTS记录集群层资源池event信息。
NODE_NAME | 节点名称 |
VC_ID | |
VC_NAME | |
RESOURCE_POOL_ID | 资源池ID号,取值范围同字段类型取值范围 |
RESOURCE_POOL_NAME | 资源池名称 |
EVENT_TIME | event发生时间 |
TASK_ID | 任务ID |
STATEMENT | SQL语句 |
EVENT_TYPE | event类型,包括terminate(终止已经开始执行的任务)和reject(终止尚未开始执行的任务) |
EVENT_DESCRIPTION | 发生event的原因描述,等待超时,运行超时,资源不足等 |




