GaussDB(DWS) 资源管理系列一:CPU资源管理

举报
玛卡巴卡的小点点 发表于 2021/01/15 14:17:44 2021/01/15
【摘要】 GaussDB(DWS)CPU资源管理简介

一、CPU资源管理背景

        在分布式数据库执行作业时,系统压力可能集中于某些节点或者某些系统资源,导致集群资源不能充分利用,集群性能不能充分发挥。GaussDBDWS)通过资源管理、作业负载管理,优先级调度、资源监控、多租户等方法,解决这些问题,提升集群性能。

        其中影响集群性能得系统资源主要包括内存、CPU、磁盘I/O 、存储空间和网络带宽等,本文主要介绍CPU资源的分配与隔离。

二、CPU资源管理简介

        GaussDB(DWS)的CPU资源管理通过Cgroup实现,Cgrouplinux内核提供的限制和隔离进程组使用物理资源的机制,可以组成层次形式,即控制树。GaussDBDWS)提供gs_cgroup工具,负责创建默认控制组、创建用户自定义控制组、删除用户自定义控制组、更新用户自定义组的资源配额和资源限额、显示控制组配置文件内容、显示控制组树形结构和删除用户的所有控制组。CPU资源管理原理如下图:


三、gs_cgroup使用

        gs_cgroup工具为使用数据库的操作系统用户创建Cgroups配置文件,并且在操作系统中生成用户设定的Cgroups。同时为用户提供增加、删除Cgroups,更新Cgroups资源配额,设定CgroupsCPUIO限额,设定异常处理阈值及相应操作等服务。此工具只负责当前操作系统节点的Cgroups操作,使用时需在各个节点上调用相同命令语句进行统一配置,GaussDBDWS)提供了gs_ssh工具帮助用户在集群各节点上执行相同的命令,例如:

        gs_ssh -c "gs_cgroup -c -S class_a -s 40 "

1、gs_cgroup参数简介

参数

 功能

 -a [--abort]

 对满足设定的异常阈值的作业执行终止动作

 -b pct

 Backend Cgroups占用Top Backend资源的百分比,需同时指定“-B backendname”

 -B name

 Backend Cgroups名称,仅可指定“-u”参数来更新此Cgroups的资源配额。-b percent-B backendname参数共同作用来控制数据库后备线程的资源比例。

 -c

 创建Cgroups并指定其标识

 -d

 删除Cgroups及标识。

 -D mpoint

设置加载Cgroups文件系统的路径,“root”用户或者具有“root”访问权限的用户才可以调用

 -E data

 设定异常阈值,目前阈值包括:blocktimeelapsedtimeallcputimespillsizebroadcastsize以及qualificationtimecpuskewpercent,指定多个阈值时用分隔。

 -h [--help]

 显示命令帮助信息。

 -H

 用户环境中$GAUSSHOME信息。仅用于root用户执行gs_cgroup时,需指定用户中数据库安装程序所在目录。

 -f

 设置Gaussdb控制组使用的核数范围,范围必须是 a-ba的形式。其他控制组可以使用--fixed进行设置核数范围。

 --fixed

 设置控制组使用的核数范围比例占上一层级的百分比或者设置IO资源。

 -g pct

 指定Workload Cgroups的资源占用“Class”Cgroups资源的百分比,需同时指定“-G groupname”参数;用于创建“-c”或更新“-u”Workload Cgroups

 -G name

 指定Workload Cgroups的名称,需同时指定“-S classname”参数来表示该group属于哪个Class Cgroups;可以连同“-c”参数创建新的Cgroups“-d”参数删除此Cgroups“-u”更新此Cgroups的资源配额;需要注意,此名称不可是TimeshareCgroups的默认名称,如“Low”“Medium”“High”“Rush”

 -m

 加载Cgroups文件系统,“root”用户或者具有“root”访问权限的用户才可以调用。

 -M

卸载Cgroups文件系统,“root”用户或者具有“root”访问权限的用户才可以调用。

 -N [--group] name

 可以将组名简写成class:wg

 -p

 显示Cgroups配置文件的信息。

 -P

 显示Cgroups树形结构信息。

 --penalty

 对满足设定的异常阈值的作业执行降级动作,如果没有设定任何操作,则该操作将为默认操作。

 -r data

 仅用于更新I/O资源读数据上限,用于设置“blkio.throttle.read_bps_device”的数值;为字符串类型,该字符串由“major:minor value”构成,其中major为要访问的磁盘的主设备号,minor为要访问的磁盘的次设备号,value为设备每秒读操作次数上限数值,取值范围为0 ~ ULONG_MAX,其中取值0用来初始化此字段为空;需和“-u”参数及Cgroups名称一同使用;如果Class CgroupsWorkload Cgroups的名称同时指定,则只应用到Workload Cgroups

 -R data

 仅用于更新IO资源每秒读操作次数上限,用于设置“blkio.throttle.read_iops_device”的数值;取值信息同“-r”参数;需和“-u”
数及Cgroups名称一同使用;如果Class CgroupsWorkload Cgroups的名称同时指定,则只应用到Workload Cgroups

 --recover

 仅用于回退class控制组和workload控制组的增删改操作,且只能回退一步。

 --revert

 恢复控制组为默认状态。

 --refresh

 刷新控制组状态。

 -s pct

 指定Class Cgroups的资源占用“Top Class”Cgroups资源的百分比,需同时指定“-S classname”参数;用于创建“-c”或更新“-u”Class Cgroups

 -S name

 指定Class group的名称;可以连同“-c”参数创建新的Cgroups“-d”参数删除此Cgroups“-u”更新此Cgroups的资源配

 -t percent

 指定Top CgroupsRootGaussdb:gaussdbaBackendClass Cgroups)占用资源的百分比,需同时指定“-T name”参数

 -T name

 指定Top Cgroups的名称;仅可指定“-u”更新此Cgroups的资源配额;仅“root”用户或者具有“root”访问权限的用户可以更新“Root”Cgroups

 -u

 更新Cgroups

 -U name

操作系统普通用户名;仅“root”用户或者具有“root”访问权限的用户调用时指定。

 -V [--version]

 显示gs_cgroup工具的版本信息。

 -w data

 仅用于更新I/O资源每秒写数据上限,用于设置“blkio.throttle.write_bps_device”的数值。取值信息同“-r”参数,需和“-u”参数及Cgroups名称一同使用。

 -W data

 仅用于更新IO资源每秒写操作次数上限,用于设置“blkio.throttle.write_iops_device”的数值。取值信息同“-r”参数,需和“-u”参数及Cgroups名称一同使用。

2、gs_cgroup常用操作

1 gs_cgroup配置

         gs_cgroup -U user -c -H $GAUSSHOME

2)创建控制组

        gs_cgroup -c -S cls1 -s 40 //创建名为cls1的配额为40%Class控制组

        gs_cgroup -c -S cls1 -G grp1 -g 20 //在Class控制组cls1下创建名为grp1的配额为20%Workload

3)更新控制组

        gs_cgroup -u -S cls1 -s 50 //更新cls1控制组配额为50%

        gs_cgroup -u -S cls1 -G grp1 -g 40 //更新grp1控制组配额为40%

4)删除控制组

        gs_cgroup -d -S cls11 //删除用户组cls11

5)查看控制组信息

        gs_cgroup –P //以树形结构查看控制组信息

        gs_cgroup –p //以表格形式查看控制组信息

6)指定核数

        gs_cgroup -u -S cls1 -s 40 --fixed //指定核数

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。