
Meu processador possui 4 núcleos físicos. Máximo de 8 núcleos virtuais por núcleo. O seguinte se aplica:
se o hyper threading estiver habilitado, 4x 2 = 8 núcleos lógicos. O que significa 8 x 8 = 64 núcleos virtuais máximos
se o hyper threading não estiver ativado, será 4 x 8 = 32 núcleos virtuais máximos. Ou é sempre 4x8=32 núcleos virtuais?
Responder1
Olá, existem alguns princípios básicos que ajudam você a entender:
1. Quanto mais núcleos físicos você tiver, melhor será o desempenho
2. Núcleos lógicos em um único processador físico ajudam o processador a realizar multitarefas, mas não melhor em comparação com ter um processador físico dedicado processador
3. Hyper threading é um processo para obter desempenho multi-core em um único núcleo físico
4. Hyper threading não multiplica núcleos lógicos, sua implementação já é fixada pelo fabricante
5. Hyper threading permite que a carga da CPU seja distribuída nos núcleos e se é necessária mais distribuição e, em seguida, divida a carga dentro de um núcleo físico com diferentes tecnologias, como divisão de tempo, round robin, etc.
Portanto, se sua CPU tiver 4 núcleos físicos com no máximo 8 núcleos lógicos/virtuais por núcleo, será sempre 4x8 = 32 núcleos.
Espero que isso ajude você. :-)
Responder2
Não. Neste contexto, processadores lógicos e “núcleos virtuais” são a mesma coisa. Se você ativar o hyperthreading, terá dois processadores lógicos por núcleo físico. Então, no total, você tem oito processadores lógicos, ou oito núcleos virtuais, qualquer que seja o termo que você queira usar.
Sem hyperthreading, você tem apenas um LP por núcleo físico.
Responder3
No contexto de VMs/hipervisores (com VMs do Azure em mente):
Hypervisor é o software responsável por alocar computação para VMs. Digamos que temos 2 tipos de processadores host:
- Computação A: processador hiperthread com 4 núcleos físicos
- Computação B: Nenhum processador hiperthread com 4 núcleos físicos
Digamos que criamos 2 VMs, 1 que precisa de menos poder de computação (VM X) e 1 que precisa de mais poder de computação (VM Y).
Calcule A:
- O hipervisor aloca 1 núcleo físico para VM X como 1 núcleo virtual
- A VM X obtém 2 núcleos lógicos, o que significa 2 vCPUs
- Portanto, há 2 vCPUs, 2 núcleos lógicos, 1 núcleo virtual e 1 núcleo físico envolvido para VM X
- O hipervisor aloca 2 núcleos físicos para VM Y como 2 núcleos virtuais
- VM Y obtém então 4 núcleos lógicos, o que significa 4 vCPUs
- Portanto, há 4 vCPUs, 4 núcleos lógicos, 2 núcleos virtuais, 2 núcleos físicos envolvidos para VM Y
Calcular B:
- O hipervisor aloca 1 núcleo físico para VM X como 1 núcleo virtual
- A VM X obtém então 1 núcleo lógico, o que significa 1 vCPU
- Portanto, há 1 vCPU, 1 núcleo lógico, 1 núcleo virtual, 1 núcleo físico envolvido para VM X
- O hipervisor aloca 2 núcleos físicos para VM Y como 2 núcleos virtuais
- VM Y obtém 2 núcleos lógicos, o que significa 2 vCPUs
- Portanto, há 2 vCPUs, 2 núcleos lógicos, 2 núcleos virtuais, 2 núcleos físicos envolvidos para VM Y
Para uma VM não existe núcleo físico, mas sim um núcleo virtual (que está sendo feito para parecer um núcleo físico exatamente da mesma forma que a própria máquina virtual está sendo feita para parecer uma máquina física). Observe que aqui assumimos que 1 núcleo físico é apresentado como 1 núcleo virtual para VM. No entanto, o hipervisor pode decidir agrupar 2 núcleos físicos eabstratoeles como 1 núcleo virtual para uma VM (ou, em geral, M núcleos físicos podem ser abstraídos em N núcleos virtuais). Os núcleos lógicos seguiriam então com base no fator de hyperthreading.
O número de vCPUs é igual ao número de núcleos lógicos que um núcleo virtual (portanto, o número subjacente de núcleos físicos) suporta. [Fontes:Alan Azure,VMware]
Texto fonte (caso os hiperlinks de origem sejam quebrados):