性能基準測試:KVM大戰Xen

在上周,我們對 KVM 和 Xen 近幾年裡在性能上的改進進行了一些有趣的探討后,我打算自己做一些這方面的小研究。我能找到的最新的資料,是來自2013年 Phoronix Haswell 性能評測上的基準測試。當然,還有其它一些2011年的評測,不過由於 Xen 被收錄進 Kernel 3.0,它們都已被熱烈地討論過。

2011年的測試提供了許多很好的基準報表,在三年後的現在,我盡最大努力把它們列出的屬性重新測試一遍。但我刪減了其中兩三個基準測試,原因是它們在未經特定優化的配置后跑出來的數據不是很好,或者它們需要跑很長時間才能得到結果。

測試環境

測試環境由兩台一模一樣的超微伺服器組成,分別都配備一顆Intel 至強 E3-1220(4核,3.10GHz),24G 金士頓 DDR3 內存,4塊西數 RE-3 160G 磁碟(組成 RAID10 陣列)。另外 BIOS 也是一模一樣。

Advertisements

所有測試項目(即實體機和虛擬機)都在 Fedora 20 (開 SELinux)上進行,並且測試過程中幾乎沒有運行的不相關的服務。這裡列一下相關服務的版本:

  • Kernel: 3.14.8

  • For KVM: qemu-kvm 1.6.2

  • For Xen: xen 4.3.2

根文件系統都是使用默認配置的 XFS。虛擬機使用 virt-manager 來創建(virt-mamager 也使用默認配置)。虛擬磁碟使用 raw 鏡像,容量為 8GB,虛擬4顆 CPU。Xen 虛擬機使用PVHVM建立虛擬磁碟。

附加說明

也許有人會考慮到 Fedora 是紅帽公司所有,紅帽一直在維護 KVM,而 Xen 則自從在2009年紅帽重新選擇 KVM 作為虛擬化產品后,再沒得到這個公司的重要改進。我將這個因素排除在了測試所考慮的範圍之外,不過仍然可以在心裡稍微注意一下。

Advertisements

並且,資源競爭產生的影響也有被嚴格控制並最小化。在大多數虛擬伺服器上,你可以跑多個虛擬機,而這些虛擬機會爭用 CPU 時間片、磁碟 IO、網路帶寬等等資源。在本測試中也不考慮這些因素。一台虛擬機搶到資源少,性能就差,而另一台搶得多,性能就好(LCTT譯註:它們的性能總和,就可 以大致當作是 KVM 或 Xen 的性能了)。

本測試運行在 Intel 的 CPU 上。如果使用的是 AMD 或 ARM,可能有些數據會不一樣。

結果

本測試使用裸機作為虛擬服務測試的基準設備。在不跑虛擬機的情況下,兩台裸機的性能偏差不會大於0.51%

在幾乎所有測試中,KVM 的性能相比宿主機而言下降了1.5%以內,只有兩項測試例外。第一個是 7-zip 壓縮,比宿主機慢了 2.79%。第二個就奇怪了,我們搭了一個郵件伺服器,用 PostMark 測試其性能,結果表明 KVM 竟比宿主機快了4.11%。然後我在兩台伺服器中重新跑了幾遍 PostMark 測試,結果性能差異基本不變,浮動都在最初測試結果的1%以內。由於我對 virtio 的內部機制沒有很深的理解,我只能在以後再對這個怪現象進行進一步了解。

Xen 的性能相對宿主機而言差異就比較大了。有3項測試性能下降在2.5%以內,剩下的性能下降率都是 KVM 的2~4倍。PostMark 測試的性能比 KVM 慢了14.41%,這結果令我大吃一驚。重新跑了下測試,性能差還是幾乎不變,浮動都在最初結果的2%以內。KVM 表現最好的 CPU 測試:MAFFT 對齊測試,是 Xen 表現倒數第二差的。

現在奉上一個簡短得總結表:


Best ValueBare MetalKVMXen
C-Raylower35.3535.6636.13
POV-Raylower230.02232.44235.89
Smallptlower160162167.5
John the Ripper (Blowfish)higher30262991.52856
John the Ripper (DES)higher7374833.57271833.56911167
John the Ripper (MD5)higher4954848899.546653.5
OpenSSLhigher397.68393.95388.25
7-Ziphigher12467.512129.511879
Timed MAFFT Alignmentlower7.787.7958.42
CLOMPhigher3.33.2853.125
PostMarkhigher366738243205

如果需要完整數據,請查看Goole Docs 電子表格。

結論

基於上面的測試環境,KVM 的性能損耗幾乎都在2%以內,Xen 則在十多項測試中有3項損耗在2.5%以內,而其他幾項損耗都在5~7%之間。雖然 KVM 在 PostMark 測試中性能表現優異,但這是眾多測試中僅有的一項 I/O 測試,如果想證明 KVM 確實在 I/O 處理方面很強悍,就需要更多測試。

對我來說,我想要深入了解一下 KVM 和 Xen 在 I/O 方面的處理,以及它們之間為什麼會有這麼大的差別。我也許還會跑一些有競爭的測試,來看看虛擬機在有壓力的條件下是否真的能比宿主機表現得更出色。

我鼓勵讀者通過使用Phoronix 測試套件來進行一些基準測試,你們可以找到一些能模仿你們工作環境的用例。如果你的工作環境是低 CPU 高 I/O,你可以找找套件裡面的 I/O 壓力測試。另一方面,如果你的工作是音頻、視頻轉碼,你可以試試套件裡面的 x264 或 mp3 測試。

更新:Chris Behrens 指出, 我忘了提到 Xen 虛擬機類型了。這裡補充下,我使用的是 PVHVM 模型(LCTT譯註:目前支持的模型包括 PV、HVM 和 PVHVM),因為在 Xen 4.3 中這個選擁有最好的性能。另外需要注意的是在 Xen 4.4 中可以使用 PVH,但是在 Fedora 20 中還沒有使用 Xen 4.4。

via:http://major.io/2014/06/22/performance-benchmarks-kvm-vs-xen/

譯者:bazz2校對:ReiNoir

本文由LCTT原創翻譯,Linux中國榮譽推出


Advertisements

你可能會喜歡