Dynamic Memory do Hyper-V 2008 R2 SP1

Introdução

Nos ambientes em que trabalhamos geralmente fazemos um planejamento para saber o quanto cada servidor irá utilizar de memória, mas existem vários fatores que devem ser considerados como dias de baixa utilização, picos como horários específicos do dia e certas tarefas do mês como fechamento de folha, por exemplo. Para não termos problema geralmente colocamos o máximo do budget para comprar o melhor servidor para esses cenários. Isso gera um grande desperdício de hardware e principalmente de dinheiro. Não existe uma configuração de uso de memória específica para servidores como WebServers, File Servers, Exchange Servers, etc. O que temos as vezes são exemplos e boas práticas, mas que vão por agua abaixo quando eles se deparam com as variantes dos nossos ambientes. A resposta para alocação de memória depende de cada servidor, as vezes ele pode usar mais e outra não usar praticamente nada. Existe um estudo que estipula que não utilizamos mais que 8% da capacidade dos nossos servidores.

Quando você inicia uma máquina virtual (VM) no Windows Server 2008 ou 2008 R2 a memória que foi designada à ela é totalmente alocada, não sofrendo alterações. No exemplo de uma VM que tem 10 GB de memória, ela só poderá ser alterada de você desligá-la, além de ser manualmente.

No Service Pack 1 do Windows Server 2008 R2 uma funcionalidade mudará esse contexto relacionado à memória. Agora a ela é dinamicamente alocada de acordo com a necessidade de uso das máquinas virtuais.

Por exemplo: Existe um servidor na sua estrutura que tem picos de utilização de 80% em certas horas do dia e em certas ocasiões. Você configurou o mesmo com 10 GB de memória. O problema é que na maioria do tempo em producão ele utiliza em média 10% deste valor. Com o Dynamic Memory o Hyper-V pode alocar esta memória para outra VM que está com uma sobrecarga maior e voltar a memória para este servidor quando este estiver precisando.

Esta funcionalidade faz um balanceamento distribuindo a memória entre as VMs. Isso faz com que o uso da memória seja muito mais eficiente melhorando a perfomance e mantendo uma utilização consistente entre elas.

 

Estrutura do Dynamic Memory

Basicamente o Hyper-V faz um pool de toda memória física com excessão da memória utilizada pelo sistema Host. Depois disso a partição Parent gerencia toda distribuição para as VMs de acordo com as configurações e limitações de cada uma.

Quando uma VM precisa de mais memória ou quando a sobrecarga estiver baixa e existir memória sobrando para outra os serviços de Virtual Service Provider (VSP), Virtual Service Consumer (VSC) e o VMBus adiciona ou remove memória das VMs dinamicamente. Esses três serviços fazem parte da arquitetura dos enlightened drivers disponíveis no IC (integration Components) de cada máquina virtual. A memória só é removida de uma VM se outra necessitar e esta estiver com memória de sobra.

 

Configurações

Para usar o Dynamic Memory do Service Pack 1 é preciso abrir as configurações da máquina virtual, como mostra a figura abaixo.

image
Figura 1 – Virtual Machine Settings

Para habilitar a memória dinâmica na máquina virtual escolha a opção Dynamic.

Depois disto é preciso configurar os valores Startup RAM e Maximum RAM.

Startup RAM é o valor que a VM usará durante a inicialização.

Maximum RAM é o limite que a VM usará da memória configurada.

No exemplo da figura 1 a máquina virtual será iniciada com 512 MB de memória e poderá chegar até 2 GB.

Depois é preciso configurar a porcentagem desta memória que estará disponível para ser realocada, conforme a figura 2:

image
Figura 2 – Configuração de porcentagem reservada como buffer

Logo após é preciso configurar a prioridade da máquina virtual (figura 3). Caso existam mais que uma VM precisando de mais memória será essa configuração que alocará a memória fazendo um tipo de fila para a entrega da memória entre elas.

image
Figura 3 – Configuração de prioridade de memória

Depois disto a VM já estará pronta para usar o recurso de Dynamic Memory do Service Pack 1 do Windows Server 2008 R2.

 

Dicas e informações importantes

Existem algumas dicas que devem ser levadas em consideração ao utilizar o Dynamic Memory.

· O Remote Server Administration Toolkit (RSAT) do Windows 7 e Windows Vista ainda não suportam a configuração do Dynamic Memory.

· O Windows Server Web e Standard edition não são suportados pelo Dynamic Memory no Service Pack 1 Beta.

· Os sistemas Guests devem ter instalado os sistemas operacionais suportados, além de terem o Integration Services atualizados, conforme link a seguir – http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/07/12/dynamic-memory-beta-supported-guest-operating-systems.aspx

· Documentação do Service Pack 1 do Windows Server 2008 R2: http://www.microsoft.com/downloads/details.aspx?FamilyID=61924cea-83fe-46e9-96d8-027ae59ddc11&displaylang=en&Hash=Q7C69lFuwoIuKoqzfJNA4YATB0XkT4uSD00m0x/MkXSDBXotac8LCkrOvfVZuhsdFD8/B%2bDvkYTTTW9ztwEwng%3d%3d

· Windows Server 2008 R2 Service Pack 1 – http://technet.microsoft.com/en-us/library/ff817647(WS.10).aspx

· Guia de avaliação do Hyper-V Dynamic Memory – http://technet.microsoft.com/en-us/library/ff817651(WS.10).aspx

2 thoughts on “Dynamic Memory do Hyper-V 2008 R2 SP1”

  1. Leandro,

    Parabéns pelo artigo. Muito interessante e não vejo a hora de implantar aqui na empresa. Sobre o Service Pack 1 do Windows Server 2008 R2, sabe quando vai ser lançado?

    Abraços,

    !!! Alison !!!

  2. Uma pena que não se pode passar do Tamanho total de memória fisica,assim sendo o VMware ainda trata muito melhor memória do que o Hyper-v.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>