Nesses últimos dias surgiu aqui na empresa a ideia de virtualizar algumas máquinas.

Como não tenho experiência nenhuma em virtualização, é natural o receio de não saber se vale a pena, ou se vai dar certo.

Com base nesse receio, resolvi fazer alguns testes em minha máquina (Um i3 com 4GB de RAM e HD SATA2 de 7200RPM) para descobrir que carga conseguiria comportar. Informações sobre o desempenho da máquina host foram obtidas a partir do comando top.

O software que utilizei para virtualizar foi o KVM e o sistema operacional o Linux Mint 13 (Maya), que é baseado no Ubuntu 12.04. As máquinas virtuais rodam CentOS.

Depois de vários testes, cheguei a seguinte conclusão: é uma boa ideia ter pelo menos 1 núcleo para cada máquina. Na verdade eu já imaginava isso, mas depois do teste, foi confirmado.

Apesar de ser possível rodar mais VMs do que os núcleos que a máquina host possui (Ex.: uma máquina com 4 núcelos rodar 5 VMs), não é recomendável, pois o conjunto como um todo provavelmente vai ficar extremamente lento (e foi isso que aconteceu nos testes).

Também é importantíssimo que você reserve para as máquinas virtuais um pouco menos que o total que a máquina física possui. Ex.: Se você possui 4GB de RAM, é interessante que sobre pelo menos 1GB para a máquina física. Se você não fizer isso, a máquina física irá começar a usar SWAP, e ficar lenta.

Caso a máquina que você pretende virtualizar necessite de muitos recursos, é interessante em alguns casos mantê-la como uma máquina física mesmo. Caso decida virtualizar, pense com carinho nos recursos que pretende destinar a ela, e tenha uma folga para o caso de precisar de mais recursos.

O que foi notado nos testes é que a lentidão se agravou mais ainda porque todas as máquinas faziam uso excessivo de um mesmo recurso: o acesso a disco. Então ter VMs que rodem softwares com características diferentes (Ex.: alguns software requerem mais processamento, outros mais memória, outros mais acesso a disco, rede etc.) pode ser uma boa ideia.

Quer acrescentar alguma coisa? Use os comentários!

Segue abaixo os dados de todos os testes:

### CONFIGURAÇÃO DA MÁQUINA HOST
PROCESSADOR: Intel i5
MEMÓRIA: 4GB DE RAM 
DISCO RIGIDO: SATA2 7200RPM

################################################################################

### SCRIPT UTILIZADO PARA O TESTE

cd /
echo $(date +%s)
tar -zcf teste.tar var
echo $(date +%s)

################################################################################

### DADOS DOS TESTES

TESTE COM 1 VM (1 NÚCLEO - 768MB DE RAM)
ANTES
LOAD AVERAGE: 0.6, 1.2, 1.2
SWAP UTILIZADO: 15MB

PICO
LOAD AVERAGE: 2.7, 1.6, 1.82
SWAP UTILIZADO: 15MB

TEMPO DE PROCESSAMENTO: 35 segundos

--------------------------------------------------------------------------------

TESTE COM 2 VMs (1 NÚCLEO - 768MB DE RAM EM CADA VM)
ANTES
LOAD AVERAGE: 0.6. 1.2. 1.7
SWAP UTILIZADO: 15MB (DESPREZÍVEL)

PICO
LOAD AVERAGE: 2.6, 1.6, 1.7
SWAP UTILIZADO: 18MB (DESPREZÍVEL)

TEMPO DE PROCESSAMENTO (MÉDIO): 94 segundos

--------------------------------------------------------------------------------

TESTE COM 3 VMs (1 NÚCLEO - 768MB DE RAM EM CADA VM)
ANTES
LOAD AVERAGE: 0.8, 1.2, 1.5
SWAP UTILIZADO: 18MB (DESPREZÍVEL)

PICO
LOAD AVERAGE: 4.5, 2.8, 2
SWAP UTILIZADO: 18MB (DESPREZÍVEL)

TEMPO DE PROCESSAMENTO (MÉDIO): 170 segundos

--------------------------------------------------------------------------------

TESTE COM 4 VMs (1 NÚCLEO - 768MB DE RAM EM CADA VM)
ANTES
LOAD AVERAGE: 0.5, 1.6, 1.8
SWAP UTILIZADO: 18MB (DESPREZÍVEL)

PICO
LOAD AVERAGE: 7.6, 4.3, 2.8
SWAP UTILIZADO: 30MB (DESPREZÍVEL)

TEMPO DE PROCESSAMENTO (MÉDIO): 388 segundos

--------------------------------------------------------------------------------

TESTE COM 5 VMs (1 NÚCLEO - 640MB DE RAM EM CADA VM)
ANTES
LOAD AVERAGE: 0.8, 2.0, 3.1
SWAP UTILIZADO: 30MB (DESPREZÍVEL)

PICO
LOAD AVERAGE: 11.7, 7.0, 4.8
SWAP UTILIZADO: 300MB

TEMPO DE PROCESSAMENTO (MÉDIO): 2041 segundos