Blkio dans la terminologie cgroup signifie l' accès aux E / S sur les périphériques de bloc . Il ne semble pas s'agir de réglementer toutes les différentes manières dont les développeurs de logiciels ont à portée de main à des fins liées aux E / S.
Il semble viser principalement les E / S sur les appareils , pas la façon dont le logiciel a accès aux appareils. Cela peut limiter le nombre d'iops, la bande passante ou un poids avec d'autres processus, entre autres choses. Il semble que l'écriture en mémoire tampon ne soit pas prise en charge par blockio pour le moment. C'est dans la documentation officielle :
Actuellement, le sous-système Block I / O ne fonctionne pas pour les opérations d'écriture en mémoire tampon. Il est principalement destiné aux E / S directes, bien qu'il fonctionne pour les opérations de lecture en mémoire tampon.
Si vous jetez un coup d'œil à cette présentation de Linda Wang et Bob Kozdemba de Red Hat, à la page 20+, vous verrez que le graphique concerne la bande passante du périphérique par VM, pas le hasard vs le blocage vs les E / S asynchrones.
Il semble que Red Hat ait récemment travaillé pour l'implémenter directement dans virsh. Il est sorti la semaine dernière dans libvirt 0.9.9. Dans quelques mois, vous pourrez faire quelque chose comme ça dans votre distribution préférée:
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
ionice
une meilleure alternative que l'utilisationblkio
de cgroups? Fournit-il quelque chose que la solution actuelle du PO ne fournit pas? Savez-vous comment cela se rapporte aux E / S asynchrones?