设置控制组

    Class控制组为数据库业务运行所在的顶层控制组,数据库实例部署时会自动生成默认子Class控制组“DefaultClass”。DefaultClass的Medium控制组会含有系统触发的作业在运行,该控制组不允许进行资源修改,且运行在该控制组上的作业不受资源管理的控制,所以推荐创建新的子Class及其Workload控制组来设置资源比例。

    已熟悉《工具与命令参考》中“服务端工具 > gs_cgroup”章节和“服务端工具 > gs_ssh”章节的使用。

    创建子Class控制组和Workload控制组

    1. 以操作系统用户omm登录openGauss主节点。

    2. 创建名称为“class_a”和“class_b”的子Class控制组,CPU资源配额分别为Class的40%和20%。

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

      1. gs_ssh -c "gs_cgroup -c -S class_a -G workload_a1 -g 20 "
      1. gs_ssh -c "gs_cgroup -c -S class_a -G workload_a2 -g 60 "
    4. 创建子Class控制组“class_b”下名称为“workload_b1”和“workload_b2”的Workload控制组,CPU资源配额分别为“class_b”控制组的50%和40%。

      1. gs_ssh -c "gs_cgroup -c -S class_b -G workload_b2 -g 40 "

    更新控制组的资源配额

    1. 更新“class_a”控制组的CPU资源配额为30%。

      1. gs_ssh -c "gs_cgroup -u -S class_a -s 30"
    2. 更新“class_a ”下的“workload_a1”的CPU资源配额为“class_a ”的30%。

      1. gs_ssh -c "gs_cgroup -u -S class_a -G workload_a1 -g 30"

    删除控制组

    1. 删除控制组“class_a”。

      以上操作可以删除控制组“class_a”。

    1. 查看配置文件中控制组信息。

        控制组配置信息

        1. gs_cgroup -p
        2. Top Group information is listed:
        3. GID: 0 Type: Top Percent(%): 1000( 50) Name: Root Cores: 0-47
        4. GID: 1 Type: Top Percent(%): 833( 83) Name: Gaussdb:omm Cores: 0-20
        5. GID: 2 Type: Top Percent(%): 333( 40) Name: Backend Cores: 0-20
        6. GID: 3 Type: Top Percent(%): 499( 60) Name: Class Cores: 0-20
        7. Backend Group information is listed:
        8. GID: 4 Type: BAKWD Name: DefaultBackend TopGID: 2 Percent(%): 266(80) Cores: 0-20
        9. GID: 5 Type: BAKWD Name: Vacuum TopGID: 2 Percent(%): 66(20) Cores: 0-20
        10. Class Group information is listed:
        11. GID: 20 Type: CLASS Name: DefaultClass TopGID: 3 Percent(%): 166(20) MaxLevel: 1 RemPCT: 100 Cores: 0-20
        12. GID: 21 Type: CLASS Name: class1 TopGID: 3 Percent(%): 332(40) MaxLevel: 2 RemPCT: 70 Cores: 0-20
        13. Workload Group information is listed:
        14. GID: 86 Type: DEFWD Name: grp1:2 ClsGID: 21 Percent(%): 99(30) WDLevel: 2 Quota(%): 30 Cores: 0-5
        15. Timeshare Group information is listed:
        16. GID: 724 Type: TSWD Name: Low Rate: 1
        17. GID: 727 Type: TSWD Name: Rush Rate: 8
        18. Group Exception information is listed:
        19. GID: 20 Type: EXCEPTION Class: DefaultClass
        20. PENALTY: QualificationTime=1800 CPUSkewPercent=30
        21. GID: 21 Type: EXCEPTION Class: class1
        22. PENALTY: AllCpuTime=100 QualificationTime=2400 CPUSkewPercent=90
        23. GID: 86 Type: EXCEPTION Group: class1:grp1:2
        24. ABORT: BlockTime=1200 ElapsedTime=2400

        上述示例查看到的控制组配置信息如表1所示。

        表 1 控制组配置信息

      1. 查看操作系统中树形结构的控制组信息。

        执行如下命令可以查询控制组树形结构信息。

        1. gs_cgroup -P

        返回信息如下,其中shares代表操作系统中CPU资源的动态资源配额“cpu.shares”的数值,cpus代表操作系统中CPUSET资源的动态资源限额“cpuset.cpus”的数值,指的是该控制组能够使用的核数范围。

        1. 数据库。
        2. 获取系统中所有控制组的配置信息。