我似乎无法io.max
在 Rocky Linux 9 上通过 cgroups v2 应用限制。
设置:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
...
├─nvme0n1p5 259:5 0 444.9G 0 part
│ └─data-data 253:0 0 889.9G 0 lvm /data
...
└─nvme1n1p5 259:12 0 444.9G 0 part
└─data-data 253:0 0 889.9G 0 lvm /data
dd if=/dev/zero of=/data/tmpfile bs=512M count=1
1+0 records in
1+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 0.273822 s, 2.0 GB/s
申请io.max
限额:
cd /sys/fs/cgroup/
mkdir -p mytest/app
echo "+io" > cgroup.subtree_control
echo "+io" > mytest/cgroup.subtree_control
echo $$ > mytest/app/cgroup.procs
echo "253:0 rbps=5000000 wbps=5000000 riops=500 wiops=500" > mytest/app/io.max
测试:
# dd if=/dev/zero of=/data/tmpfile bs=512M count=1
1+0 records in
1+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 0.293168 s, 1.8 GB/s
写入速度不受限制。oflag=direct
没有什么区别。
配置似乎是正确的:
# cat /proc/$$/cgroup
0::/mytest/app
# cat /sys/fs/cgroup/mytest/app/io.max
253:0 rbps=5048576 wbps=5048576 riops=500 wiops=500
有什么想法可能会发生什么吗?
答案1
在我的系统(带有 6.3 内核的 Ubuntu)上运行良好:
cd /sys/fs/cgroup/
mkdir -p mytest/app
echo "+io" > cgroup.subtree_control
echo "+io" > mytest/cgroup.subtree_control
echo "259:0 wbps=1048576" > mytest/app/io.max
echo $$ > mytest/app/cgroup.procs
dd if=/dev/zero of=/dev/nvme0n1 bs=512M count=1
iostat -d 1 -x /dev/nvme0n1
Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz aqu-sz %util
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 50.00 1024.00 206.00 80.47 0.66 20.48 0.00 0.00 0.00 0.00 0.00 0.00 0.03 16.60