当前位置:网站首页>数据库资源负载管理(上篇)
数据库资源负载管理(上篇)
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
边栏推荐
- 容易让单片机程序跑飞的原因
- 【创建型模式】工厂方法模式
- Number system conversion (function)
- Exporting data using mysqldump
- [creation mode] prototype mode
- Analysis on the architecture of distributed systems - transaction and isolation level (multi object, multi operation) Part 2
- 从内核代码了解SQL如何解析
- 见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究
- 03 _ Transaction isolation: why can't I see it after you change it?
- 了解下openGauss的密态支持函数/存储过程
猜你喜欢

企业开发如何写出优雅的二级分类【美团小案例】

19. insertion, deletion and pruning of binary search tree

Mysql(九)Your password has expired. To log in you must change it using a client that supports expired
![[azure application service] nodejs express + msal realizes the authentication experiment of API Application token authentication (AAD oauth2 idtoken) -- passport authenticate()](/img/11/7262211654680512dae0a9a696740e.png)
[azure application service] nodejs express + msal realizes the authentication experiment of API Application token authentication (AAD oauth2 idtoken) -- passport authenticate()

Let me tell you the benefits of code refactoring

拿到20K我用了5年,面了所有大厂,这些高频面试问题都帮你们划出来啦
![Introduction to thread practice [hard core careful entry!]](/img/1c/1f6422ba8fbeeb1c094ba7b1da2b78.png)
Introduction to thread practice [hard core careful entry!]
[mysql_12] MySQL data types

Learnopongl notes (IV) - Advanced OpenGL II

Find combination number (function)
随机推荐
MySQL用户权限总结【用户授权必会】
openGauss数据库ODBC环境连接配置(Windows)
Charles自动保存响应数据
从内核代码了解SQL如何解析
Shuttle -- hero component
File is in use and cannot be renamed solution
Social software soul withdraws its IPO application: Tencent is a major shareholder
[creation mode] abstract factory mode
03 _ 事务隔离:为什么你改了我还看不见?
将配置导出到FTP或TFTP服务器
[azure application service] nodejs express + msal realizes the authentication experiment of API Application token authentication (AAD oauth2 idtoken) -- passport authenticate('oauth-bearer', {session:
Charles automatically saves response data
Number system conversion (function)
【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate()
Introduction and use of etcd
Shutter-- page Jump animation
【0006】title、關鍵字及頁面描述
【创建型模式】抽象工厂模式
Learn more about and use ThreadLocal
uniapp开发微信小程序,从构建到上线