我正在学习Cgroup v2。
我运行了这些:
mkdir -p /sys/fs/cgroup/group1
echo $$ > /sys/fs/cgroup/group1/cgroup.procs
echo "8:5 wbps=2097152" > /sys/fs/cgroup/group1/io.max
但是第二个回波命令失败了:
bash: echo: write error: No such device
但我确实有8:5的设备。
# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1970236 0 1970236 0% /dev
tmpfs 400072 1900 398172 1% /run
/dev/sda5 61145932 30195508 27814680 53% /
tmpfs 2000348 0 2000348 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/loop2 63232 63232 0 100% /snap/core20/975
/dev/loop1 56832 56832 0 100% /snap/core18/2066
/dev/loop0 56832 56832 0 100% /snap/core18/2074
/dev/loop3 63232 63232 0 100% /snap/core20/1026
/dev/loop5 66688 66688 0 100% /snap/gtk-common-themes/1515
/dev/loop4 66432 66432 0 100% /snap/gtk-common-themes/1514
/dev/loop6 33152 33152 0 100% /snap/snapd/12398
/dev/loop7 52352 52352 0 100% /snap/snap-store/518
/dev/loop8 52224 52224 0 100% /snap/snap-store/547
/dev/loop9 224256 224256 0 100% /snap/gnome-3-34-1804/72
/dev/loop10 21760 21760 0 100% /snap/bashtop/299
/dev/loop11 33152 33152 0 100% /snap/snapd/12159
/dev/loop12 224256 224256 0 100% /snap/gnome-3-34-1804/66
/dev/loop13 22528 22528 0 100% /snap/bashtop/292
/dev/sda1 523248 4 523244 1% /boot/efi
tmpfs 400068 28 400040 1% /run/user/1000
# ls -l /dev/sda5
brw-rw---- 1 root disk 8, 5 Jul 14 11:26 /dev/sda5
CCD_ 1是具有主8和副5的设备。
我在VMware工作站上使用Ubuntu 20.04,它是一台虚拟机。
那么我为什么会遇到它以及如何解决它呢?
试着运行cat /proc/partitions
,它会给你一个分区列表:
major minor #blocks name
8 0 41943040 sda
8 1 41942016 sda1
对于cgroups,它只支持限制物理设备的IO速度,如果设备是分区,它会报告错误(坦率地说,报告的错误"没有这样的设备"是不准确的(。
源代码可能是这一行:https://github.com/torvalds/linux/blob/master/block/blk-cgroup.c#L600