Controle IO de bloqueio baseado em peso para VMs

13

Eu uso o KVM para gerenciar minhas máquinas virtuais. Eu estou tentando limitar os recursos fornecidos para VMs. Eu sou capaz de limitar a CPU e memória alocada para VMs usando libvirt / cgroups. Agora quero controlar o tempo de disco alocado para cada VM aplicando alguns pesos. Eu olhei para controle blkio de cgroups. Como a VM é apenas um processo do Linux, poderei usar os cgroups, mas não tenho certeza se ela funcionará também para o IO assíncrono. Se não, alguém pode sugerir uma boa solução alternativa?

    
por sethu 23.07.2011 / 05:29

2 respostas

2

Blkio na terminologia do cgroup significa < em> acesso a E / S em dispositivos de bloco . Não parece ser uma questão de regulamentar todas as maneiras diferentes que os desenvolvedores de software têm em mãos para fins relacionados a E / S.

Parece estar voltado principalmente para E / S em dispositivos , não no modo como o software tem acesso aos dispositivos. Pode limitar o número de iops, a largura de banda ou um peso com outros processos, em outras coisas. Parece que a gravação em buffer não é suportada pelo blockio no momento. Está na documentação oficial :

Currently, the Block I/O subsystem does not work for buffered write operations. It is primarily targeted at direct I/O, although it works for buffered read operations.

Se você der uma olhada em esta apresentação de Linda Wang e Bob Kozdemba, da Red Hat, na página 20+, você verá que o gráfico é sobre a largura de banda do dispositivo por VM, não sobre bloqueio aleatório versus E / S assíncrona.

Parece que houve recente work da Red Hat para implementá-lo diretamente no virsh. Ele foi lançado na semana passada no libvirt 0.9.9. Em alguns meses, você poderá fazer algo assim em sua distribuição favorita:

virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
    
por 17.01.2012 / 14:16
0

Você pode querer usar ionice, é bom, mas para IO.

    
por 04.08.2011 / 09:46