ubuntu-16.04-测试cgroup-v2-io-隔离
ubuntu 16.04 测试cgroup v2 io 隔离
cgroup v1不支持buffer write io 限制,cgroup v2由于采用unified 层级设计,mem子系统和blk子系统联动,可以准确追踪buffer write时page 的cgroup属主,因而可以实现buffer write io 限制。但ubuntu 16.04默认带的cgroup v1,需要手动开启cgroup v2。开启和测试cgroup v2步骤:
(1)在/etc/default/grub文件修改系统启动cmdline,末尾添加cgroup_no_v1=all
(2)更新grub,使生效
update-grub
(3)重启机器,/sys/fs/cgroup目录cgroup v1子系统就不会挂载了
(4)挂载tmpfs文件系统
mount -n -t tmpfs -o nosuid,nodev,noexec none /mnt/v2
cgroup挂载点必须为tmpfs。
(5)tmpfs下挂载cgroup v2文件系统
mount -t cgroup2 -o nosuid,nodev,noexec none /mnt/v2
(6)根cgroup挂载io 和mem两个子系统,不然buffer write 限制不能成功
echo “+io +memory” > /mnt/v2/cgroup.subtree_control
(7) 创建测试子cgroup
cd /mnt/v2/;mkdir test;cd test;
(8) 配置资源限制参数
echo “259:0 wbps=1048576” > io.max
(9) dd if=/dev/zero of=test.file bs=1M count=2048
(10) echo 7383 > cgroup.proc
(11)iostat -d -x 1