当前位置:网站首页>数据库资源负载管理(上篇)
数据库资源负载管理(上篇)
2022-06-11 15:36:00 【Gauss松鼠会】
资源负载管理概述
功能描述
openGauss提供了资源负载管理手段,来均衡任务对系统资源的利用。
相关概念
资源管理
openGauss对于系统资源的管理范围包含CPU资源、内存资源、IO资源和存储资源。通过对系统的资源进行合理的分配,避免发生资源的不合理占用导致系统运行效率下降或者引发系统运行问题。
控制组
控制组(Cgroups)是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如:CPU、内存、IO等)的机制。如果一个进程加入了某一个控制组,该控制组对Linux的系统资源都有严格的限制,进程在使用这些资源时,不能超过其最大限制。更多Cgroups的原理介绍,请查看相关操作系统的产品手册。
资源池
资源池(Resource Pool)是openGauss提供的一种配置机制,用于对主机资源(内存、IO)进行划分并提供SQL的并发控制能力。资源池通过绑定Cgroups对资源进行管理。用户通过绑定资源池可以实现对其下作业的资源负载管理。
资源管理准备
资源规划
完成资源负载管理功能配置前,需要先根据业务模型完成租户资源的规划。业务运行一段时间后,可以根据资源的使用情况再进行配置调整。
本章节我们假设某大型企业内的两个部门共用同一套集群,openGauss通过将同一个部门需要使用的系统资源集合划分为系统的一个租户,以此来实现不同部门间的资源隔离,其资源规划如表1所示。
表 1 租户资源规划
租户A
| 参数名称 | 取值样例 |
|---|---|
| 子Class控制组 | class_a |
| Workload控制组 | workload_a1,workload_a2 |
| 组资源池 | resource_pool_a |
| 业务资源池 | resource_pool_a1,resource_pool_a2 |
| 组用户 | tenant_a |
| 业务用户 | tenant_a1,tenant_a2 |
租户B
| 参数名称 | 取值样例 |
|---|---|
| 子Class控制组 | class_b |
| Workload控制组 | workload_b1,workload_b2 |
| 组资源池 | resource_pool_b |
| 业务资源池 | resource_pool_b1,resource_pool_b2 |
| 组用户 | tenant_b |
| 业务用户 | tenant_b1,tenant_b2 |
启动资源负载管理功能
背景信息
使用资源负载管理功能前,需要参考本节完成参数配置。
前提条件
- 在openGauss中,如果需要对系统资源进行管理,用户需要拥有DBA权限。通过执行如下语法查询哪些用户拥有该权限:
openGauss=# SELECT rolname FROM pg_roles WHERE rolsystemadmin = 't';
rolname
---------
omm
Jack
(2 rows)
- 如果想要将一个用户纳入资源负载管理的范围,则此用户必须具有login权限。通过执行如下语法查询哪些用户拥有该权限:
openGauss=# SELECT rolname FROM pg_roles WHERE rolcanlogin = 't';
rolname
---------
omm
(1 row)
须知: 如果一个用户的login权限被取消,那么他的resource pool将会自动修改为default_pool。default_pool的详细介绍请参见表2。
操作步骤
DBA权限用户可以通过如下步骤启动基于资源池的资源负载管理。此处以omm用户为例进行描述。
1、以操作系统用户omm登录openGauss主节点。
2、开启Control Group功能。
gs_guc reload -Z datanode -N all -I all -c "enable_control_group=on"
3、开启基于资源池的资源负载管理功能。
gs_guc set -Z datanode -N all -I all -c "use_workload_manager=on"
4、开启对数据库的常驻后备线程的控制。
gs_guc set -Z datanode -N all -I all -c "enable_backend_control=on"
5、 开启对数据库的常驻后备线程中的autoVacuumWorker线程的控制。
gs_guc set -Z datanode -N all -I all -c "enable_vacuum_control=on"
6、 重启数据库使参数设置生效。
gs_om -t stop && gs_om -t start
边栏推荐
- See from the minute, carve on the details: Exploration of SVG generated vector format website icon (favicon)
- 做自媒体剪辑真的能挣钱吗?
- 06 _ Global lock and table lock: Why are there so many obstacles to adding a field to a table?
- 测试9年,面试华为要薪1万,华为员工:公司没这么低工资的岗
- 我的代码变量名称统一 记录
- 05 _ 深入浅出索引(下)
- 【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate()
- Introduction and use of etcd
- Idea2021.1 installation tutorial
- Oauth2的理解
猜你喜欢

2022.02.28

07 _ 行锁功过:怎么减少行锁对性能的影响?
![[系统安全] 四十二.Powershell恶意代码检测系列 (4)论文总结及抽象语法树(AST)提取](/img/d9/67ad40ba63de8006b67e51b0c82a84.png)
[系统安全] 四十二.Powershell恶意代码检测系列 (4)论文总结及抽象语法树(AST)提取

High number_ Chapter 6 infinite series__ Marklaurin series
![[creation mode] prototype mode](/img/2b/5e6f4f9ca0718221ee1383243b794f.png)
[creation mode] prototype mode

04 _ 深入浅出索引(上)

Interview shock 26: how to stop threads correctly?

Arthas实践操作文档记录

零基础自学软件测试,我花7天时间整理了一套学习路线,希望能帮助到大家..

2022年软件测试的前景如何?需不需要懂代码?
随机推荐
CF662B Graph Coloring题解--zhengjun
How to play seek tiger, which has attracted much attention in the market?
Uniapp develops wechat applet from build to launch
Understanding of oauth2
我的代码变量名称统一 记录
Managing technology debt in a microservice architecture
leetcode 120. 三角形最小路径和
企业开发如何写出优雅的二级分类【美团小案例】
Arthas实践操作文档记录
[系统安全] 四十二.Powershell恶意代码检测系列 (4)论文总结及抽象语法树(AST)提取
实时特征计算平台架构方法论和实践
每日一博 - 微服务权限一二事
从0到1稳稳掌握大厂主流技术,年后涨薪不是必须的吗?
Knowledge of affairs
How to batch insert 100000 pieces of data
线程实战入门【硬核慎入!】
【创建型模式】建造者模式
PHP Apache built-in stress testing tool AB (APACHE bench)
[creation mode] single instance mode
openGauss 多线程架构启动过程详解