Recomendações do uso de memória nos servidores Hyper-V (2008 R2)
Existem vários fatores de hardware que você deve levar em consideração quando pensa em uma solução de virtualização, mas um dos componentes mais importantes é a memória (RAM), pois esse é um fator determinante para se calcular a densidade de máquinas virtuais (VMs) de um servidor Hyper-V. Por isso é importante saber quanto de memória cada VM necessita. Ficar atento para não alocar mais memória que o necessário, bem como não prover memoria de menos.
Entender como obter o maior benefício do hardware do host Hyper-V é chave para uma melhor performance, e o NUMA (Non-Uniform Memory Access) é parte disso. A ideia do NUMA é aumentar a performance do acesso à memoria por processador. Para isso blocos de memória ficam localizados no mesmo barramento de cada processador. Assim um processador pode acessar o seu banco de memória local mais rápido do que a um banco de memória que não esta no seu barramento.
A versão do Hyper-V do Windows Server 2008 e do 2008 R2 não tem a opção de configurar a afinidade das VMs por NUMA, essa funcionalidade deve vir no Hyper-V do Windows 8. Entretanto é possível inferir o tamanho máximo de memória para que as VMs se beneficiem do NUMA, basta pegar o tamanho de memória e dividir pelo número de cores do servidor. Por exemplo, em servidor dual processor quad-core com 64GB de memória o cálculo seria 64/8. As máquinas virtuais que usem até 8GB, resultado do cálculo anterior, têm grandes chances de estarem usando memórias NUMA de um mesmo banco de um dos processadores, e obtendo assim melhor performance.
Parent Partition
No servidor Hyper-V o Hypervisor reserva pelo menos 300MB, e o sistema operacional requer no mínimo 512MB. O recomendado é que se reserve ao menos 2GB de memória para o servidor Hyper-V.
Outra recomendação é não utilizar o servidor Hyper-V para outras funções. Caso isso ocorra é necessário designar mais memória para o servidor desempenhar as demais funções que lhe foi designada. Lembre-se que essa memória não é pré-alocada e a garantia de disponibilidade dessa memória para o sistema operacional deve ser planejada/monitorada juntamente com a alocação de memória realizada pelas VMs.
Memória Dinâmica
No Windows Server 2008 R2 SP1 foi introduzido o conceito de memória dinâmica que permite que a máquina virtual consuma a memória física do servidor Hyper-V à medida que a VM for requisitando. O uso da memória dinâmica permite aumentar a densidade de maquinas virtual por servidor físico. Entretanto, nem sempre a memória dinâmica é a melhor opção.
Para as VMs que rodam serviço que requerem uma quantidade fixa de memória, ou aplicações que tentam usar toda a memória disponível do servidor são bons candidatos a não usarem memória dinâmica. Nestes casos o melhor é usar memória estática.
Outro ponto importante é que o uso de memória dinâmica em varias VMs tende a usar memorias de vários nós NUMA, logo, se performance for um ponto crucial o uso de memória dinâmica pode não ser a melhor opção.
Importante ressaltar que a memória dinâmica só pode ser configurada para as VMs que executam os seguintes sistemas operacionais: Windows 7, Vista, Windows Server 2003, Windows Server 2008 e superiores. Caso se configure memória dinâmica para outros sistemas operacionais ele só vai usar a memória definida no Startup RAM.
Configuração da Memória Dinâmica
Item |
Descrição |
Startup RAM |
É a quantidade mínima de memória necessária para a VM iniciar. É também a quantidade de memória física que a VM vai alocar inicialmente. A Microsoft recomenda 512MB para o Windows 7, Vista e Windows Server 2008, e 128MB para os Windows Server 2003. |
Maximum RAM |
O tamanho máximo de memoria que a VM pode alocar de memória física do servidor Hyper-V. Esse valor não pode ser menor que o Startup RAM e maior que 64GB. Tenha cuidado para não especificar um tamanho que memória que o sistema operacional da VM suporte. Por padrão o Hyper-V coloca 64GB. |
Memory buffer |
Controla a quantidade de memória física que cada VM deve tentar reservar como buffer. O valor é representado em porcentagem porque o tamanho de memória utilizado pela VM muda ao longo da sua execução. A formula que determina o tamanho do buffer é : Quantidade de memória utilizada pela VM / (valor do buffer / 100). Por exemplo, uma VM que esteja utilizando 1024MB de memória, com a configuração de buffer de 20%, vai alocar aproximadamente 204MB, totalizando 1228MB de memória física no servidor Hyper-V. Obs: O buffer não é mantido quando não se tem espaço de memória suficiente. |
Memory weight |
É uma forma de priorizar o uso de memória entre a VMs. No caso da utilização de memória do servidor Hyper-V começar a ficar escassa, a memória é alocada para as VMs com maior prioridade. |
Comments
- Anonymous
January 12, 2012
Muito bom artigo. Simples e objetivo.