Blkio w terminologii cgroup oznacza dostęp do I / O na urządzeniach blokowych . Wydaje się, że nie chodzi o regulowanie wszystkich różnych sposobów, w jakie twórcy oprogramowania mają do dyspozycji zadania związane z We / Wy.
Wydaje się, że jest on ukierunkowany głównie na wejścia / wyjścia na urządzeniach , a nie na sposób, w jaki oprogramowanie ma dostęp do urządzeń. Może ograniczyć liczbę procesorów, przepustowość lub wagę w innych procesach. Wygląda na to, że buforowanie zapisu nie jest obecnie obsługiwane przez blockio. Jest w oficjalnej dokumentacji :
Obecnie podsystem Block I / O nie działa w przypadku buforowanych operacji zapisu. Jest przede wszystkim ukierunkowany na bezpośrednie operacje we / wy, chociaż działa w buforowanych operacjach odczytu.
Jeśli spojrzysz na tę prezentację od Lindy Wang i Boba Kozdemby z Red Hat, na stronie 20+, zobaczysz, że wykres dotyczy przepustowości urządzenia na maszynę wirtualną, a nie losowego vs blokowania vs asynchronicznego we / wy.
Wygląda na to, że Red Hat niedawno przeprowadził prace nad jego implementacją bezpośrednio w Virsh. Został wydany w zeszłym tygodniu w libvirt 0.9.9. Za kilka miesięcy będziesz mógł zrobić coś takiego w swojej ulubionej dystrybucji:
virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
ionice
jest lepsza alternatywa niż korzystanieblkio
z cgroups? Czy zapewnia coś, czego nie oferuje obecne rozwiązanie OP? Czy wiesz, jak to odnosi się do asynchronicznego we / wy?