[问题描述]: 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/
查看/sys/fs/cgroup目录下,也无cpu、memory、blkio等目录 查看dmesg日志,提示不支持 [1115808.466300] cgroup2: Unknown parameter 'memory'
Anolis OS 23默认使用的是cgroupv2,是不是使用方式有所变更?
(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.
这里面其实是有2个问题的: 1. cpu、memory、blkio等多个cgroup开机默认是自动挂载的,实际上却没有挂载 2. 手动挂载memory cgroup也挂载不上
cgroup v2与cgroup v1使用上有较大区别,上述这些问题都是预期中的失败。 参考https://docs.kernel.org/admin-guide/cgroup-v2.html 查看cgroup v2
问题描述中的报错都是cgroup v2预期中的,请参考相关手册进行操作。