配置cgroup

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.2.1社区版
【问题描述】清晰明确描述问题
我的linux版本是redhat8.8,现在我想配置cgroup给oceanbase使用,由于我不太懂cgroup,遇到了以下几个问题:
第一:



如上图,由于我的操作系统已经有/sys/fs/cgroup 目录了,并且挂载到了tmpfs,但是不是挂载到cgroups,那我还要挂载吗还是直接进行下一步,我尝试进行挂载到cgroups,挂载之后/sys/fs/cgroup 目录变为空目录了。

第二:


如果我上一步没有进行挂载,而是使用操作系统默认的挂载,那我这一步就没法创建/sys/fs/cgroup/cpu 子目录了,系统自带的/sys/fs/cgroup 下的这个cpu是个软连接,不是子目录,后面的步骤我没法往下继续做了,因为跟文档完全不一样,越做越乱了

请帮忙给个/sys/cgroup/fs 已存在时的配置cgroup的步骤谢谢

2 个赞

ll /sys/fs/cgroup 看一下目录

2 个赞

2 个赞

仔细看这个文档的说明

2 个赞


直接从第五步开始执行呢

2 个赞

这个我都看到了,他说的是 /sys/fs/cgroup/cpu 目录且目录为空 则忽略此步骤,但是系统默认初始化好的cgroup这个/sys/fs/cgroup/ 下面的cpu是软连接,并且不为空,那我就要执行这一步创建/sys/fs/cgroup/cpu 这个目录,但是已经有这个软连接了,所以没法创建目录了

2 个赞

我也尝试了直接从第五步执行,第五步可以执行,到第六步就不行了,这上面说 ” 暂不支持 cpu、cpuset、cpuacct 三个子系统挂载在不同的目录,如果当前机器这三个子系统挂载在不同的目录,需要先清除挂载信息后,再执行 sudo mount -t cgroup -o cpuset,cpu,cpuacct cpu /sys/fs/cgroup/cpu ”,这个我怕操作后会破坏原来的cgroup配置,所以我不能操作, 然后我现在的 cpuset.cpus 这个文件是在这里(/sys/fs/cgroup/cpuset/cpuset.cpus ),而不是在/sys/fs/cgroup/cpu/cpuset.cpus这里,详情请见下面的图片,所以现在文档上的跟我这个redhat8.8的系统差别太大,我有不能去改系统初始化好的cgroup,因为系统自己的服务还有用到这个cgroup的,我怕改了会出别的问题,现在就卡在这里了

2 个赞

很抱歉,文档描述的不够清楚,后续会对文档进行修正补充
1、/sys/fs/cgroup/cpu已经存在并且已经挂载了说明可能您自己有使用cgroup并挂载了cpu,那么是可以忽略第三第四步的。
2、第五步执行完后到了第六步,如果您的机器cpuset子系统是与cpu,cpuacct分开挂载的(一般ECS机型居多),那么就不需要配置cpuset,也就是第六步的前两条不需要执行,只需要执行第三条
sudo sh -c “echo 1 > /sys/fs/cgroup/cpu/oceanbase/cgroup.clone_children”

2 个赞

好的,谢谢

2 个赞

你好,继续这个问题,再请教下,按您这边的方式我配好了,并进行了测试,是可以的,但是我发现重启机器之后/sys/fs/cgroup/cpu/oceanbase 这个目录没了,也就是说我自己创建的这个oceanbase目录没了,系统自己初始化的cgroup目录都还在,是正常的,请问这个是怎么回事,如果是这样的话,那要是发生机器重启了我还得重新配一次才行

2 个赞

/sys/fs/cgroup/cpu/oceanbase目录不在,但是/sys/fs/cgroup/cpu/下您这边使用的其他cgroup目录还在么?
这个应该是有什么外部脚本在开启启动的时候重新挂载了cgroup
1、可以先看一下ll /sys/fs/cgroup/cpu/,确定一下其他目录或者文件的创建时机,如果是在重启之后,那说明有自启动脚本把cgroup目录重新挂载了
2、可以检查相关的开启启动脚本,或者您其他cgroup任务的启动脚本是否会重新挂载cgroup并创建目录
例如检查systemd的脚本journalctl -b | grep ‘cgroup’,或者cron和rc.local等脚本

2 个赞

谢谢,找到原因了,就是因为cgroup 是linux 内核的一部分,每次linux 重启都会重新配置挂载一次cgroup,所以自己创建的oceanbase目录就没了,我们会在/etc/rc.local 中配置挂载oceanbase的命令,这样每次启动都能自动挂载oceanbase了

3 个赞