Answers:
Blkio在cgroup中术语代表访问I / O块设备上。它似乎与规范软件开发人员为I / O相关的目的而准备的所有不同方式无关。
它似乎主要针对设备上的I / O ,而不是软件访问设备的方式。在其他方面,它可以限制iops的数量,带宽或权重。似乎blockio目前不支持缓冲写入。在官方文档中:
当前,块I / O子系统不适用于缓冲的写操作。尽管它适用于缓冲读取操作,但它主要针对直接I / O。
如果您看一下Red Hat的Linda Wang和Bob Kozdemba的演示,第20+页,您会发现该图是关于每个VM的设备带宽,而不是关于随机,阻塞,异步I / O。
似乎Red Hat 最近有 工作将其直接实现到virsh中。已公布的上周libvirt的0.9.9。再过几个月,您就可以在自己喜欢的发行版中执行以下操作:
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
您可能要使用ionice,这很不错,但用于IO。
ionice
不是用一个更好的选择blkio
,从cgroup的?它是否提供了OP当前解决方案无法提供的功能?您知道它与异步IO有何关系吗?