Cloud Computing

Ξ 1 comentário

Sobrecarga de memória para servidores de virtualização

publicado por Fabio Hara

Quando dimensionamos a memória de uma maquina virtual em servidores de virtualização levamos em conta apenas a quantidade de memória que será alocada para a mesma, e nada mais. Na verdade para qualquer servidor de virtualização não se deve considerar apenas a quantidade de memória alocada para uma maquina virtual como forma de dimensionar a quantidade de memória disponível. Os servidores de virtualização necessitam de uma memória extra para gerenciar cada maquina virtual, e é fundamental que este cálculo seja feito para que o dimensionamento de hardware seja correto.

Falando especificamente do Hyper-V existe um cálculo que voce pode fazer para dimensionar a memoria extra necessária para cada maquina virtual que será utilizada. Nós chamamos esta técnica de Memory Overhead, e funciona da seguinte forma:

  • Para cada VM (maquina virtual) você deve adicionar 32MB para o primeiro Gigabyte de RAM, e mais 8MB para cada Gigabyte de RAM consequente.

Ex: Vamos imaginar uma maquina virtual com 16GB de RAM. O Memory Overhead para gerenciar e manter esta maquina virtual será de 32MB (referente ao primeiro Gigabyte de RAM) + 32MB X 15 (lembre-se que o primeiro Gigabyte já foi contabilizado com 32MB, portanto restaram 15 Gigabytes).

16GB VM = 32MB + (15 x 8MB) = 152MB de Memory Overhead. Em outras palavras, manter uma maquina virtual (VM) de 16GB na verdade irá consumir do servidor de virtualização o total de 16,152MB

Este cálculo é bem interessante, pois se você pretende comprar um servidor de virtualização e, na hora que dimensionar a memória do mesmo vai apenas calcular a quantidade de RAM utilizada pelas VMs, então poderá ter problemas de desempenho pois esqueceu de calcular o Memory Overhead. Esta formula matemática de calculo é publicamente divulgada através do documento para download chamado de “Performance Tuning Guidelines for Windows Server 2008 R2.docx”(disponível para download no site da Microsoft). Importante observar que neste cálculo não faz diferença a quantidade de processadores virtuais alocados para a VM, apenas a quantidade de memória alocada. Outro fator é que as informações acima se referem exclusivamente ao Microsoft Hyper-V Server 2008 R2 e Microsoft Windows Server 2008 R2 com Hyper-V.

Se você possui servidores de virtualização com Vmware ESXi 5.0 também deve se atentar a estes cálculos de Memory Overhead. Se utilizarmos a mesma situação acima: 1 VM com 16GB de RAM e 1 processador virtual temos o Memory Overhead de 335MB. Estes valores podem variar, de acordo com a quantidade de memória RAM alocada e quantidade de processadores virtuais, conforme tabela abaixo:

Fonte: vSphere Resource Management Guide – www.vmware.com

Nesta tabela observe que se for criado uma VM com 32GB de RAM e 4 processadores virtuais teremos o Memory Overhead de 948MB, praticamente 1GB de RAM. Estes valores são por maquina virtual, portanto manter maquinas virtuais com muita memória e muitos processadores virtuais pode impactar significativamente o custo de memória RAM necessária no servidor físico.

Outro ponto importante referente ao contexto de sobrecarga de memória refere-se a reserva de memória. Em servidores de virtualização baseados em Hyper-V não é recomendado adicionar outros papéis (Roles) ou serviços além do próprio Hyper-V. O motivo é que serviços ou papéis extras podem concorrer em memória com o serviço de Hyper-V e as maquinas virtuais, diminuindo a capacidade máxima suportada pelo servidor. No caso do serviço de Hyper-V é possível fazer uma reserva de memória específica para ele, de forma que outros processos e serviços do Windows não possam utilizar. Este recurso é chamado de Memory Reserve e permite estabelecer a quantidade de memória RAM máxima que o serviço de Hyper-V pode ter exclusivamente para si. Esta alteração não é gráfica, e feita via Registry:

Registry Key: HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualization

Value Name: MemoryReserve

Value Type: REG_DWORD

O calculo utilizado é de 384MB (padrão) + 30MB para cada 1GB de RAM da memória física do servidor. Um servidor com 128GB de RAM pode ser configurado para utilizar até 4194 (127 X 30MB=3810 +384). Na prática as pessoas de forma geral alocam aprox 4GB de RAM para o serviço de Hyper-V, mas agora você sabe como delimitar corretamente. Lembre-se de que é importante realizar um backup da chave do Registry antes de modificar.

Autor

Um dos primeiros MVPs (Most Valuable Professional) de infraestrutura do Brasil, além de MCTS, MCITP, MCSA, MCSE, MCITP e MCT, com mais de 14 anos de experiência no mercado de infraestrutura de redes Microsoft. Atuou em muitos cases da Microsoft e hoje ocupa a posição de Especialista em Infraestrutura e Virtualização no time de Comunidades Técnicas da Microsoft Brasil. Sua missão é contribuir com os profissionais e comunidades de IT Pros a explorar as funcionalidades e recursos da plataforma Microsoft. Bom, este é o mini-cv formal do Fabio Hara. O mini-cv “informal” do Hara-san (como é mais conhecido) seria: Hara-san costuma jogar partidas lendárias de Gears of War, Call of Duty MW2, Halo:Reach, etc, nas horas de folga com seus amigos. Além disso curte bastante jogar tênis (apesar de jogar mal) e escutar um bom rock anos 80/90. Grande apreciador do Home-brewing, graças aos conhecimentos que foram aprendidos com o Dalai Lama dos Portais Colaborativos Sagrados(Roberval Ranches – mesa). Tambem gosta de treinar Aikidô, e sempre que possível costuma treinar regularmente. Certa vez me perguntaram: “Hara, o que você faz na Microsoft?”. Na epoca eu disse que divulgava novas tecnologias, produtos, etc. Hoje eu posso dizer que não é bem isso. Minha resposta hoje é: “Eu ajudo você com informações e conteúdos que te ajudem a ganhar dinheiro, ser reconhecido e voltar mais cedo para casa para ficar com a sua familia” Site: http://www.fabiohara.com.br/ Twitter: http://Twitter.com/fabiohara Bom, o Hara tambem fez uns videos bacanas no Youtube. Segue alguns deles: Fabio Hara usando Surface – parte 1 Fabio Hara usando o Surface – parte 2 Fabio Hara usando o Surface – parte 3 Fabio Hara usando o Surface – parte 4 final Container do Azure – via Fabio Hara / parte 1 Container do Azure – via Fabio Hara / parte 2

Fabio Hara

Comentários

1 Comment

  • Dúvida:
    No caso dado da VM por exemplo de 16 Gb de Mem. e 4 Vcpu, o host irá precisar de praticamente 1 GB de Mem. para manter a VM, certo? Mas somente se os 16 GB de Mem. estiverem em uso ou usando pouco da Mem alocada que o host já irá usar os qse um 1 GB?

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes