集群性能优化之资源管理

本文介绍了GBase 8a MPP Cluster集群的资源管理,包括配置原则、集群相关命令,以解决资源抢占、优先级管理等问题。通过设置用户优先级、资源组、查询并行度等,实现资源的合理分配和任务调度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资源管理

GBase 8a MPP Cluster 集群所面临的集群规模、数据量、SQL 复杂度越来越大,虽

然通过加强数据的合理分布、集群查询计划的合理调度、硬件资源的扩展等手段解

决一部分资源(CPUNETMEMORYDISK IO 等)瓶颈问题,但依然面临如下

挑战:

1. 系统资源不受控情况下,所有 SQL 执行都会抢占资源,这样会造成系统的不

稳定;

2. 系统资源被一条低优先级的 SQL 大量占用,导致高优先级 SQL 无法按时完成;

3. 复杂 SQL 在集群中往往会分多步执行,在并发情况下,同一 SQL 的任务会受

资源限制,无法保证在所有节点间同步完成。 

配置原则

资源管理要解决的问题是:

1. 系统资源能够按照策略分配使用;

2. 任务的执行要有优先级管理;

3. 复杂(多步)任务在集群中要有统一的管理策略(包括:资源分配、优先级、

执行顺序等)。 

集群相关命令

1. 用户优先级设定

l 语法 

priority_value 的取值范围为 0123 对应最小优先级,低优先级、中优先

级和高优先级,缺省为中优先级 2

l 权限要求

grant 权限的用户,推荐用户:root

l 示例:

2. 用户资源组设定

l 语法

 

group_value 的取值范围为 0-150 组为缺省组。

l 权限要求

grant 权限的用户,推荐用户: root

l 示例

 

3. 查询并行度设定

l 语法

max_cpus_used_value 的取值范围为大于 0 的整数,该参数决定查询的并行度,

推荐值为用户所在资源组的可用 CPU 数目。

l 权限要求

grant 权限的用户,推荐用户: root

l 示例

 

4. 用户优先级与任务调度配重设定

l 语法

 

l 示例 

weight_value 取值按高、中、低、最小划分,具体范围如下:

高: 80 - 100

中: 60 - 80

低: 40 - 60

最小:20 - 40

l 权限要求

set 权限用户

l 使用上述语句配重值不会持久化,即 gnode 重新启动后会丢失。

要是需要持久化则需要在执行该语句之前先执行

set gbase_global_variable_persistent = 1

执行该语句后执行

set gbase_global_variable_persistent = 0

l 配重参数可控制 cpu.shares blkio.weight 参数,具体可参考下表:

表:参数说明 

5. 显示优先级状态

l 语法

 

l 显示

Ø node_name:集群节点名称。

Ø group:资源组编号。

Ø priority:优先级编号。

Ø priority_weight:优先级配重。

Ø status:优先级开启状态 ON/OFF

Ø description:优先级控制参数描述。

l 权限要求

show 权限用户。

l 示例

第一步 需要配置 cgconfig.conf 文件。在配置文件中为资源组 01 进行设置。

第二步 启动 cgconfig 服务。

第三步 重启 gcware# gcluster_service gcware restart

完成以上配置操作后,再执行下面示例的命令,01 两个控制组的优先级将

为开启状态。

示例

l 示例 1:查看集群全部节点优先级状态。 

l 示例 2:查看 node1 节点的优先级状态信息。

 

l 示例 3:查看状态为 ON 的优先级信息。

l 示例 4:关闭 node1 节点 cgroup 配置服务(service cgconfig stop)。

 

l 示例 5:重新开启 node1 cgroup 配置服务(service cgconfig start)。

6. 配置优先级队列相关参数

通过在 gcluster(/opt/gcluster/config/gbase_8a_gcluster.cnf) gnode(/opt/gnode/co

nfig/gbase_8a_gbase.cnf)的配置文件中修改下面几个参数值来完成优先级队列

的配置:

l gbase_use_priority_queue:参数设置为 0,表示关闭优先级队列;设置为 1

表示开启优先级队列;

l _gbase_priority_total_tasks:参数表示最大并行运行查询任务数目,包括

DML 的查询部分,本参数最大值不能超过 128,缺省为本地 CPU 核数 2 倍;

l _gbase_priority_tasks:参数表示每个优先级队列可容纳最大任务数目(即

可参加调度的数目),未能进入队列任务将阻塞等待,本参数最大值不能超

64,缺省为本地 CPU 核数;

l gbase_use_res_ctrl_group:本参数决定是不是启用资源控制组挂接。参数

设置为 0,表示不开启资源控制组挂接,缺省设置为不开启状态;设置其

他值为开启资源控制组挂接。

7. 指定查询 SQL 优先级

资源组用户 Session 使 hint ( 格式为

/*+PRIORITY(‗priority_value‘)*/), 决定该 SQL 运行级别(即对应的优先级),

本命令只限于查询 SQL

l 语法

l 权限要求

createinsertdropselect 权限的用户。 

优先级设定只能小于或等于该用户优先级别,设置错误会恢复到用户优先级,并报出警告

―can not upgrade to priority X‖X 是执行用户的优先级)。

l 示例

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值