数据库资源负载管理(上篇)

资源负载管理概述

功能描述

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/gaussdb/blog/5516589

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。