Xen vs KVM en performance

36

Qu'est-ce qui est plus rapide sur le même matériel, Xen ou KVM?

J'essaie de me procurer une technologie de virtualisation qui donne les meilleures performances.

J'ai trouvé quelques repères ici sur le sujet: http://virt.kernelnewbies.org/XenVsKVM

Ils présentent KVM comme gagnant, avec des différences de performances significatives - ce qui va à l’encontre de l’idée que KVM est un hyperviseur de type 2, et par définition, il devrait être plus lent que les hyperviseurs de type 1 (comme Xen) - ou du moins ce que le articles sur le web disent.

Une idée sur le sujet?

SyRenity
la source
Cette comparaison semble assez mauvaise car elle compare KVM + 1xVM et Xen + 1VM ... Quel est l'intérêt de la virtualisation si vous ne possédez que sur une machine virtuelle?
Antoine Benkemoun
KVM n'est pas un hyperviseur de type 2. Il s’agit bien du type 1, et il est nettement plus proche du matériel que Xen. Alors oui, dans les mêmes conditions, KVM devrait offrir de meilleures performances, en particulier avec les pilotes virtIO modernes
dyasny
Si vous lisez ceci en 2017 (quelqu'un a fait une modification triviale de la question), alors réalisez que cette question et ses réponses datent de huit ans . Le paysage KVM vs Xen est très différent maintenant.
thomasrutter

Réponses:

33

Ce benchmark compare uniquement la vitesse du système d'exploitation natif à un système d'exploitation invité unique. Ce n'est pas vraiment un test réel. Je ne pense pas que je mettrais beaucoup de poids dessus. La plupart des partisans de la KVM estiment que Xen nécessite trop d'interruptions et de sauts entre le noyau et l'espace utilisateur, mais la plupart des tests de performance plus réels que j'ai vus ne se sont pas encore réalisés et Xen semble être un peu plus rapide. que KVM.

Désolé, je n'ai pas de lien pour sauvegarder ça. Mais je dirai que KVM s’améliore rapidement et semble rattraper rapidement le jeu de fonctionnalités et la stabilité.

Quant à quelle approche est la meilleure. Le camp Xen fera valoir qu’un véritable hyperviseur léger est indispensable pour que la virtualisation soit sécurisée et rapide. Xen commence également à être pris en charge dans le micrologiciel par certains fournisseurs, ce qui est également agréable. Le camp KVM affirmera que KVM est plus simple et que Linux peut être un bon hyperviseur.

À la fin, on ne sait toujours pas quelle direction gagnera en fin de compte. Xen a certainement une longueur d'avance et a déjà une belle part de marché. Mais ce n'est pas encore dans le noyau principal. Espérons que cela va bientôt changer et que la liste des noyaux en a beaucoup parlé ces derniers mois. Red Hat fait maintenant partie du camp KVM et le fera passer pour la plate-forme de virtualisation de choix. Red Hat Linux 5.4, qui sortira prochainement, sera le premier à l'inclure. Cela attirera donc probablement les magasins qui ne se sont pas encore déployés ou qui n’ont pas encore adopté de plate-forme de virtualisation.

En ce qui concerne les outils, Xen et KVM utilisent tous deux libvirt et QEMU, ainsi que les outils qui leur sont associés. Ils partagent donc bon nombre des mêmes outils, tels que virt-manager.

Nous utilisons Xen au travail et cela fonctionne bien pour nous. Mais je me suis intéressé au KVM en raison de problèmes de transfert USB et de relais PCI que je n’ai pas pu résoudre avec Xen. Je ne suis pas sûr que KVM soit meilleur à cet égard, mais j'imagine que je le saurai une fois que je l'aurai essayé. Une des choses que j'ai remarquées dans mes recherches sur mes problèmes USB est que la documentation de KVM est plus facile à évaluer et à organiser que celle de Xen. Mais comme il n’existe pas de plate-forme de virtualisation parfaite, vous devez déterminer ce qui est logique pour vous.

3fluence
la source
Avez-vous une idée de ce qui se passera à l'avenir? Comme Redhat 5.4 sera bientôt disponible avec la prise en charge native de KVM, j'aimerais savoir ce que je n'aurai pas à passer de KVM à Xen dans un an et demi. Merci.
SyRenity
1
Je ne peux prédire ce que l'avenir nous réserve. Mais aucune de ces plateformes ne va disparaître. RedHat a déclaré qu'il s'engageait à soutenir Xen ainsi que KVM. Seul le temps nous dira comment se joue celui-ci. Mais je ne m'inquiéterais pas de devoir changer dans 6 mois. Peut-être que dans quelques années, il y aura un leader clair dans les plates-formes de virtualisation open source.
3dinfluence
Il est intéressant de noter que je passe au KVM pour le support USB - je n’avais qu’à penser au départ en raison du manque de support USB 2.0! Je suppose que d'après votre message, Xen ne sera pas beaucoup mieux.
JKP
1
@jkp J'attendais le remplacement de quelques autres éléments de notre infrastructure. Ce qui vient d'être terminé. Donc, dans les semaines à venir, je pourrai peut-être examiner de plus près KVM. Cependant, dans mon cas, le matériel ne prend pas en charge IOMMU (VTd). Donc, je ne suis pas sûr si le passage à KVM aidera. XEN a besoin de la prise en charge IOMMU pour le pas en pci. Mais KVM prend en charge l’utilisation d’éléments USB et PCI via libvirt. J'espère donc que cela fonctionnera sans IOMMU. À l’heure actuelle, sous Xen, je sais que la seule manière de passer par USB est de passer par le contrôleur USB PCI, mais cette information peut être datée à ce stade.
3dinfluence
1
@ 3dinfluence: je pense que vous pouvez mal comprendre comment le support USB et PCI est implémenté - libvirt ne fait rien de tout cela par lui-même, il fournit seulement un moyen de configurer les fonctionnalités sous-jacentes de l'hyperviseur de machine virtuelle. Dans ce cas, les fonctionnalités sont fournies par une combinaison des modules du noyau KVM et du code de l'espace utilisateur Qemu.
JKP
7

Personnellement, je choisirais la virtualisation en fonction de la convivialité, du support, de la fiabilité et de l’adéquation des machines virtuelles que vous utilisez.

Les taux de transfert de données réseau Xen semblent être aussi bons que ceux du matériel réel, mais j'ai également eu quelques batailles avec Xen et vLans et plusieurs cartes Ethernet. Je n'ai aucune expérience de KVM, mais je vous suggérerais également de prendre en compte VMware ESX (i) également.

Michael Shaw
la source
1
Les performances d'E / S du serveur VMware sont très très mauvaises. Si vous devez utiliser vmware, utilisez esx.
ko-dos
6

FWIW: La réponse dépend entièrement de vos besoins, actuels et futurs.

Oui, je sais que c'est une réponse inutile. Malheureusement c'est vrai. Votre choix de virtualisation affectera à peu près tout ce que vous ferez par la suite. Vous devez donc vous poser quelques questions.

(1) La différence entre 97% de la performance native et 96% de la performance native (chiffres chiffrés) est-elle vraiment importante pour vous?

(1a) Si l'un réussit mieux avec l'accès HD (ce qui implique vraiment que vous utilisez une base de données géniale ou vous ne pouvez pas vous permettre d'avoir de la RAM supplémentaire), et que l'autre fonctionne mieux avec la mise en réseau, ce qui est plus important pour vous. ?

(2) Êtes-vous confiant d'utiliser les outils fournis avec l'une ou l'autre solution?

(3) Est-ce que le fait qu’un soit (en quelque sorte) natif des noyaux Linux récents, et que l’autre ne le soit pas, ait un impact?

(3a) Avez-vous maintenant, ou avez-vous déjà été ... eu ... aurez-vous besoin d'un autre système d'exploitation sous virtualisation? Il n'est pas nécessaire que ce soit Windows. Ce pourrait être FreeBSD, ou même Haiku, ou autre chose. (Xen gagne probablement ici, mais je vous suggère de vérifier.)

En regardant la grande image, je vois KVM comme la réponse de Linux aux zones Solaris. (Je préfère les zones Solaris, mais je vois le parallèle.) Je considère Xen comme une technologie d’hyperviseur mature prenant en charge plusieurs systèmes d’exploitation, mais si vous n’avez pas besoin de plusieurs systèmes d’exploitation, peu importe.

Pour être tout à fait honnête, vous ne pouvez pas vous tromper dans les deux cas (compte tenu des mises en garde ci-dessus). Je préfère Xen, parce que je suis allé à Cambridge. mais ensuite, si je travaillais pour RH, je préférerais probablement KVM.


la source
6

Vous trouverez des informations très intéressantes sur le sujet dans la présentation suivante: Comparaison quantitative de Xen et KVM

La personne qui a fait cela est un expert de Xen, mais la comparaison semble assez juste.

Antoine Benkemoun
la source
Merci pour la présentation. En lisant, il semble que si Xen est en tête sur le processeur et le réseau IO, KVM sur HD IO. Mais en lisant ces chiffres ( virt.kernelnewbies.org/XenVsKVM ), il semble que KVM ait gagné la main à chaque comparaison. Toute idée où est la vérité? :)
SyRenity
Je crois que ma présentation semble plus réaliste. Il exécute plusieurs ordinateurs virtuels à la fois. Le protocole de test semble plus proche de la réalité.
Antoine Benkemoun le
+1 Présentation intéressante! Xen semble avoir un meilleur isolement.
Jonas
5

Je ne suis peut-être pas dans le coup ici, mais je ne pense pas que la performance brute soit la mesure la plus importante lorsqu'il s'agit de technologies comme celle-ci.

Je pense que la convivialité et l’interface sont importantes, ainsi que des outils pour prendre en charge une infrastructure fiable. Il me semble que Xen dispose d’un ensemble bien plus robuste d’applications existantes que de KVM. Ce n'est peut-être pas le cas, car je n'ai aucune preuve à l'appui.

Quoi que vous choisissiez, choisissez la meilleure solution pour vous et examinez le package dans son intégralité, et pas seulement les performances brutes.

Matt Simmons
la source
Vous devez jeter un coup d'œil à RHEV - la gestion est très simple et conviviale.
Dyasny
2

Une grande partie de la difficulté ou de la facilité à configurer KVM dépend de la distribution. Choisir une distribution centrée sur Xen rendra Xen plus facile. Choisir une distribution centrée sur KVM facilitera la tâche de KVM.

La question sur les outils est quelque peu hors de propos parce que tous deux utilisent libvirt. Cela signifie que vous utilisez les mêmes outils de gestion pour les deux cas dans la plupart des cas.


la source
1

À la fin de 2017, Amazon, qui était auparavant le plus gros utilisateur de Xen, a annoncé qu'il utiliserait KVM pour tous ses nouveaux types d'instances C5 . À ma connaissance, seul le fournisseur de cloud SoftLayer est considéré comme un grand utilisateur Xen. Linode a basculé en 2015 et a signalé d'importantes améliorations de ses performances .

Il est difficile de faire une comparaison réaliste et à jour des performances, mais il ne semble pas y avoir un écart aussi énorme entre les deux solutions que vous pourriez le penser. Selon le cas d'utilisation, Xen peut être encore plus rapide. KVM présente d’autres avantages, faisant partie du noyau Linux et adopté par RedHat, qui sont également pertinents. Par exemple, cette réponse explique pourquoi Google a choisi KVM pour Google Compute Engine.

Néanmoins, le fait que presque tous les fournisseurs de cloud, en particulier Google et Amazon, choisissent KVM plutôt que Xen, est un argument de poids en ce que, pour les charges de travail classiques, KVM est un très bon choix en termes de performances.

Philipp Claßen
la source
Remarque: Amazon utilise une version modifiée de KVM, pas une version native. Et je ne dirais pas qu'ils ont une charge de travail typique, mais probablement une charge de travail vraiment lourde et inhabituelle, à mon humble avis
ALex_hha
@ALex_hha Ce que je voulais dire, c'est qu'ils doivent choisir une technologie qui convient le mieux aux applications que leurs clients utiliseront. En ce sens, ils doivent trouver une configuration rapide pour différents cas d'utilisation. Mais je conviens qu'il existe d'autres scénarios, tels que les systèmes intégrés, dans lesquels Xen pourrait se comparer plus favorablement.
Philipp Claßen