Xen vs. KVM en rendimiento

36

¿Qué es más rápido en el mismo hardware, Xen o KVM?

Estoy tratando de elegir una tecnología de virtualización para que funcione, lo que brinda el mejor rendimiento.

Aquí hay algunos puntos de referencia que encontré sobre el tema: http://virt.kernelnewbies.org/XenVsKVM

Muestran a KVM como un ganador, con una diferencia significativa en el rendimiento, lo que va en contra de la idea de que KVM es un hipervisor de tipo 2 y, por definición, debería ser más lento que los hipervisores de tipo 1 (como Xen), o al menos eso es lo que artículos en la web dicen.

¿Alguna idea sobre el tema?

SyRenity
fuente
Esa comparación parece bastante mala ya que compara KVM + 1xVM y Xen + 1VM ... ¿Cuál es el punto de tener virtualización si solo tienes en VM?
Antoine Benkemoun
KVM NO es un hipervisor tipo 2. Definitivamente es de tipo 1, y definitivamente está más cerca del hardware que Xen. Entonces, sí, dadas las mismas condiciones, KVM debería funcionar mejor, especialmente con los controladores virtIO modernos
dyasny
Si estás leyendo esto en 2017 (alguien hizo una edición trivial de la pregunta), entonces date cuenta de que esta pregunta y sus respuestas son OCHO AÑOS . El paisaje KVM vs Xen es muy diferente ahora.
thomasrutter

Respuestas:

33

Ese punto de referencia solo compara la velocidad del sistema operativo nativo con un único sistema operativo invitado. No es una prueba del mundo real. No creo que le ponga mucho peso. La mayoría del campamento de KVM argumenta que Xen requiere demasiadas interrupciones y saltos entre el kernel y el espacio de usuario, pero de la mayoría de los puntos de referencia más reales que he visto que realmente no se han realizado y Xen parece ser un poco más rápido que KVM.

Lo siento, no tengo un enlace que lo respalde a mano. Pero diré que KVM está mejorando rápidamente y parece estar alcanzando rápidamente el conjunto de características y la estabilidad.

En cuanto a qué enfoque es mejor. El campamento de Xen argumentará que un verdadero hipervisor ligero y ligero requiere virtualización para ser seguro y rápido. Xen también está comenzando a ser compatible con el firmware de algunos proveedores, lo que también es bueno. El campamento de KVM argumentará que KVM es más simple y que Linux es capaz de ser un buen hipervisor.

Al final, aún no está claro qué dirección finalmente ganará. Xen ciertamente tiene una ventaja y ya tiene una buena participación de mercado. Pero todavía no está en el núcleo de la línea principal. Esperemos que eso cambie pronto y ciertamente se ha hablado mucho sobre esto en la lista de kernel en los últimos meses. Red Hat está en el campamento KVM ahora y lo impulsará como la plataforma de virtualización elegida. Red Hat Linux 5.4, que saldrá en breve, será el primero en incluirlo. Por lo tanto, es probable que eso atraiga a las tiendas que aún no se han implementado o comprometido con una plataforma de virtualización.

En cuanto a las herramientas, tanto Xen como KVM usan libvirt y QEMU y las herramientas asociadas con ellas. Por lo tanto, comparten muchas de las mismas herramientas, como virt-manager.

Usamos Xen en el trabajo, y nos funciona bien. Pero he estado buscando en KVM debido a algunos problemas de reenvío de USB y transferencia de PCI que no he podido resolver con Xen. No estoy seguro de que KVM sea mejor en esto, pero creo que lo descubriré una vez que lo intente. Una cosa que he notado al investigar mis problemas de USB es que la documentación de KVM es más evaluable y organizada en comparación con la de Xen. Pero no existe una plataforma de virtualización perfecta, por lo que deberá descubrir qué tiene sentido para usted.

3dinfluence
fuente
¿Alguna idea de si la misma se mantendrá en el futuro? Como Redhat 5.4 llegará pronto con soporte KVM nativo, me gustaría saber qué no tendré que cambiar a KVM de Xen en medio año. Gracias.
SyRenity
1
No puedo hacer predicciones sobre lo que depara el futuro. Pero ninguna de estas plataformas va a desaparecer. RedHat ha dicho que están comprometidos a apoyar tanto a Xen como a KVM. Solo el tiempo dirá cómo se desarrolla este. Pero no me preocuparía tener que cambiar en 6 meses. Quizás dentro de unos años haya un líder claro en las plataformas de virtualización de código abierto.
3dinfluence
Es interesante que note mudarse a KVM para compatibilidad con USB: ¡solo tuve que pensar en mudarme debido a la falta de compatibilidad con USB 2.0! Supongo por tu publicación que Xen no va a ser mucho mejor.
jkp
1
@jkp Estaba esperando que se reemplazaran algunas otras piezas de nuestra infraestructura. Que acaba de completarse. Por lo tanto, en las próximas semanas podría mirar más de cerca a KVM. Sin embargo, en mi caso, el hardware no es compatible con IOMMU (VTd). Así que no estoy seguro de si mudarse a KVM ayudará. XEN requiere soporte de IOMMU para el paso de pci. Pero KVM admite el paso de elementos USB y PCI mediante libvirt. Así que espero que funcione sin IOMMU. En este momento, bajo Xen, la única forma en que sé pasar USB es pasar el controlador PCI USB, pero esa información puede estar fechada en este momento.
3dinfluence el
1
@ 3dinfluence: creo que podría malinterpretar cómo se implementa la compatibilidad con USB y PCI: libvirt no hace nada de esto por sí solo, solo proporciona una forma de configurar las capacidades subyacentes del hipervisor VM. En este caso, las capacidades son proporcionadas por una combinación de los módulos del kernel KVM y el código de espacio de usuario Qemu.
jkp
7

Yo personalmente elegiría la virtualización basada en usabilidad, soporte, confiabilidad e idoneidad para las máquinas virtuales que está utilizando.

Las tasas de transferencia de datos de red de Xen parecen ser tan buenas como el hardware real, pero también he tenido algunas batallas con Xen y vLans y varias tarjetas Ethernet. No tengo experiencia en KVM, pero también te sugiero que consideres VMware ESX (i) también.

Michael Shaw
fuente
1
El rendimiento de IO del servidor VMware es muy, muy malo. Si tiene que usar vmware, use esx.
ko-dos
6

FWIW: La respuesta depende completamente de sus necesidades, ahora y en el futuro.

Sí, sé que es una respuesta inútil. Lamentablemente es verdad. Su elección de virtualización afectará prácticamente todo lo que haga después, por lo que debe hacerse algunas preguntas.

(1) ¿Es realmente importante para usted la diferencia entre el 97% del rendimiento nativo y el 96% del rendimiento nativo (cifras extraídas del aire)?

(1a) Si a uno le va mejor con el acceso a HD (lo que realmente implica que está utilizando una excelente base de datos, o que no puede permitirse la RAM adicional), y al otro le va mejor con las redes, lo cual es más importante para usted ?

(2) ¿Confía en utilizar las herramientas proporcionadas con cualquiera de las soluciones?

(3) ¿El hecho de que uno es (más o menos) nativo de los núcleos de Linux recientes, y el otro no, hace la diferencia?

(3a) ¿Ahora, o alguna vez ha sido ... er ... alguna vez necesitará ejecutar un sistema operativo diferente bajo virtualización? No tiene que ser Windows. Puede ser FreeBSD, o incluso Haiku, o lo que sea. (Xen probablemente gane aquí, pero le sugiero que compruebe).

Mirando el panorama general, veo KVM como la respuesta de Linux a las zonas de Solaris. (Prefiero tener zonas de Solaris, pero veo el paralelo.) Veo a Xen como una tecnología de hipervisor madura con soporte para múltiples sistemas operativos, pero si no necesita múltiples sistemas operativos, eso no importa mucho.

Para ser sincero, no puedes equivocarte de ninguna manera (dadas las advertencias anteriores). Prefiero Xen, porque fui a Cambridge; pero luego, si trabajara para RH, probablemente preferiría KVM.


fuente
6

Encontrará información muy interesante sobre el tema en la siguiente presentación: Comparación cuantitativa de Xen y KVM

La persona que hizo esto es un experto en Xen, pero la comparación parece bastante justa.

Antoine Benkemoun
fuente
Gracias por la presentación, leer parece que mientras Xen es el mejor en CPU y Network IO, KVM es el mejor en HD IO. Pero al leer estos números ( virt.kernelnewbies.org/XenVsKVM ), parece que KVM ganó manos en cada comparación. ¿Alguna idea de dónde está la verdad? :)
SyRenity
Creo que mi presentación parece más realista. Ejecuta más de una VM a la vez. El protocolo de prueba parece más cercano a la realidad.
Antoine Benkemoun
+1 ¡Presentación interesante! Xen parece tener un mejor aislamiento.
Jonas
5

Podría estar yendo por las ramas aquí, pero no creo que el rendimiento bruto sea la métrica más importante cuando se trata de tecnologías como esta.

Creo que la usabilidad y la interfaz son importantes, así como las herramientas para soportar una infraestructura confiable. Me parece que Xen tiene un conjunto mucho más robusto de aplicaciones existentes que lo admiten que KVM. Ese podría no ser el caso, ya que no tengo evidencia que lo respalde.

Elija lo que elija, decida cuál es la mejor solución para usted y observe el paquete completo, no solo el rendimiento en bruto.

Matt Simmons
fuente
Debe echar un vistazo a RHEV: la administración es muy simple y fácil de usar.
dyasny
2

Gran parte de la dificultad o la facilidad para configurar KVM depende de la distribución. Elegir una distribución centrada en Xen hará que Xen sea más fácil. Elegir una distribución centrada en KVM hará que KVM sea más fácil.

La pregunta de las herramientas es algo irrelevante porque ambos usan libvirt. Esto significa que usa las mismas herramientas de administración para ambos en la mayoría de los casos.


fuente
1

A finales de 2017, Amazon, que anteriormente era el mayor usuario de Xen, anunció que utilizará KVM para todos sus nuevos tipos de instancias C5 . Que yo sepa, solo el proveedor de la nube SoftLayer queda como un gran usuario de Xen. Linode cambió en 2015 e informó importantes mejoras de rendimiento .

Es difícil encontrar una comparación de rendimiento realista y actualizada, pero no parece haber una brecha tan grande entre ambas soluciones como podría pensar. Dependiendo del caso de uso, Xen puede ser aún más rápido. KVM tiene otros beneficios, ser parte del kernel de Linux y ser aceptado por RedHat, que también son relevantes. Por ejemplo, esta respuesta explica por qué Google elige KVM para Google Compute Engine.

Aún así, el hecho de que casi todos los proveedores de la nube, especialmente Google y Amazon, eligen KVM en lugar de Xen es un fuerte argumento de que, para las cargas de trabajo típicas, KVM es una muy buena opción en términos de rendimiento.

Philipp Claßen
fuente
Nota: Amazon usa una versión modificada de KVM, no una nativa. Y no diría que tienen cargas de trabajo típicas, probablemente tienen cargas de trabajo realmente pesadas y poco comunes, en mi humilde opinión
ALex_hha
@ALex_hha Lo que quise decir es que tienen que elegir una tecnología que funcione mejor para las aplicaciones que ejecutarán sus clientes. En ese sentido, tienen que encontrar una configuración que sea rápida en diferentes casos de uso. Pero estoy de acuerdo en que hay otros escenarios, como los sistemas integrados, donde Xen puede compararse de manera más favorable.
Philipp Claßen el