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?
Os dois são ruins.
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!
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?
Olá RafaNovo,
Tenho o seguinte hardware:
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?
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...
Os dois são ruins.
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!
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.
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?
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...