写点什么

想做 DBA,多租户管理你一定要知道这些

发布于: 2021 年 06 月 09 日

摘要:多租户为满足客户混合负载处理需求而生,通过提供两层用户机制,分层资源隔离,满足客户对计算和存储资源的自主控制需求。


本文分享自华为云社区《关于GaussDB(DWS)多租户管理,这些你一定要知道》,原文作者:玛卡巴卡的小点点。

一、多租户的背景及意义


多租户为满足客户混合负载处理需求而生,通过提供两层用户机制,分层资源隔离,满足客户对计算和存储资源的自主控制需求。两级用户分别关联不同的资源池和存储空间,实现多租户下资源分组管理。

二、GaussDB(DWS)的多租户


目前 GaussDB(DWS)的多租户能够进行隔离的资源包括:CPU 资源、内存资源、IO 资源、存储资源。

GaussDB 的多租户通过绑定资源池来实现,具体原理如下图所示:



借助上图说明多租户的管控方式,见往下三、四、五章节。

三、控制组设置


通过设置控制组可以进行以下几方面的资源隔离:

(1)设置 CPU 核数和控制组 CPU 份额,进行 CPU 资源管理;

(2)设置异常规则来对异常作业进行终止或降级;


1、class 控制组

创建名称为“class_a”的子 Class 控制组,CPU 资源配额分别为 Class 的 40%。gs_cgroup -c -S class_a -s 40


2、workload 控制组

创建子 Class 控制组“class_a”下名称为“workload_a1”的 Workload 控制组,CPU 资源配额分别为“class_a”控制组的 20%。

gs_cgroup -c -S class_a -G workload_a1 -g 20


3、异常规则

设置“class_a”下属“workload_a1”的作业阻塞到 1200 秒或执行 2400 秒时执行终止动作。

gs_cgroup -S class_a -G workload_a1 -E "blocktime=1200,elapsedtime=2400"-a


支持的控制组异常规则:



四、资源池设置


通过设置资源池属性可以进行以下几方面的资源隔离:

(1)通过设置 mem_percent、memory_limit 进行内存资源管理;

(2)通过设置 io_limits、io_priority 进行 IO 管控;

(3)通过设置 active_statements、max_dop 进行并发管控;

(4)可以设置指定的控制组,进行 CPU 和异常规则的管理;

(5)设置资源池异常规则;


1、组资源池


创建名称为“resource_pool_a”的组资源池关联到了“class_a”控制组。

CREATE RESOURCE POOL resource_pool_a WITH(control_group='class_a');


2、业务资源池


(1)创建名称为“resource_pool_a1”的业务资源池关联到了“workload_a1”控制组

CREATE RESOURCE POOL resource_pool_a1 WITH(control_group='class_a:workload_a1');


(2)更新一个资源池,其控制组指定为"DefaultClass"组下属的"High" Timeshare Workload 控制组。

ALTER RESOURCE POOL pool1 WITH (CONTROL_GROUP="High");


(3)修改资源池“resource_pool_a1”的内存比例为可用内存大小的 20%,即设置 MEM_PERCEN 的取值为 20。

ALTER RESOURCE POOL resource_pool_a1 WITH (MEM_PERCENT=20);


3、可设置的资源池属性



​4、可设置的资源池异常规则



五、用户设置


通过设置用户属性进行存储空间管控:


1、创建组用户关联组资源池

CREATE USER tenant_a RESOURCE POOL 'resource_pool_a' PASSWORD'Gauss_234';


2、创建业务用户关联业务资源池

CREATE USER tenant_a1 RESOURCE POOL 'resource_pool_a1' USER GROUP'tenant_a' PASSWORD 'Gauss_234';


3、通过设置用户属性(PERM SPACE、TEMP SPACE、SPILL SPACE)可以进行存储空间管控:


(1)修改用户“tenant_space_test”永久表空间限额不受限制。

ALTER USER tenant_space_test PERM SPACE 'unlimited';

(2)修改用户“tenant_space_test”临时表空间限额为 100G。

ALTER USER tenant_space_test TEMP SPACE '100G';

(3)修改用户“tenant_space_test”算子落盘空间限额为 200G。

ALTER USER tenant_space_test SPILL SPACE '200G';

六、总结


上文主要介绍了多租户技术的架构和使用方法,通过租户关联控制组和资源池,多租户的设置有效隔离了 CPU 资源、内存资源、IO 资源和存储资源,提供了有力的混合负载管理能力。


想了解 GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的 PB 级数仓黑科技~


点击关注,第一时间了解华为云新鲜技术~

发布于: 2021 年 06 月 09 日阅读数: 23
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
想做DBA,多租户管理你一定要知道这些