VMware Global Community
Wellington_SQL
Contributor
Contributor
Jump to solution

Topologia NUMA x VM

Bom dia Srs.,

     Estou com um seguinte duvido em relação a topologia NUMA no meu windows server (Virtual) e gostaria de saber se poderiam me ajudar?

   
A duvida é a seguinte:
     Tenho uma VM com a seguinte configuração: 4 vCPUs e 12 GB de memória.
     O processador está configurado da seguinte maneira:
               4 vCPUs com 2 cores por vCPU totalizando em 8 cores.
               Number of virtual sockets: 2
               Total Number of cores per socket: 2
               Total Number cores: 8
     E cada vCPU teoricamente possui 3GB de memória devido a configuração NUMA (creio eu).
Devido a essa configuração de processador surgiu a seguinte dúvida:
     Como está minha topologia NUMA na minha VM?
Ex1: 4 nós NUMA onde cada um possui 1 processador e seus 2 cores e 3 GB
,
Ex2: 2 nós NUMA onde cada nó possui 2 processadores e seus 4 cores e 6 GB
ou
Nenhum dos exemplos.
     Caso a configuração seja o Ex1 ele vai ser mais performático que o Ex2 devido existe mais canais de I/O para o SO?
     Ou
     A configuração do Ex2 vai ser melhor devido a maior quantidade de processamento e memoria no mesmo nó já que tenho 2 processadores e 6GB de memória em um único nó?
     Existe alguma maneira de visualizar pelo VMWare ou windows como minha NUMA está configurada?
agradeço pela atenção.
0 Kudos
1 Solution

Accepted Solutions
RafaNovo
Enthusiast
Enthusiast
Jump to solution

Os dois são ruins. Smiley Happy

Quando você cria uma VM, a informação de de vCPU ou Core serve apenas para questões de licenciamento do seu SO. (mais informações aqui: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=101018...)

Ou seja, para alocação da VM no hardware físico, nos seus 2 exemplos a sua VM seria alocada em 8 cores físicos.

No seu hardware, cada NUMA node tem 1 CPU (4 cores) e nos dois exemplos a sua VM irá ser alocada em 8 cores, o que implica que 4 cores terão que atravessar o NUMA node para poder acessar a memória.

A não ser que sua VM REALMENTE precise, você deve tentar criar VMs com NO MÁXIMO 4 CPUs e 60 GB de RAM. O ideal é começar pequeno (1 ou 2 cores) e ir adicionando mais de necessário. Lembrando que dependendo do seu SO, você pode até mesmo adicionar vCPUs e memória sem downtime!

View solution in original post

0 Kudos
8 Replies
RafaNovo
Enthusiast
Enthusiast
Jump to solution

Os NUMAs nodes são baseados no hardware do seu servidor e não na sua VM.

O que pode acontecer se sua VM for maior que um NUMA node é a VM atravessar um NUMA node.

Qual a sua config de hardware?

0 Kudos
Wellington_SQL
Contributor
Contributor
Jump to solution

Olá RafaNovo,

     Tenho o seguinte hardware:

System x3550 M3 (IBM)
2 Quad Core (com HT)- Intel(R) Xeon(R) CPU E5620  @ 2.40GHz
120 GB de memória
     Minha configuração NUMA está da seguinte forma:
nó 0: 0, 1, 2, 3, 4, 5, 6 ,7
nó 1: 8, 9, 10, 11, 12, 13, 14, 15
     Cada nó com 60GB de memória.
     Exato, a NUMA ela é baseda em hardware do servidor (Host) e não na VM, mas apartir da versão 5 já é possível trabalhar com configuraçãoes de quantidade de cores por socket e com a vNUMA que ajuda uma VM que possuir uma configuração maior que o nó NUMA a permanecer no ""gerenciamento NUMA"".
     O que realmente gostaria de saber e ainda não achei é se a configuração de Socket x Cores per Sockets influencia na performance de processamento ou não tipo:
"Ex1: 4 nós NUMA onde cada um possui 1 processador e seus 2 cores e 3 GB
,
Ex2: 2 nós NUMA onde cada nó possui 2 processadores e seus 4 cores e 6 GB
ou
Nenhum dos exemplos.
     Caso a configuração seja o Ex1 ele vai ser mais performático que o Ex2 devido existe mais canais de I/O para o SO?
     Ou
    A configuração do Ex2 vai ser melhor devido a maior quantidade de processamento e memoria no mesmo nó já que tenho 2 processadores e 6GB de memória em um único nó?

     Existe alguma maneira de visualizar pelo VMWare ou windows como minha NUMA está configurada?
agradeço pela atenção."
Agredeço pela atenção.
0 Kudos
RafaNovo
Enthusiast
Enthusiast
Jump to solution

Então, como você mesmo colocou o seu servidor tem 2 NUMA nodes. Cada um tem 1 CPU (4 cores) e 60 GB RAM. Esse número é FIXO

Por exemplo, se você criar uma VM com 2 vCPUs e 8 GB RAM ela vai ficar dentro de um único NUMA mode. Mas se você criar uma VM com 8 vCPUs e 80 GB RAM esta VM será OBRIGADA a alocar memória e CPU dos 2 nós de NUMA

O vNUMA não é para a criação de mais nós de NUMA. O vNUMA instituido no vSphere 5 é a capacidade de deixar transparecer para o SO a configuração de NUMA node do host, desta forma se uma VM estiver alocada em mais de um NUMA node, o SO pode tomar a melhor decisão possível sobre seus processos e memória alocada para cada processo, para evitar atravessar os nó de NUMA (ou seja, um processo rodando em um nó acessando a memória de outro nó)

Ficou mais claro?

0 Kudos
Wellington_SQL
Contributor
Contributor
Jump to solution

Olá RafaNovo,

     Exato, mas na verdade o que realmente gostaria de saber se existe alguma diferenção de performance para o VMWare de:

Criar um VM com 4 vCPUs com 2 cores cada (VM com 12 GB de memória)

,

Criar um VM com 2 vCPUs com 4 cores cada (VM com 12 GB de memória)

ou

É algo que não preciso muito me preocupar, pois é algo transparente para VMWare.

Agredeço pela atenção...

0 Kudos
RafaNovo
Enthusiast
Enthusiast
Jump to solution

Os dois são ruins. Smiley Happy

Quando você cria uma VM, a informação de de vCPU ou Core serve apenas para questões de licenciamento do seu SO. (mais informações aqui: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=101018...)

Ou seja, para alocação da VM no hardware físico, nos seus 2 exemplos a sua VM seria alocada em 8 cores físicos.

No seu hardware, cada NUMA node tem 1 CPU (4 cores) e nos dois exemplos a sua VM irá ser alocada em 8 cores, o que implica que 4 cores terão que atravessar o NUMA node para poder acessar a memória.

A não ser que sua VM REALMENTE precise, você deve tentar criar VMs com NO MÁXIMO 4 CPUs e 60 GB de RAM. O ideal é começar pequeno (1 ou 2 cores) e ir adicionando mais de necessário. Lembrando que dependendo do seu SO, você pode até mesmo adicionar vCPUs e memória sem downtime!

0 Kudos
Wellington_SQL
Contributor
Contributor
Jump to solution

Olá RafaNovo,

     Ah. Ok então, agora sim entendi, pois não tinha ficado muito claro pra mim essa questão de Qtd de Socket x Qtd de cores por Socket, mas já que está mais voltado para licenciamento vou verificar essas questões.

Agradeço pela atenção.

0 Kudos
rafaelinsc
Enthusiast
Enthusiast
Jump to solution

RafaNovo,

Mesmo levando em consideração que os processadores dele tem HT habilitado? são 8LCPU por pastilha(Quadcore c/ HT) pelo que vi, então os dois exemplos que ele deu ficariam em um unico NUMA node não? As VCPUs não são asociadas aos LCPUs?

0 Kudos
RafaNovo
Enthusiast
Enthusiast
Jump to solution

Fala Xará,

EXCELENTE ponto! Sim, um core com HT oferece 2 possibilidades de alocação da vCPU!

O problema é que uma VM, com 2 vCPUs alocadas em um mesmo core pode ser muito ruim. (tanto que existe uma opção de você bloquer totalmente este tipo de alocação.

Por isso o vSphere vai alocar em todos os cores físicos antes de alocar 2 vCPUs em um mesmo core...

0 Kudos