Blkio steht in der Gruppenterminologie für den Zugriff auf E / A auf Blockgeräten . Es scheint nicht darum zu gehen, die verschiedenen Möglichkeiten zu regeln, die Softwareentwickler für I / O-Zwecke zur Verfügung haben.
Es scheint hauptsächlich auf E / A auf Geräten ausgerichtet zu sein , nicht auf die Art und Weise, wie Software auf Geräte zugreifen kann. Es kann unter anderem die Anzahl der Iops, die Bandbreite oder die Gewichtung bei anderen Prozessen begrenzen. Es scheint, dass gepuffertes Schreiben derzeit von blockio nicht unterstützt wird. Es ist in der offiziellen Dokumentation :
Derzeit funktioniert das Block-E / A-Subsystem nicht für gepufferte Schreibvorgänge. Es richtet sich hauptsächlich an direkte E / A, obwohl es für gepufferte Leseoperationen funktioniert.
Wenn Sie sich diese Präsentation ansehen von Linda Wang und Bob Kozdemba von Red Hat auf Seite 20+ ansehen, werden Sie feststellen, dass es sich bei der Grafik um die Gerätebandbreite pro VM handelt, nicht um zufällige oder blockierende oder asynchrone E / A.
Offenbar hat Red Hat kürzlich daran gearbeitet , es direkt in virsh zu implementieren. Es wurde veröffentlicht letzte Woche in libvirt 0.9.9. In ein paar Monaten können Sie so etwas in Ihrer Lieblingsdistribution tun:
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
ionice
eine bessere Alternative als dieblkio
von cgroups? Bietet es etwas, was die aktuelle Lösung des OP nicht bietet? Wissen Sie, wie es mit asynchronem E / A zusammenhängt?