Controle de E / S de bloco com base em peso para VMs


13

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

Respostas:


2

Blkio na terminologia cgroup significa acesso a E / S em dispositivos de bloco . Não parece ser sobre a regulamentação de todas as diferentes maneiras que os desenvolvedores de software têm em mãos para fins relacionados a E / S.

Parece ser direcionado principalmente à E / S nos dispositivos , não à maneira 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 :

Atualmente, o subsistema Block I / O não funciona para operações de gravação em buffer. Ele é direcionado principalmente para E / S direta, embora funcione para operações de leitura em buffer.

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

Parece que houve um trabalho recente da Red Hat para implementá-lo diretamente no virsh. 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

0

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


1
É ioniceuma alternativa melhor do que usar blkiono cgroups? Fornece algo que a solução atual do OP não fornece? Você sabe como isso se relaciona com as E / S assíncronas?
Caleb

Caleb, será ótimo se você puder apenas dar uma ideia geral do que é IO assíncrono e como ele difere do IO síncrono em relação a um sistema operacional.
Set11

@ Caleb: Veja acima.
Faheem Mitha
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.