Cloud Computing

Ξ Deixe um comentário

Second Level Address Translation no Hyper-V

publicado por Fabio Hara

Quando escolhemos o hardware do servidor de virtualização normalmente basicamente o que direciona a escolha é a velocidade ou a quantidade de núcleos do mesmo. Entretanto existem outros fatores que trazem benefícios para ambientes virtualizados, e um dos recursos mais utilizados é o SLAT (Second Level Address Translation).

A tecnologia SLAT foi desenvolvida com o objetivo de reduzir a carga do hipervisor e aumentar seu desempenho. Tanto a Intel® quanto a AMD® possuem esta tecnologia em seus processadores, entretanto a nomenclatura diferencia:

– Intel®: Extended Page Table (EPT)
– AMD®: Nested Page Table (NPT)

Os benefícios para ambientes virtualizados podem ser brevemente listados:

  • Melhora no desempenho para gerenciamento de memória
  • Redução de “cópias” na memória
  • Redução no consumo de memória
  • Benefícios para ambientes que trabalham com aplicações que exijam uso intensivo de memória, como por exemplo, bancos de dados.

Para entender como funciona o SLAT em um ambiente tradicional de virtualização então vamos analisar o funcionamento básico da memória de uma maquina virtual. Ao configurar a quantidade de memória de uma maquina virtual, o hipervisor aloca um trecho na memória física quando esta VM (virtual machine, ou maquina virtual) for inicializada. Do ponto de vista da maquina virtual ela acredita que possui uma quantidade X de memória RAM disponível e que está acessando diretamente a memória RAM física. Entretanto a virtualização cria uma camada intermediária entre o hardware da maquina física com o sistema operacional e uma maquina virtual, e este gerenciamento é feito pelo hipervisor. O hipervisor não permite o acesso direto da memória RAM da maquina virtual com a memória RAM física, e para prover memória para a maquina virtual ela mantém uma tabela de alocação de memória intermediária. Esta tabela de alocação faz a tradução entre a memória RAM que a VM possui (e que está usando) com a memória RAM física do host de virtualização (também conhecido como Servidor de Virtualização).

O diagrama abaixo ajuda a ilustrar como funciona o processo:

Apesar de ser um recurso do processador, o SLAT interage diretamente com o gerenciamento da memória física da maquina, eliminando a necessidade de uma tabela de Shadow Page. Isto significa que em um servidor de virtualização com processador SLAT a maquina virtual pode acessar diretamente a memória RAM física do servidor de virtualização, trazendo ganhos significativos de memória. O diagrama abaixo mostra como funciona o gerenciamento de memória com o SLAT:

Para quem trabalha com banco de dados este é um ponto muito importante. Uma das discussões que existe entre DBA`s e profissionais que gerenciam ambientes virtualizados é a resistência ao virtualizar banco de dados devido ao fato de ter uma camada extra (hipervisor) para permitir acesso direto à memória, que ‘um dos itens mais críticos para qualquer banco de dados. Através do SLAT esta camada extra é eliminada permitindo que, por exemplo, bancos de dados possam interagir diretamente com a memória física do servidor de virtualização, trazendo ganhos de desempenho em relação a ambientes sem SLAT. Portanto se você está planejando virtualizar servidores que possuem uso intensivo de memória (ex: banco de dados, servidores de correio eletrônico, etc.) então considere esta opção no seu projeto.

Entretanto muita gente não sabe se já possui um hardware que suporta SLAT, e gostaria de saber como descobrir se o mesmo possui SLAT e se está habilitado. Caso não tenha a documentação detalhada do seu hardware você pode utilizar o próprio Performance Monitor do Windows para descobrir. Basta adicionar o contador “Hyper-V Hypervisor Root PartitionAddress Spaces”. Se o resultado for acima de 0 (zero) significa que o processador não possui ou não está habilitado) o SLAT , e está mantendo Shadow Page Tables para gerenciar a memória para as maquinas virtuais.

Caso o contador retorne o valor 0 (zero) então significa que o SLAT está presente e habilitado, portanto não há uma Shadow Page Table para gerenciar a memória da maquina virtual.

Outro ponto interessante é saber o que mais acontece se o processador não suportar SLAT. Quais são os problemas que ocorrerão? Tenha em mente que manter um gerenciamento extra de alocação de memória significa penalidades em processamento no servidor, diminuindo seu desempenho em cenários que exigem processamento. Uma Shadow Page Table possui limites, e quando este é atingido então ocorre o processo de Flush (descarregar) do Address Space. O Windows Server 2008 suporta até 320 processos por partição, e o Windows Server 2008 R2 suporta até 512 processos por partição. A Shadow Page Table pode suportar até 60.000 entradas para cada array, e quando este limite é atingido a Shadow Page Table é recriada.

Espero que tenham gostado do post!

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

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