Xen vs. KVM in termini di prestazioni


36

Cosa c'è di più veloce sullo stesso hardware, Xen o KVM?

Sto cercando di far funzionare una tecnologia di virtualizzazione, che offre le migliori prestazioni.

Ci sono alcuni benchmark qui che ho trovato sull'argomento: http://virt.kernelnewbies.org/XenVsKVM

Mostrano KVM come un vincitore, con una differenza significativa nelle prestazioni - il che va contro l'idea che KVM sia un hypervisor di tipo 2, e per definizione dovrebbe essere più lento degli hypervisor di tipo 1 (come Xen) - o almeno quello che dicono articoli sul web.

Qualche idea sull'argomento?


Questo confronto sembra piuttosto negativo in quanto confronta KVM + 1xVM e Xen + 1VM ... Qual è il punto di avere la virtualizzazione se hai solo su VM?
Antoine Benkemoun,

KVM NON è un hypervisor di tipo 2. È sicuramente di tipo 1 ed è decisamente più vicino all'hardware di Xen. Quindi sì, date le stesse identiche condizioni, KVM dovrebbe funzionare meglio, specialmente con i moderni driver
virtIO

Se stai leggendo questo nel 2017 (qualcuno ha apportato una banale modifica alla domanda) allora ti rendi conto che questa domanda e le sue risposte sono VECCHI ANNI . Il panorama KVM vs Xen è molto diverso ora.
thomasrutter,

Risposte:


33

Tale benchmark confronta solo la velocità del sistema operativo nativo con un singolo sistema operativo guest. Non è certo un test nel mondo reale. Non penso che ci darei molto peso. La maggior parte del campo di KVM sostiene che Xen richiede troppi interruzioni e salti tra il kernel e lo spazio utente, ma dalla maggior parte dei benchmark più reali che ho visto che non è stato davvero realizzato e Xen sembra essere un po 'più veloce di KVM.

Mi dispiace non ho un link per eseguire il backup a portata di mano. Ma dirò che KVM sta migliorando rapidamente e sembra recuperare rapidamente set di funzionalità e stabilità.

Per quanto riguarda quale approccio è migliore. Il campo di Xen sosterrà che un vero hypervisor leggero richiede che la virtualizzazione sia sicura e veloce. Xen sta anche iniziando a essere supportato nel firmware da alcuni venditori, il che è anche bello. Il campo di KVM sosterrà che KVM è più semplice e che Linux è in grado di essere un buon hypervisor.

Alla fine non è ancora chiaro quale direzione alla fine vincerà. Xen ha sicuramente un vantaggio e ha già una buona quota di mercato. Ma non è ancora nel kernel mainline. Spero che presto cambierà e di sicuro si è parlato molto di questo nell'elenco dei kernel negli ultimi mesi. Red Hat è ora nel campo di KVM e lo spingerà come piattaforma di virtualizzazione preferita. Red Hat Linux 5.4 che uscirà a breve sarà il primo a includerlo. Ciò probabilmente attirerà i negozi che non sono ancora stati implementati o impegnati in una piattaforma di virtualizzazione.

Per quanto riguarda gli strumenti, sia Xen che KVM usano libvirt e QEMU e gli strumenti ad essi associati. Quindi condividono molti degli stessi strumenti come virt-manager.

Usiamo Xen al lavoro e funziona bene per noi. Ma ho esaminato KVM a causa di alcuni problemi di inoltro USB e passthrough PCI che non sono stato in grado di risolvere con Xen. Non sono sicuro che KVM sia migliore in questo, ma credo che lo scoprirò una volta provato. Una cosa che ho notato nella ricerca dei miei problemi USB è che la documentazione di KVM è più valutabile e organizzata rispetto a quella di Xen. Ma non esiste una piattaforma di virtualizzazione perfetta, quindi dovrai capire cosa ha senso per te.


Qualche idea se lo stesso si terrà in futuro? Dato che Redhat 5.4 arriverà presto con il supporto KVM nativo, mi piacerebbe sapere cosa non dovrò passare a KVM da Xen in 1/2 anno. Grazie.
SyRenity,

1
Non posso fare previsioni su ciò che riserva il futuro. Ma nessuna di queste piattaforme scomparirà. RedHat ha dichiarato di impegnarsi a supportare Xen e KVM. Solo il tempo ci dirà come va. Ma non mi preoccuperei di dover cambiare tra 6 mesi. Forse tra qualche anno ci sarà un chiaro leader nelle piattaforme di virtualizzazione open source.
3dinfluence,

Interessante nota che ti stai trasferendo su KVM per il supporto USB: ho dovuto solo pensare di allontanarmi a causa della mancanza del supporto USB 2.0! Immagino dal tuo post che Xen non sarà molto meglio.
jkp,

1
@jkp Stavo aspettando che qualche altro pezzo della nostra infrastruttura venisse sostituito. Che è stato appena completato. Quindi nelle prossime settimane potrei essere in grado di guardare più da vicino KVM. Tuttavia, nel mio caso, l'hardware non supporta IOMMU (VTd). Quindi non sono sicuro che il passaggio a KVM possa essere d'aiuto. XEN richiede il supporto IOMMU per il passthrough pci. Ma KVM supporta il passthrough di elementi USB e PCI usando libvirt. Quindi spero che funzionerà senza IOMMU. In questo momento sotto Xen l'unico modo che conosco per passare USB è passare attraverso il controller PCI USB, ma a quel punto le informazioni potrebbero essere datate.
3dinfluence,

1
@ 3dinfluence: penso che potresti fraintendere come viene implementato il supporto USB e PCI - libvirt non fa nulla di tutto ciò da solo, ma fornisce solo un modo per configurare le capacità sottostanti dell'hypervisor VM. In questo caso le funzionalità sono fornite da una combinazione dei moduli del kernel KVM e del codice dello spazio utente di Qemu.
jkp,

7

Personalmente sceglierei la virtualizzazione in base a usabilità, supporto, affidabilità e idoneità per le macchine virtuali che stai utilizzando.

Le velocità di trasferimento dei dati di rete Xen sembrano essere buone quanto l'hardware reale, ma ho anche avuto alcune battaglie con Xen e vLan e più schede Ethernet. Non ho esperienza di KVM, ma suggerirei anche di prendere in considerazione VMware ESX (i).


1
Le prestazioni di I / O del server VMware sono pessime. Se devi andare su vmware usa esx.
ko-dos,

6

FWIW: la risposta dipende interamente dalle tue esigenze, ora e in futuro.

Sì, lo so che è una risposta inutile. Sfortunatamente, è vero. La tua scelta di virtualizzazione influenzerà praticamente tutto ciò che fai in seguito, quindi devi porsi alcune domande.

(1) La differenza tra il 97% della performance nativa e il 96% della performance nativa (cifre prese in volo) è davvero così importante per te?

(1a) Se uno fa di meglio con l'accesso all'HD (il che implica davvero che stai utilizzando un database eccezionale o che non puoi permetterti la RAM aggiuntiva), e l'altro fa meglio con la rete, che è più importante per te ?

(2) Sei sicuro di usare gli strumenti forniti con entrambe le soluzioni?

(3) Il fatto che uno sia (in qualche modo) nativo di kernel Linux recenti e l'altro no, fa la differenza?

(3a) Ora, o sei mai stato ... ehm ... avrai mai bisogno di eseguire un diverso sistema operativo sotto virtualizzazione? Non deve essere Windows. Potrebbe essere FreeBSD, o anche Haiku, o altro. (Probabilmente Xen vince qui, ma ti consiglio di controllare.)

Osservando il quadro generale, vedo KVM come la risposta di Linux alle zone di Solaris. (Preferirei avere zone Solaris, ma vedo il parallelo.) Vedo Xen come una tecnologia hypervisor matura con supporto per più sistemi operativi, ma se non hai bisogno di più sistemi operativi, non importa così tanto.

Per essere assolutamente onesti, non puoi andare molto lontano in entrambi i modi (date avvertenze sopra). Preferisco Xen, perché sono andato a Cambridge; ma poi, se lavorassi per RH, probabilmente preferirei KVM.


6

Troverai informazioni molto interessanti sull'argomento nella seguente presentazione: Confronto quantitativo di Xen e KVM

La persona che ha fatto questo è un esperto di Xen, ma il confronto sembra abbastanza giusto.


Grazie per la presentazione, leggendo sembra che mentre Xen è al top su CPU e Network IO, KVM al top su HD IO. Ma leggendo questi numeri ( virt.kernelnewbies.org/XenVsKVM ), sembra che KVM abbia vinto a mani su ogni confronto. Qualche idea su dove sia la verità? :)
SyRenity,

Credo che la mia presentazione sembri più realistica. Funziona più di una VM alla volta. Il protocollo di test sembra più vicino alla realtà.
Antoine Benkemoun,

+1 Presentazione interessante! Xen sembra avere un migliore isolamento.
Jonas

5

Potrei andare fuori di testa qui, ma non penso che le prestazioni grezze siano la metrica più importante quando si tratta di tecnologie come questa.

Penso che l'usabilità e l'interfaccia siano importanti, nonché strumenti per supportare un'infrastruttura affidabile. Mi sembra che Xen abbia un set molto più robusto di applicazioni esistenti che lo supportano rispetto a KVM. Questo potrebbe non essere il caso, in quanto non ho prove a sostegno.

Qualunque cosa tu scelga, decidi qual è la soluzione migliore per te e guarda l'intero pacchetto, non solo le prestazioni non elaborate.


Devi dare un'occhiata a RHEV: la gestione è molto semplice e intuitiva.
dyasny,

2

Molte difficoltà o facilità nell'impostazione di KVM dipendono dalla distribuzione. Scegliere una distribuzione incentrata su Xen renderà Xen più semplice. Scegliere una distribuzione incentrata su KVM renderà KVM più semplice.

La domanda relativa agli strumenti è in qualche modo irrilevante perché entrambi usano libvirt. Ciò significa che nella maggior parte dei casi usi gli stessi strumenti di gestione per entrambi.


1

Alla fine del 2017, Amazon, che in precedenza era il più grande utente Xen, ha annunciato che utilizzerà KVM per tutti i nuovi tipi di istanze C5 . Per quanto ne so, solo il fornitore cloud SoftLayer è lasciato come un grande utente Xen. Linode è passato nel 2015 e ha registrato importanti miglioramenti delle prestazioni .

È difficile trovare un confronto delle prestazioni realistico e aggiornato, ma non sembra esserci un divario così grande tra le due soluzioni come si potrebbe pensare. A seconda del caso d'uso, Xen può essere ancora più veloce. KVM ha altri vantaggi, essendo parte del kernel Linux e abbracciato da RedHat, che sono anche rilevanti. Ad esempio, questa risposta spiega perché Google ha scelto KVM per Google Compute Engine.

Tuttavia, il fatto che quasi tutti i fornitori di cloud, in particolare Google e Amazon, scelgano KVM su Xen è un argomento forte che per i carichi di lavoro tipici, KVM è un'ottima scelta in termini di prestazioni.


Nota: Amazon utilizza una versione modificata di KVM, non una versione nativa. E non direi che hanno carichi di lavoro tipici, probabilmente hanno carichi di lavoro davvero pesanti e non comuni, imho
ALex_hha

@ALex_hha Quello che volevo dire è che devono scegliere una tecnologia che funzioni meglio per le applicazioni che verranno eseguite dai loro clienti. In tal senso, devono trovare un'installazione rapida su diversi casi d'uso. Ma sono d'accordo che ci sono altri scenari, come i sistemi embedded, in cui Xen può essere comparato in modo più favorevole.
Philipp Claßen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.