Controllo IO di blocco basato sul peso per VM


13

Uso KVM per gestire le mie macchine virtuali. Sto cercando di limitare le risorse fornite per le macchine virtuali. Sono in grado di limitare la CPU e la memoria allocate per le macchine virtuali usando libvirt / cgroups. Ora voglio controllare il tempo del disco assegnato per ogni VM applicando alcuni pesi. Ho osservato il controllo blkio dai cgroups. Poiché la VM è solo un processo Linux, sarò in grado di utilizzare i cgroups ma non sono sicuro che funzionerà anche per l'IO asincrono. In caso contrario, qualcuno può suggerire una buona soluzione alternativa?

Risposte:


2

Blkio nella terminologia cgroup sta per accesso a I / O su dispositivi a blocchi . Non sembra riguardare la regolamentazione di tutti i diversi modi in cui gli sviluppatori di software hanno a portata di mano per scopi di I / O.

Sembra essere indirizzato principalmente all'I / O sui dispositivi , non sul modo in cui il software ha accesso ai dispositivi. Può limitare il numero di iop, la larghezza di banda o un peso con altri processi, in altre cose. Sembra che al momento la scrittura bufferizzata non sia supportata dalla blockio. È nella documentazione ufficiale :

Attualmente, il sottosistema I / O di blocco non funziona per le operazioni di scrittura con buffer. È principalmente indirizzato all'I / O diretto, sebbene funzioni per operazioni di lettura con buffer.

Se dai un'occhiata a questa presentazione di Linda Wang e Bob Kozdemba di Red Hat, a pagina 20+, vedrai che il grafico riguarda la larghezza di banda del dispositivo per VM, non di I / O casuale vs blocco vs asincrono.

Sembra che ci sia stato un lavoro recente di Red Hat per implementarlo direttamente in virsh. È stato rilasciato la scorsa settimana in libvirt 0.9.9. In pochi mesi, sarai in grado di fare qualcosa del genere nella tua distribuzione preferita:

virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750

0

Potresti voler usare ionice, è bello ma per IO.


1
È ioniceun'alternativa migliore rispetto all'utilizzo blkioda cgroups? Fornisce qualcosa che l'attuale soluzione del PO non offre? Sai come si collega all'IO asincrono?
Caleb,

Caleb sarà fantastico se puoi semplicemente dare un'idea di cosa sia l'IO asincrono e in che cosa differisce dall'IO sincrono rispetto a un sistema operativo.
sethu,

@Caleb: vedi sopra.
Faheem Mitha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.