功能描述
openGauss提供了资源负载管理手段,来均衡任务对系统资源的利用。
相关概念
资源管理
openGauss对于系统资源的管理范围包含CPU资源、内存资源、IO资源和存储资源。通过对系统的资源进行合理的分配,避免发生资源的不合理占用导致系统运行效率下降或者引发系统运行问题。
控制组
控制组(Cgroups)是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如:CPU、内存、IO等)的机制。如果一个进程加入了某一个控制组,该控制组对Linux的系统资源都有严格的限制,进程在使用这些资源时,不能超过其最大限制。更多Cgroups的原理介绍,请查看相关操作系统的产品手册。
资源池
资源池(Resource Pool)是openGauss提供的一种配置机制,用于对主机资源(内存、IO)进行划分并提供SQL的并发控制能力。资源池通过绑定Cgroups对资源进行管理。用户通过绑定资源池可以实现对其下作业的资源负载管理。
前提条件
在openGauss中,如果需要对系统资源进行管理,用户需要拥有DBA权限。通过执行如下语法查询哪些用户拥有该权限:
openGauss=# SELECT rolname FROM pg_roles WHERE rolsystemadmin = 't';
rolname
---------
omm
Jack
如果想要将一个用户纳入资源负载管理的范围,则此用户必须具有login权限。通过执行如下语法查询哪些用户拥有该权限:
openGauss=# SELECT rolname FROM pg_roles WHERE rolcanlogin = 't';
rolname
---------
omm
须知: 如果一个用户的login权限被取消,那么他的resource pool将会自动修改为default_pool。default_pool的详细介绍请参见表2。
操作步骤
DBA权限用户可以通过如下步骤启动基于资源池的资源负载管理。此处以omm用户为例进行描述。
以操作系统用户omm登录openGauss主节点。
开启基于资源池的资源负载管理功能。
gs_guc set -N all -I all -c "use_workload_manager=on"
重启数据库使参数设置生效。
gs_om -t stop && gs_om -t start




