wiki:KVM_vs_Xen

Version 45 (modified by rock, 14 years ago) (diff)

--

KVM vs Xen


【Xen 和 KVM 雙方辯論會】

  • Xen: 我效能很好勒
  • KVM: 我都不用 Patch Kernel 勒

【特性比較】

使用的虛擬化技術 優點 與 Kernel 整合性 與硬體相依性 背後老大
Xen ParaVirtualization
Full Virtualization(需有 CPU 硬體支援)
CPU 效能佳 Guest 於 2.6.23 整合進 Kernel
但Host Kernel 仍需自行 Patch
不一定要 Intel VT-x 或 AMD-V 於2007年被 Citrix 併購
KVM Full Virtualization(需有 CPU 硬體支援) I/O 效能佳 2.6.20 已整合進 Kernel (2007/02) 一定要有 Intel VT-x 或 AMD-V Qumranet 於2008被 RedHat 併購
  • 註:Intel 的 VT-x 的指令集為 vmx,AMD 的指令集為 svm
    • Xen 支援 VT-x、VT-i 和 SVM,KVM 則只支援 VT-x 和 SVM
  • 註:CPU 排程 - Xen 使用自己維護的 BVT(Borrowed Virtual Time)演算法,KVM 則使用 Linux Kernel 本身提供的 CPU 排程演算法

【測試環境】

  • 硬體規格:
CPU Intel® Core™2 Quad Processor Q6600 (8M Cache, 2.40 GHz, 1066 MHz FSB)
支援 Intel VT-x
Ram 4GB
NIC RTL-8169 Gigabit Ethernet 10/100/1000
VGA NVIDIA GeForce 9400 GT
Disk SATA Disk 160GB
  • 軟體規格:
OS Debian Lenny 5.0.5(x86_64) |
Kernel 2.6.26-2
Xen 3.2.1
KVM 72

【測試案例】

1. CPU 效能比較

Xen-PV Xen-HVM KVM-HVM
VMmark
Phoronix Test Suite - gmpbench Test Result (XenPV01) Test Result (XenHVM01) [ Test Result (KVMhvm01)]
Phoronix Test Suite - Kernel Compilation Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)
Phoronix Test Suite - FFmpeg Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)
Phoronix Test Suite - Wavpack Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)

XenPV01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Para-Virtualization)
XenHVM01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Full Virtualization)
KVMhvm01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: KVM Full Virtualization)

小結: Xen Para-Virtualization 有最佳的效能,Full Virtualization 也是 Xen最佳 (Xen-PV > Xen-HVM > KVM-HVM)


2. Memory 效能比較

Xen-PV Xen-HVM KVM-HVM
Phoronix Test Suite - CacheBench Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)
Phoronix Test Suite - RAMspeed Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)

XenPV01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Para-Virtualization)
XenHVM01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Full Virtualization)
KVMhvm01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: KVM Full Virtualization)

小結: Xen Para-Virtualization 有最佳的效能,Full Virtualization 也是 Xen最佳 (Xen-PV > Xen-HVM > KVM-HVM)


3. Disk I/O 效能比較

  • 註:Xen 可選擇 file、tap:aio 和 xen4.0 最新 tap:tapdisk:aio 來設定 Guest disk
  • 註:KVM 可使用 virtio 來增加 I/O 效能 (KVM >= 60, kernel >=2.6.25)
  • Virtualized Block Device I/O Performance
    • 樓上那位大大的 Disk I/O 測試總結:
    • (1) Xen is actually pretty damn good
      (2) KVM performance is sorry with full device emulation (expected)
      (3) KVM+VirtIO is better, but nowhere near Xen Paravirt
Xen-PV Xen-HVM KVM-HVM
Phoronix Test Suite - dbench Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)
Phoronix Test Suite - IOzone Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)
Phoronix Test Suite - Thread I/O Test Result (XenPV01) Test Result (XenHVM01) Test Result (KVMhvm01)

XenPV01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Para-Virtualization)
XenHVM01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Full Virtualization)
KVMhvm01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: KVM Full Virtualization)

小結: Xen Para-Virtualization 有最佳的效能,Full Virtualization 也是 Xen最佳 (Xen-PV > Xen-HVM > KVM-HVM)


4. Network I/O 效能比較

Xen-PV Xen-HVM KVM-HVM
Phoronix Test Suite [ Test Result (XenPV01)] [ Test Result (XenHVM01)] [ Test Result (KVMhvm01)]

XenPV01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Para-Virtualization)
XenHVM01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Full Virtualization)
KVMhvm01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: KVM Full Virtualization)

小結:


5. Graphics 效能比較

Xen-PV Xen-HVM KVM-HVM
CUDA - GPU-accelerated LAPACK [ Test Result (XenPV01)] [ Test Result (XenHVM01)] [ Test Result (KVMhvm01)]
CUDA - Performance Primitives [ Test Result (XenPV01)] [ Test Result (XenHVM01)] [ Test Result (KVMhvm01)]
Phoronix Test Suite [ Test Result (XenPV01)] [ Test Result (XenHVM01)] [ Test Result (KVMhvm01)]

XenPV01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Para-Virtualization)
XenHVM01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: Xen Full Virtualization)
KVMhvm01 規格 = 1 CPU + 10GB HD + 1GB RAM + 500MB SWAP (說明: 虛擬機器數量一台: KVM Full Virtualization)

小結:



【總結】


【Reference】