recuperação de memória qemu-kvm de convidados de baixo uso

recuperação de memória qemu-kvm de convidados de baixo uso

Existe uma maneira de recuperar ou impedir o uso de memória de forma transparente de um convidado qemu-kvm?

Cenário A:

Um convidado usa 8 GB de RAM durante os horários de pico, retorna para 4 GB de uso à noite, mas o convidado ainda reivindica 8 GB de RAM do host.

Cenário B:

Um convidado usa 2 GB de RAM, mas possui 6 GB de RAM no cache de páginas. O convidado está reivindicando 8 GB de RAM do host, mas até 6 GB podem ser RAM que poderiam ter mais importância em outro sistema convidado.


Meu primeiro pensamento sobre o balão foi que o convidado não "veria" o efeito do balão, mas ao enviar o "balão 2048", a memória dentro do convidado seria reduzida para ~ 2 GB.

Responder1

Você pode ligarbalão automáticoem um convidado libvirt editando o XML:

<memballoon model='virtio'>

O dispositivo balão de memória virtual levaum parâmetro autodeflate, cujo padrão é off. Defina-o como onpara ativar o balão automático.

<memballoon model='virtio' autodeflate='on'>

Observe que não há opção GUI no virt-manager para ativar ou desativar esta configuração.

Se você estiver chamando o qemu manualmente (salve sua sanidade e não faça isso), adicione ,automatic=trueao dispositivo balão, por exemplo -device virtio-balloon,automatic=true.

O balão automático requer qemu/kvm 1.3.1 ou posterior.

Observe que isso provavelmente não resolverá todos os seus problemas de contenção de memória; é melhor simplesmente ter RAM suficiente para executar todas as suas máquinas virtuais.

Responder2

cronize isso na VM e/ou no host da VM todas as noites após horários de pico:

sincronizar; eco 1 > /proc/sys/vm/drop_caches

ele descarta o cache fs e o devolve como memória disponível para o sistema, então o KVM/Hypervisor pode vê-lo como memória livre e encontrar outros usos para ele

também funciona muito bem com sistemas docker

informação relacionada