cgroup设置问题

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】操作系统内核是4.19版本,按照4.3.1.0的版本设置cgroup时,操作系统/sys/fs/cgroup目录下默认有cpu相关的配置,通知mount显示也挂载了cpuset、cpu,cpuacct子系统,按照文档无法完成cgroup设置。
文档是描述是只有当cpu、cpuset、cpuacct三个子系统都挂载在cpu目录下才生效,但是现在无法将三个子系统合并挂载到cpu目录下,/sys/fs/cgroup目录下有一个cpu符号链接,链接到当前目录下的cpu,cpuacct,且当前目录为只读,无法修改。

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

推荐使用ocp安装部署和运维, ocp 部署的集群自动启动cgroup

顺序执行如下三条命令:
umount /sys/fs/cgroup/cpu,cpuacct
umount /sys/fs/cgroup/cpuset
mount -t cgroup -o cpuset,cpu,cpuacct cpu /sys/fs/cgroup/cpu

昨天尝试过卸载再挂载,挂载的时候回报错。

对于文档有个疑问,之前用ocp部署的集群,observer服务器上的cpu、cpuset、cpuacct子系统也不是按照文档的描述挂载同一个目录下的。但是为什么文档回有以下的要求呢?文档能明确下是cgroup v1和cgroup v2不同版本的操作吗?

是不是在cpu目录下创建oceanbase目录了???

最简单的办法就是重启操作系统,然后应该就可以了。

不能重启的话,你这样操作试试。先把刚刚umount的mount回去

mount -t cgroup -o cpu,cpuacct cgroup /sys/fs/cgroup/cpu
mount -t cgroup -o cpuset cgroup /sys/fs/cgroup/cpuset

然后查看一下现有cgroup,找一找看有没有cpu目录下的cgourp,比如cpu,cpuacct:/oceanbase

lscgroup

如果有的话,把它删了

cgdelete -g cpu,cpuacct:/oceanbase

最后你再重试看看

umount /sys/fs/cgroup/cpu,cpuacct
umount /sys/fs/cgroup/cpuset
mount -t cgroup -o cpuset,cpu,cpuacct cpu /sys/fs/cgroup/cpu

建议使用ocp部署,这个问题目前解决了吗?