cgroup v2 io.max 限制未应用

cgroup v2 io.max 限制未应用

我似乎无法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

相关内容