Kontrola IO bloków opartych na wadze dla maszyn wirtualnych


13

Używam KVM do zarządzania moimi maszynami wirtualnymi. Usiłuję ograniczyć zasoby przewidziane dla maszyn wirtualnych. Jestem w stanie ograniczyć procesor i pamięć przydzieloną dla maszyn wirtualnych za pomocą libvirt / cgroups. Teraz chcę kontrolować czas dysku przydzielony dla każdej maszyny wirtualnej, stosując pewne wagi. Spojrzałem na kontrolę blkio z grup cg. Ponieważ VM jest tylko procesem Linuksa, będę mógł używać cgroups, ale nie jestem pewien, czy zadziała również dla asynchronicznego We / Wy. Jeśli nie, czy ktoś może zasugerować dobre alternatywne rozwiązanie?

Odpowiedzi:


2

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

0

Możesz chcieć użyć ionice, to jest miłe, ale dla IO.


1
Czy ionicejest lepsza alternatywa niż korzystanie blkioz cgroups? Czy zapewnia coś, czego nie oferuje obecne rozwiązanie OP? Czy wiesz, jak to odnosi się do asynchronicznego we / wy?
Caleb,

Caleb, będzie wspaniale, jeśli będziesz mógł po prostu wyjaśnić, czym jest asynchroniczne we / wy i czym różni się od synchronicznego we / wy w odniesieniu do systemu operacyjnego.
sethu

@Caleb: patrz wyżej.
Faheem Mitha
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.