Como regra geral, você quer saber que, nas condições de pior caso, há RAM física suficiente para que todas as funções padrão funcionem de forma confiável a partir da RAM. O que esse número mágico é varia de sistema operacional para sistema operacional e varia muito dependendo dos usos em que você coloca o sistema operacional convidado. Você pode facilmente inicializar um Windows 2003 Server com algumas centenas de meg de RAM, algumas distros compactas do Linux com 30Meg ou menos e assim por diante, mas se você quiser rodar o SQL Server em seu guest com bancos de dados com vários gigabytes, então você quero ter certeza de que ele realmente tem RAM real fazendo o backup do par de Gig de RAM que ele acha que tem.
Como o Hypervisor lida com RAM varia muito entre fornecedores e produtos. O Hyper-V não suporta o que é chamado de supercomprometimento de memória, portanto, você está limitado a alocar memória RAM com base no que está fisicamente disponível. O ESX da VMware permite o comprometimento excessivo, definindo regras para a arbitragem de contenção (compartilhamentos) para controlar o que acontece quando a VM fica ocupada e a quantidade total de RAM física é insuficiente para atender à carga. Em um ambiente Hyper-V, você não tem esse nível de controle, portanto, é necessário atribuir memória RAM suficiente na frente.
O VMware tem alguns outros truques para ajudar na superalocação de memória; Partilha de páginas transparente e balões de memória.
O Transparent Page Sharing é basicamente armazenamento de instância única para RAM - o Hypervisor monitora os blocos de RAM alocados para cada VM e, se encontrar blocos comuns em várias VMs, ele mantém apenas uma única cópia e aponta todas as VMs para ela qualquer VM subsequentemente tenta gravar nesse bloco ele divide uma cópia para que coisas ruins não aconteçam. Em um ambiente de VM homogêneo, isso pode economizar uma boa quantidade de RAM sem afetar o desempenho.
Memory Ballooning é um mecanismo que permite ao Hypervisor "emprestar" RAM alocada para uma VM e fornecê-la a uma mais importante usando um driver do sistema operacional convidado na primeira que aloca um pedaço (grande) de memória dentro da Guest. . Uma vez alocado, o Hypervisor pode realocar com segurança a RAM física que armazena a memória que o driver de balão alocou a ela. A vantagem de fazer isso em comparação com a abordagem direta em que o Hypervisor apenas troca a memória da VM Convidada em disco para realocar a RAM é que o Convidado que está perdendo a RAM física está ciente de que a memória está em uso por algo e há um risco significativamente reduzido de que a RAM "emprestada" tenha sido alocada a quaisquer funções importantes do sistema dentro do Visitante.
Editado para adicionar: Eu nunca tentei ver o que acontece com o Hyper-V quando você tenta inicializar VMs que levará os requisitos de memória além da quantidade de RAM física disponível, toda a documentação que posso encontrar afirma que a VM obtém toda a RAM que você tem configurado para eles e, em seguida, o Hypervisor e o sistema operacional host são alocados para o que resta. O Hyper-V não tem nenhum mecanismo para aplicar uma reserva mínima de RAM a uma VM e, em seguida, ter o restante alocado de um pool, embora ele forneça esse mecanismo para os recursos da CPU. Novamente, o ESX \ ESXi da VMware fornece essa opção.
Vale a pena lembrar que você também precisa planejar a memória física que é necessária tanto pelo Hypervisor quanto pelo sistema operacional host (desconsidere o último caso esteja executando o servidor Hyper-V bare-metal). O conselhos de ajuste de desempenho do Hyper-V da Microsoft afirma que, além do XGig de RAM você tem em sua VM, você precisa ter:- 300 MB para o hipervisor
- mais 32 MB para o primeiro GB de RAM alocado para cada máquina virtual
- mais outros 8 MB para cada GB adicional de RAM alocado para cada máquina virtual
- mais 512 MB para o host que está operando sistema em execução na partição raiz
Se você não tiver RAM física suficiente para isso, o desempenho será seriamente afetado e possivelmente a estabilidade também.