
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