Bug 2290 - [Anolis 23][5.17内核][ecs]cpu、memory和blkio等子系统设置了开机自动挂载,实际却没有挂载成功,疑似不支持cpu、memory和blkio等cgroup
Summary: [Anolis 23][5.17内核][ecs]cpu、memory和blkio等子系统设置了开机自动挂载,实际却没有挂载成功,疑似不支持cpu、memo...
Status: RESOLVED BYDESIGN
Alias: None
Product: Anolis OS 23
Classification: Anolis OS
Component: Others (show other bugs) Others
Version: unspecified
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: xuchunmei
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-27 14:04 UTC by shanxifanshi
Modified: 2022-10-24 16:08 UTC (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description shanxifanshi alibaba_cloud_group 2022-09-27 14:04:11 UTC
[问题描述]:
cpu、memory和blkio等子系统设置了开机自动挂载,实际却没有挂载成功,疑似不支持cpu、memory和blkio等cgroup,cgroup功能存在问题

测试日志:
从下面的查询结果可以看到所有subsystem的enabled值均为1,说明开机是自动挂载的
# cat /proc/cgroups
#subsys_name    hierarchy       num_cgroups     enabled
cpuset  0       171     1
cpu     1       2       1
cpuacct 0       171     1
blkio   0       171     1
memory  0       171     1
devices 0       171     1
freezer 0       171     1
net_cls 0       171     1
perf_event      0       171     1
net_prio        0       171     1
hugetlb 0       171     1
pids    0       171     1
rdma    0       171     1

lssubsys -M查询当前已经挂载的subsystem时,却没有任何输出

尝试手动挂载memory cgroup,发现挂载失败
mkdir -p /mnt/memory/
# mount -o memory -t cgroup memcg /mnt/memory/
mount: /mnt/memory: memcg already mounted or mount point busy.
       dmesg(1) may have more information after failed mount system call.

[环境信息]:

镜像:
# cat /etc/image-id
image_name="Anolis OS 23.  64 bit"
image_id="anolis_23_x64_20G_alibase_20220704_alpha.vhd"
release_date="20220704172356"

内核信息:
# uname -r
5.17.0-1.an23.x86_64

操作系统信息:
# cat /etc/os-release
NAME="Anolis OS"
VERSION="23"
ID="anolis"
VERSION_ID="23"
PLATFORM_ID="platform:an23"
PRETTY_NAME="Anolis OS 23"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"
BUG_REPORT_URL="https://bugzilla.openanolis.cn/"


[问题发生概率]:必现

[期望结果]:
cpu、memory、blkio等subsystem开机自动挂载


[实际结果]:
cpu、memory、blkio等subsystem开机没有成功挂载,lssubsys -M查询不到任何信息,/sys/fs/cgroup目录下也无相应的目录


[复现步骤]:	
1. cat /proc/cgroups查询开机自动挂载的sussystem
2. lssubsys -M查询当前已经挂载的subsystem
3. 挂载memory cgroup,其他类型cgroup也可以参照此执行
   mkdir -p /mnt/memory/
   mount -o memory -t cgroup memcg /mnt/memory/
Comment 1 shanxifanshi alibaba_cloud_group 2022-09-27 14:18:02 UTC
查看/sys/fs/cgroup目录下,也无cpu、memory、blkio等目录

查看dmesg日志,提示不支持
[1115808.466300] cgroup2: Unknown parameter 'memory'
Comment 2 xuchunmei alibaba_cloud_group 2022-09-27 14:27:34 UTC
Anolis OS 23默认使用的是cgroupv2,是不是使用方式有所变更?
Comment 3 shanxifanshi alibaba_cloud_group 2022-09-27 14:34:30 UTC
(In reply to xuchunmei from comment #2)
> Anolis OS 23默认使用的是cgroupv2,是不是使用方式有所变更?

从查询结果看,机器是同时支持cgroupv1和cgroupv2的,而且/sys/fs/cgroup就是cgroupv2类型,其下没有cpu、memory、blkio等任何目录,而且指定类型cgroupv2手动挂载memory也是失败的

# grep cgroup /proc/filesystems
nodev   cgroup
nodev   cgroup2

# mount -l -t cgroup2
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate,memory_recursiveprot)

# mkdir -p /mnt/memory/

# mount -o memory -t cgroup memcg /mnt/memory/
mount: /mnt/memory: memcg already mounted or mount point busy.
       dmesg(1) may have more information after failed mount system call.

# mount -o memory -t cgroup2 memcg /mnt/memory/
mount: /mnt/memory: wrong fs type, bad option, bad superblock on memcg, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.
Comment 4 shanxifanshi alibaba_cloud_group 2022-09-27 14:43:58 UTC
这里面其实是有2个问题的:
1. cpu、memory、blkio等多个cgroup开机默认是自动挂载的,实际上却没有挂载
2. 手动挂载memory cgroup也挂载不上
Comment 5 xuchunmei alibaba_cloud_group 2022-09-27 15:10:01 UTC
cgroup v2与cgroup v1使用上有较大区别,上述这些问题都是预期中的失败。
参考https://docs.kernel.org/admin-guide/cgroup-v2.html 查看cgroup v2
Comment 6 xuchunmei alibaba_cloud_group 2022-10-24 16:08:02 UTC
问题描述中的报错都是cgroup v2预期中的,请参考相关手册进行操作。