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.
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 núcleos de processamento.
Quando um hyperviser ou monitor de máquina virtual se encontra instalado, cada unidade 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.