Blkio na terminologia cgroup significa acesso a E / S em dispositivos de bloco . Não parece ser sobre a regulamentação de todas as diferentes maneiras que os desenvolvedores de software têm em mãos para fins relacionados a E / S.
Parece ser direcionado principalmente à E / S nos dispositivos , não à maneira como o software tem acesso aos dispositivos. Pode limitar o número de Iops, a largura de banda ou um peso com outros processos, em outras coisas. Parece que a gravação em buffer não é suportada pelo blockio no momento. Está na documentação oficial :
Atualmente, o subsistema Block I / O não funciona para operações de gravação em buffer. Ele é direcionado principalmente para E / S direta, embora funcione para operações de leitura em buffer.
Se você der uma olhada nesta apresentação de Linda Wang e Bob Kozdemba, da Red Hat, na página 20+, verá que o gráfico é sobre a largura de banda do dispositivo por VM, não sobre E / S aleatória versus bloqueio versus E / S assíncrona.
Parece que houve um trabalho recente da Red Hat para implementá-lo diretamente no virsh. Foi lançado na semana passada no libvirt 0.9.9. Em alguns meses, você poderá fazer algo assim em sua distribuição favorita:
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
ionice
uma alternativa melhor do que usarblkio
no cgroups? Fornece algo que a solução atual do OP não fornece? Você sabe como isso se relaciona com as E / S assíncronas?