Memória virtual em máquinas virtualizadas (Trocar Arquivo na VM?)

7

Quais são as opiniões sobre como permitir a memória virtual dentro de uma máquina virtual?

Por exemplo, uma máquina host com 8 Gig de memória, eu poderia executar 4 VMs cada com 2 Gig (aproximadamente) e não haveria troca de host. No entanto, em cada VM eu poderia ter um arquivo de página 2Gig para que o servidor virtual tivesse 4Gig de memória utilizável, 2 física 2 virtual.

OR ... Eu poderia dar a cada VM 4 Gig de "memória" e fazer o host usar 8Gig de memória real e 8G de memória virtual e não ter arquivo de paginação em cada VM. Cada VM ainda teria "4Gig", mas a paginação ocorreria no host.

A parte morna e quente de mim diz configuração de paginação em cada convidado como se fosse um servidor real e você é bom. Mas o lado analítico de mim vê duas grandes vantagens em comprometer a memória do host e não ter paginação na VM. Primeiro, o IO para a memória virtual é então manipulado pelo sistema operacional host, que é mais próximo do bare metal, então deve ser mais rápido. E segundo, a paginação só seria necessária se o host não tivesse a memória disponível. Se o convidado quisesse 4Gig, mas os outros convidados não usassem a memória, não seria necessária nenhuma paginação.

Pensamentos?

    
por WaldenL 05.05.2009 / 18:55

3 respostas

5

Eu não sou um especialista em virtualização (na verdade, acho que é a ferramenta errada para o trabalho na maioria das vezes), mas pelo que eu li, seu sistema operacional convidado não deveria poder trocar. A principal razão para impedir a troca é que ela representa uma forma de adivinhar uma grande parte da largura de banda de E / S do host.

Além disso, você não quer fingir que seu host tem mais memória física do que ele, já que fará com que o host troque muito, mas a depuração de problemas de desempenho dentro do sistema operacional será muito difícil, porque do ponto de vista deles, eles não estão trocando, e nenhuma das ferramentas de nível do sistema operacional no convidado mostrará isso.

Pode até ser que, com ferramentas como o Xen e o VmWare, você não possa comprometer a memória no sistema operacional host por causa do uso de drivers de memória baloon.

    
por 05.05.2009 / 19:01
3

Isso depende muito das conseqüências da supercomprometimento de memória em seu sistema operacional host. Eu ficaria um pouco mais do que aborrecido se, por exemplo, eu tivesse o assassino de falta de memória do Linux matando minha máquina virtual. Eu costumo reservar um disco virtual menor, separado, pré-alocado, independente de snapshot (se aplicável à sua solução de VM) para cada sistema operacional convidado, garantir que o arquivo que hospeda essa imagem de disco não esteja fragmentado e / ou em uma unidade rápida e configure o espaço de troca de convidado para residir nesse disco virtual. Atualmente, o gerenciamento de memória do hipervisor é bom o suficiente para não sentir a diferença entre troca de host OOM e troca de convidado OOM, e posso ajustar o comportamento do convidado de forma independente. Melhor dos dois mundos.

    
por 05.05.2009 / 19:00
1

Eu não daria sua memória virtual de convidado devido a problemas de IO. Nem daria à sua memória virtual Host e ao convidado muita memória física, pois o convidado não perceberia realmente que estava usando memória virtual em vez de memória física.

O que não deixa você com nenhuma solução a não ser comprar mais memória. Você realmente não pode obter uma alternativa para mais memória. É tão barato, se o seu servidor puder suportar mais, eu conseguiria mais.

    
por 05.05.2009 / 19:16