![如何计算blkio在cgroups中的份额?](https://linux22.com/image/57251/%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97blkio%E5%9C%A8cgroups%E4%B8%AD%E7%9A%84%E4%BB%BD%E9%A2%9D%EF%BC%9F.png)
目前,我正在尝试使用 Debian Wheezy 及其默认内核 3.2.60-1+deb7u3 和 cgroups blkio 控制器来设置测试场景。 blkio.weight 的计算对我不起作用。
我的设置如下,我在 /sys/fs/cgroup 中有一个根 cgroup,其中默认 blkio.weight 为 1000。现在我创建了 2 个子组(/sys/fs/cgroup/grp1 @ blkio.weight:800,/sys /fs/cgroup/grp2 @ blkio.weight:200) 写入同一物理设备上的 2 个不同的 LVM 卷,得到以下 fio 结果:
grp1:
read : io=3276.2MB, bw=1224.8KB/s, iops=400 , runt=2740822msec
write: io=839516KB, bw=313651 B/s, iops=99 , runt=2740822msec
grp2:
read : io=3278.3MB, bw=1123.9KB/s, iops=365 , runt=2987186msec
write: io=837351KB, bw=287041 B/s, iops=91 , runt=2987186msec
但这显然不是80%到20%的份额。另一个问题是:还有一个blkio.weight为1000。这个值是如何使用的?
答案1
这cgroup文档建议使用以下命令刷新所有文件系统缓冲区并释放页面缓存、目录项和索引节点:
~]# 同步
~]# echo 3 > /proc/sys/vm/drop_caches
您可能尚未达到 IOPS 的峰值。您使用的是什么设备?您的设备 400 iops 是正常还是偏低?增加 FIO 中的 io-深度 和 num-jobs,以获得设备的峰值 IOPS。