Como diz a documentação do Redhat que você relacionou sobre supercomprometimento de memória,
"As máquinas virtuais convidadas em execução em um hipervisor KVM não possuem blocos dedicados de RAM física atribuídos a elas. Em vez disso, cada máquina virtual guest funciona como um processo Linux onde o kernel Linux da máquina física aloca memória apenas quando solicitado."
Isso faz com que toda a situação de determinar a quantidade de memória RAM que você pode / deva alocar para cada host seja um pouco confusa, infelizmente. Uma ferramenta que você pode usar para visualizar a memória alocada entre as VMs é virsh e sua comando freecell .
A página man do virsh afirma que freecell, "Imprime a quantidade de memória disponível na máquina ou dentro de uma célula NUMA. O comando freecell pode fornecer uma das três exibições diferentes de memória disponível na máquina, dependendo das opções especificadas .... "
Para hipervisores baseados em KVM, você pode usar o comando shell da máquina virtual ( virsh
) em um terminal para entrar no shell virtual - seu prompt deve mudar de seu padrão para virsh #
. Em seguida, você pode usar o comando list
para exibir uma lista de máquinas virtuais no hypervisor.
Para exibir a quantidade de memória por VM (por seu número mostrado pelo comando list
), use:
virsh # freecell <cell_number>
Você também pode passar o sinal --all
em vez de um número de célula para mostrar a quantidade de memória alocada para cada uma das VMs e para a máquina inteira.
Isso deve lhe dar uma boa idéia da memória total com a qual você está trabalhando e quanto está alocado para cada VM. Se você decidir que deseja alterar a quantidade de memória alocada, o virsh também fornece o comando setmem
para alterar a alocação de memória de um domínio de convidado. É semelhante à interface fornecida pelo virt-manager, mas oferece mais opções e flexibilidade. Você pode encontrar todas as opções e descrições de comandos com man virsh
.