Descobri que não há uma resposta simples e absoluta para perguntas como a sua. Cada solução de virtualização se comporta de maneira diferente em testes de desempenho específicos. Além disso, testes como rendimento de E / S de disco podem ser divididos em muitos testes diferentes (leitura, gravação, reescrita, ...) e os resultados variam de solução para solução e de cenário para cenário. É por isso que não é trivial apontar uma solução como sendo a mais rápida para E / S de disco, e é por isso que não há resposta absoluta para rótulos como sobrecarga para E / S de disco.
Fica mais complexo ao tentar encontrar relação entre diferentes testes de benchmark. Nenhuma das soluções que testei teve bom desempenho em testes de micro-operações. Por exemplo: Dentro da VM, uma única chamada para "gettimeofday ()" levou, em média, 11,5 vezes mais ciclos de clock para concluir do que no hardware. Os hipervisores são otimizados para aplicativos do mundo real e não funcionam bem em micro-operações. Isso pode não ser um problema para seu aplicativo que pode se encaixar melhor como aplicativo do mundo real. Quero dizer, por micro-operação qualquer aplicativo que gasta menos de 1.000 ciclos de clock para terminar (Para uma CPU de 2,6 GHz, 1.000 ciclos de clock são gastos em 385 nanossegundos, ou 3.85e-7 segundos).
Eu fiz extensos testes de benchmark nas quatro principais soluções para consolidação de data centers para arquitetura x86. Eu fiz quase 3000 testes comparando o desempenho dentro das VMs com o desempenho do hardware. Eu chamei de 'overhead' a diferença de desempenho máximo medido dentro de VM (s) com desempenho máximo medido em hardware.
As soluções:
- VMWare ESXi 5
- Microsoft Hyper-V do Windows 2008 R2 SP1
- Citrix XenServer 6
- Red Hat Enterprise Virtualization 2.2
Os sistemas operacionais convidados:
- Microsoft Windows 2008 R2 64 bits
- Red Hat Enterprise Linux 6.1 64 bits
Informações de teste:
- Servidores: 2X Sun Fire X4150, cada um com 8 GB de RAM, 2X CPU Intel Xeon E5440 e quatro portas Ethernet de gigabit
- Discos: 6X discos SAS de 136 GB sobre iSCSI sobre gigabit ethernet
Software de referência:
-
CPU e memória: referência da Linpack para 32 e 64 bits. Isso é intensivo em CPU e memória.
-
E / S de disco e latência: Bonnie ++
-
Rede I / O: Netperf: TCP_STREAM, TCP_RR, TCP_CRR, UDP_RR e UDP_STREAM
-
Micro-operações: rdtscbench : Chamadas de sistema, comunicação entre canais do processo
As médias são calculadas com os parâmetros:
-
CPU e memória: AVERAGE (HPL32, HPL64)
-
E / S de disco: AVERAGE (put_block, rewrite, get_block)
-
E / S de rede: AVERAGE (tcp_crr, tcp_rr, tcp_stream, udp_rr, udp_stream)
-
Micro-operações MÉDIA (getpid (), sysconf (), gettimeofday (), malloc [1M], malloc [1G], 2pipes [], simplemath [])
Para o meu cenário de teste, usando minhas métricas, as médias dos resultados das quatro soluções de virtualização são:
Sobrecarga da camada de VM, convidado do Linux:
-
CPU e memória: 14,36%
-
Rede E / S: 24,46%
-
E / S de disco: 8,84%
-
Latência de disco para leitura: 2,41 vezes mais lenta
-
Tempo de execução de micro-operações: 10,84 vezes mais lento
Sobrecarga da camada de VM, convidado do Windows:
-
CPU e média de memória para 32 e 64 bits: 13,06%
-
Rede I / O: 35,27%
-
E / S de disco: 15,20%
Por favor, note que esses valores são genéricos e não refletem o cenário de casos específicos.
Por favor, dê uma olhada no artigo completo: link