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


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

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

    一、多租户的背景及意义

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

    二、GaussDB(DWS)的多租户

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

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

    https://bbs-img.huaweicloud.com/blogs/img/1617935672492092706.png

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

    三、控制组设置

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

    (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级数仓黑科技~

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

  • 相关阅读:
    常用模块(time,os,sys,collections,random,序列化模块,re)
    python-函数篇
    内置函数——filter和map
    python杂七杂八的用法
    计算机硬件
    操作系统简介
    Django入门
    linux下查看cpu物理个数和逻辑个数
    python反射的妙用
    Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/14866146.html
Copyright © 2020-2023  润新知