Descubrí que no hay una respuesta simple y absoluta para preguntas como la suya. Cada solución de virtualización se comporta de manera diferente en pruebas de rendimiento específicas. Además, las pruebas como el rendimiento de E / S de disco se pueden dividir en muchas pruebas diferentes (lectura, escritura, reescritura, ...) y los resultados variarán de una solución a otra y de un escenario a otro. Es por eso que no es trivial señalar que una solución es la más rápida para E / S de disco, y es por eso que no hay una respuesta absoluta para etiquetas como gastos generales para E / S de disco.
Se vuelve más complejo cuando se trata de encontrar una relación entre diferentes pruebas de referencia. Ninguna de las soluciones que he probado tuvo un buen rendimiento en las pruebas de microoperaciones. Por ejemplo: Dentro de la VM, una sola llamada a "gettimeofday ()" tardó, en promedio, 11.5 veces más ciclos de reloj en completarse que en el hardware. Los hipervisores están optimizados para aplicaciones del mundo real y no funcionan bien en microoperaciones. Esto puede no ser un problema para su aplicación que puede encajar mejor como una aplicación del mundo real. Me refiero a micro-operación a cualquier aplicación que gaste menos de 1,000 ciclos de reloj para terminar (para una CPU de 2.6 GHz, se gastan 1,000 ciclos de reloj en 385 nanosegundos, o 3.85e-7 segundos).
Hice pruebas exhaustivas de referencia en las cuatro soluciones principales para la consolidación del centro de datos para la arquitectura x86. Hice casi 3000 pruebas comparando el rendimiento dentro de las máquinas virtuales con el rendimiento del hardware. He denominado 'sobrecarga' la diferencia del rendimiento máximo medido dentro de VM (s) con el rendimiento máximo medido en hardware.
Las soluciones:
- VMWare ESXi 5
- Microsoft Hyper-V Windows 2008 R2 SP1
- Citrix XenServer 6
- Red Hat Enterprise Virtualization 2.2
Los SO invitados:
- Microsoft Windows 2008 R2 64 bits
- Red Hat Enterprise Linux 6.1 64 bits
Información de prueba:
- Servidores: 2X Sun Fire X4150 cada uno con 8GB de RAM, 2X CPU Intel Xeon E5440 y cuatro puertos Ethernet gigabit
- Discos: discos SAS 6X 136GB a través de iSCSI a través de Gigabit Ethernet
Software de referencia:
CPU y memoria: referencia de Linpack para 32 y 64 bits. Esto es CPU y memoria intensiva.
E / S de disco y latencia: Bonnie ++
Red I / O: Netperf: TCP_STREAM, TCP_RR, TCP_CRR, UDP_RR y UDP_STREAM
Microoperaciones : rdtscbench : llamadas al sistema, comunicación entre tuberías de proceso
Los promedios se calculan con los parámetros:
CPU y memoria: PROMEDIO (HPL32, HPL64)
E / S de disco: PROMEDIO (put_block, rewrite, get_block)
E / S de red: PROMEDIO (tcp_crr, tcp_rr, tcp_stream, udp_rr, udp_stream)
Micro-operaciones PROMEDIO (getpid (), sysconf (), gettimeofday (), malloc [1M], malloc [1G], 2pipes [], simplemath [])
Para mi escenario de prueba, usando mis métricas, los promedios de los resultados de las cuatro soluciones de virtualización son:
Sobrecarga de la capa de VM, invitado de Linux:
Sobrecarga de la capa VM, invitado de Windows:
Tenga en cuenta que esos valores son genéricos y no reflejan el escenario de casos específicos.
Consulte el artículo completo: http://petersenna.com/en/projects/81-performance-overhead-and-comparative-performance-of-4-virtualization-solutions