Entenda como uma CPU física é dividida em múltiplas unidades virtuais

Qualquer que seja a sua ferramenta de virtualização, na hora de criar uma máquina virtual, com suas especificações e características de hardware, já se perguntou sobre o número ideal de CPUs virtuais a ser alocado a esta máquina virtual (VM)?
Já se preocupou com as limitações que este número impõe à quantidade de VMs no servidor?
Uma CPU física é simplesmente um núcleo (core) dentro do conjunto todo de componentes que formam um processador, com o suporte a execução de múltiplas threads desligado.

A Tecnologia Hyper-Threading, da Intel, permite que múltiplos encadeamentos sejam executados em cada núcleo.

Isto significa que um processador Xeon, com seis núcleos e multithreading desligado, irá oferecer o trabalho de seis CPUs fisicamente existentes.
Se o suporte ao multithreading (multi encadeamento) estiver ativado, o servidor irá ver cada um destes encadeamentos como uma CPU física. Assim, se cada um destes 6 núcleos tiver suporte a 2 encadeamentos, o servidor enxergará 12 CPUs físicas.
Quando um hyperviser ou monitor de máquina virtual se encontra instalado, cada CPU física é abstraída em CPUs virtuais, o que basicamente consiste em dividir os ciclos disponíveis para cada núcleo — o que, por sua vez, permite a múltiplas VMs compartilhar o tempo de um dado núcleo de processador físico.
Comumente, o monitor de VMs designa uma carga de trabalho por CPU virtual (por núcleo).
Via de regra, cada CPU virtual pode suportar uma quantidade variável entre 4 e 8 máquinas virtuais.
Vamos supor limites muito prudentes de 4 VMs por CPU virtual.
Se o servidor oferece 2 processadores quad-core (o que dá um total de 8), a expectativa é de que tem o potencial de suportar 32 VMs (8 X 4 = 32).
No caso de ter 4 processadores quad-core instalados (num total de 16 núcleos), o potencial do servidor sobe para 64 VMs (16 X 4 = 64) ou mais.
Convém lembrar sempre, quanto maior a quantidade de VMs a compartilhar uma CPU virtual, menor é a quantidade de ciclos disponíveis para cada uma destas máquinas virtuais e mais penalizadas serão suas performances.
Se a carga de trabalho em um servidor precisar de mais ciclos de CPU, é melhor implementar menos máquinas virtuais por CPU.
Adicionalmente, você pode alocar várias CPUs virtuais a uma VM — só não exceda o número de processadores físicos presentes no servidor.
Se o servidor, por exemplo, tem apenas um soquete de processador, designe apenas uma CPU virtual por VM.
Havendo 2 processadores por soquete, atribua no máximo duas CPUs virtuais a cada VM e assim, por diante.

Referências:
http://www.intel.com.br/content/www/br/pt/architecture-and-technology/hyper-threading/hyper-threading-technology.html
http://searchservervirtualization.techtarget.com/answer/How-is-a-physical-CPU-divided-into-multiple-virtual-CPUs?utm_medium=EM&asrc=EM_ERU_46872330&utm_campaign=20150828_ERU%20Transmission%20for%2008/28/2015%20%28UserUniverse:%201705526%29_myka-reports@techtarget.com&utm_source=ERU&src=5420646