VCAP-DCV Design: NUMA & vNUMA

VCAP-DCV Design: NUMA & vNUMA

Olá pessoal. Estou estudando para o VCAP-DCV Design e, como escrever faz parte do meu processo de aprendizagem, irei escrever vários posts sobre assuntos referentes ao exame (baseado no blueprint).  

Vamos lá, o assunto de hoje será sobre NUMA & vNUMA.

NUMA (Non-Uniform Memory Access) é uma arquitetura de memória de computador usado no multiprocessamento, onde basicamente vincula a memória diretamente a um processador fazendo com que o mesmo tenha acesso a memória local. Utilizar o acesso local a memória é mais eficiente em comparação ao acesso a memória de outro processador ou a memória compartilhada entre os processadores.

Enquanto no NUMA estamos falando de processador e memória do servidor físico, obviamente no vNUMA estamos falando do mundo virtual. O vNUMA nada mais é que o VMware vSphere utilizando a arquitetura NUMA existente do hardware físico.

Para facilitar o entendimento vou exemplificar. Na imagem abaixo possuímos o total de 2 processadores físicos, 8 núcleos e 64 GB de memória RAM. Cada processador com os seus 4 núcleos e 32 GB de RAM formam um nó NUMA. 

Fonte: boost.org

Conseguiremos obter um uso mais eficiente se garantirmos que a maquina virtual caiba dentro do tamanho do nó NUMA, ou seja, se uma VM com a configuração inferior a 32 GB de RAM e 4 vCPU for criada, o sistema operacional fará uso de um único nó NUMA e terá o acesso a memória localmente. Porém, se por algum motivo esta mesma VM tiver um upgrade de memória ou vCPU (ficando superior ao tamanho do nó NUMA), então outro nó NUMA será criado e o acesso não será mais apenas localmente. Neste caso mesmo tendo mais recursos de hardware esta VM poderá ter desempenho inferior ao da configuração anterior.

Bom, agora que entendemos o funcionamento do NUMA e vNUMA, vamos revisar alguns detalhes e cuidados sobre a utilização disso em ambientes VMware vSphere.

  • É necessário garantir que o NUMA esteja habilitado na BIOS do servidor físico;
  • O vNUMA requer que a VM esteja configurada com hardware virtual na versão 8 ou superior e no ESXi 5.x ou superior;
  • O vNUMA é automaticamente desabilitado na VM quando o CPU  hotplug está habilitado (KB 2040375);
  • O vNUMA é automaticamente habilitado quando a VM possui mais de 8 vCPUs;
  • Para utilizar o vNUMA em VMs com 8 ou menos vCPUs é necessário habilitar manualmente nos parâmetros avançados da VM;
  • O vNUMA é baseado no hardware físico, por isso é importante garantir hardwares idênticos no cluster (um vMotion para um hardware diferente pode complicar as coisas);
  • A partir do vSphere 6.5 a alteração dos valores de sockets e núcleos não influenciam mais o vNUMA. A configuração de sockets e núcleos por socket alteram apenas a forma como os processadores virtuais são apresentados para o SO da VM (geralmente necessário para licenciamento – pág 7).

Agradeço ao meu amigo e mentor Jackson Braga pelas boas conversas e detalhes sobre este tema.

É isso aí pessoal, até a próxima! : )

Ricardo Conzatti é especialista em TI e apaixonado por Virtualização. É graduado em Sistemas de Informação, pós-graduado em Gestão de TI e acredita muito na teoria da pirâmide de aprendizagem de William Glasser. Ricardo também é blogger, palestrante, podcaster e muito envolvido com comunidades técnicas. Ex-líder do VMUG Paraná e host do vBrownBag Brasil, além de ser VMware vExpert e possuir várias certificações técnicas Microsoft e VMware. Você com certeza irá encontra-lo no twitter @RicardoConzatti.

5 thoughts on “VCAP-DCV Design: NUMA & vNUMA

  1. Obrigado Ricardo,
    acabei de sanar minhas duvidas sobre NUMA na questão de uniformizar os hosts do cluster, etc…
    Agora ficou uma, o vNUMA é memory aware ou apenas Socket/core?
    nesse cenário é considarado wide VM se por exemplo configurarmos uma VM com 40 GB RAM e 1 socket com 4 cores “esta configuração não é recomendável”?
    Teriamos que usar a configuração 2:2 e e 40 GB para melhor desempenho ?

    1. Olá Manuel. A partir da versão 6.5 a alteração dos valores de sockets e cores não influenciam mais o vNUMA, ou seja, se você possuir 1 socket com 4 cores ou 2 sockets com 2 cores alteram apenas a forma como os processadores virtuais são apresentados para o SO da VM e isso geralmente surte algum efeito apenas a nível de licenciamento (Windows ou SQL Server, por exemplo). Para mais detalhes recomendo a leitura deste documento https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/whats-new-vsphere65-perf.pdf (pag 7). Valeu!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *