Hyper-V VS VMware
1:Hyper-V為Windows10自帶,不需要下載安裝,開啟後重啟即可,而Vmware需要下載安裝 2:Hyper-V虛擬硬碟採用vhdx格式,宿主機可直接讀取虛擬機器檔案,而Vmware需要自行對映 3:Hyper-V記憶體動態分配,當虛擬機器處於後臺執行時,自動降低記憶體使用率,而Vmware則是固定記憶體 4:Hyper-V掛起虛擬機器比較快,且可在不考慮虛擬系統執行的情況下直接關機,而Vmware掛起虛擬機器較慢,需要等到虛擬記憶體釋放掉才能關機 5:Hyper-V開啟後宿主機效能稍下降,而Vmware則不會 6:Hyper-V只能顯示固定大小(Linux),這導致我直接棄用Hyper-V,而Vmware在安裝vm-tools之後可以跟隨視窗動態調整大小 7:Hyper-V預設不能連線外網,且只有虛擬交換機的網路方案,Vmware預設NAT網路模式能連線外網,且有三種網路模式 8:Hyper-V USB外設不能直接連線虛擬機器,而Vmware可以 9:Hyper-V 支援的作業系統更少,對Windows支援更好,對Linux支援較差,如果要使用Linux虛擬機器(如Ubuntu),不推薦Hyper-V,而Vmware支援更多的作業系統 10:Hyper-V預設是用CPU來模擬顯示,效能較低,但可以透過手段對GPU進行虛擬化,而VMware安裝完Vmware-tool後直接可以利用GPU提升顯示效能
前言
相信各位機友對VMware Workstation(以下簡稱Vmware)不會陌生,狹義講就是虛擬機器,廣義來說是一個硬體虛擬化平臺,最常見的就是在VMware中裝各種作業系統,遊戲玩家會在Vmware中游戲多開與掛機、碼農會在Vmware中裝Linux系統開發編譯軟體、駭客會在虛擬機器中測試病毒程式、普通使用者可能會在虛擬中裝一些國產流氓軟體
十多年前擁有了人生中的第一臺筆記本電腦後才知道有虛擬機器這種東西,當時驚為天人!Windows中還能裝Windows,不僅能裝Windows還能安裝其他的非Windows系統,系統套系統,母雞生小雞,從那時開始,虛擬機器便是我電腦中必備工具之一!當然,那時VMware Workstation就已經出道了,但不知Hyper-V為何物,Hyper-V近些年才進入人們視野,Hyper-V 釋出在Windows Server 2008,但是直到Windows8釋出後Hyper-V才被內建,現在普遍使用的Windows10當然也內建了Hyper-V。
Hyper-V和VMware Workstation有什麼區別呢?目前地表存在兩種虛擬化架構分別是Type 1和Type 2,分別對應下圖左邊和右邊,Type 1直接跑在裸金屬上(就是直接跑在裸機上的意思,可能大家覺得裸金屬聽起來更酷,所以都這麼叫),Type 2需要一個託管的作業系統,它跑在託管的作業系統之上,本質上只是作業系統上的一個軟體
Hyper-V就是Type 1,當開啟之後原本的Windows系統便成了Hyper-V的一個虛擬機器,所以開啟了Hyper-V的Windows效能也會稍降,而VMware Workstation屬於Type 2,是Windows上的一個軟體,理論上講Type 1少了一層,效能更高。
那麼問題來了,在開啟了Hyper-V的Windows上能跑VMware Workstation嗎?這不兩層套娃了嗎?對,這確實是個問題,在某個版本之前的確是不相容的,開啟了Hyper-V後就不能使用VMware Workstation,但在202005開始相容
Vmware workstation升級到15.5.5版本後就可以相容Hyper-V了,但有限制:必須為Windows 10 20H1(也叫2004版)或更高版本
效能對比
思路:控制變數大法好
- 首先關閉Hyper-V(Windows預設就是關閉的),然後測試宿主機CPU、GPU、硬碟、網路四大件,再在Vmware中安裝WIndows,再次測試四大件
- 然後開啟Hyper-V,然後測試宿主機CPU、GPU、硬碟、網路四大件,再在Hyper-V中安裝相同版本的WIndows,再次測試四大件
把上面的兩種情況結果直接拿出來做對比
測試工具
鑑於這次測試,我專門蒐羅了一些測試工具
CPU跑分:Cinebench
Cinebench 是 MAXON Computer 推出的一款測試 CPU 渲染能力的軟體。MAXON Computer 公司推出的另一款更為人熟知的軟體其實是一款三維動畫渲染和製作軟體:Cinema 4D。透過 Cinebench 跑分測試就可以讓使用者方便地評價自己的 PC 在執行 Cinema 4D 時的表現。
介面長這樣,其實就是透過CPU單執行緒或多執行緒來渲染進行跑分
Cinebench點此官網下載
記憶體測試:AIDA64
AIDA64是一個執行在Microsoft Windows作業系統上的系統資訊、診斷和審計程式,用於顯示計算機的元件的詳細資訊,效能測試是它的功能之一,可以測試記憶體寫入和讀取速度
AIDA64是一個收費軟體,免費試用30天,對於我們的測試已經夠用了
AIDA64點此下載
硬碟IO跑分:AS SSD Benchmark
AS SSD Benchmark是一款來自德國的SSD專用測試軟體,可以測試連續讀寫、4K對齊、4KB隨機讀寫和響應時間的表現,並給出一個綜合評分。
SSD固態硬碟剛上市時一般就是用這個工具跑分
AS SSD Benchmark點此下載
顯示卡跑分:娛樂大師
顯示卡沒找到適合的工具,要麼就是3DMark這種巨無霸,想找一個免安裝的小跑分工具,無意間發現娛樂大師很適合,可以單獨選擇顯示卡進行跑分
娛樂大師綠色免安裝下載
圖吧工具箱
在搜尋工具的過程中瞭解到圖吧大屌開發的集大成的圖吧工具箱,功能很多很全,綠色免安裝,非營利性,感興趣的可自行測試
- 官網:http://www.tbtool.cn/
硬體資訊
本次測試涉及的硬體資訊
- CPU:AMD Ryzen 5 2600X 6核 12執行緒
- 主機板:華碩B350-PLUS
- 記憶體:威剛DDR4 2400MHz 3 x 8 = 24GB
- 顯示卡:NVIDIA GeForce GTX 1050Ti
- 硬碟:聯想HP EX900 SSD (宿主機) / 威剛 SP900 (虛擬機器)
軟體資訊
- 宿主機Windows版本:Windows10 64bit 19042.746 20H2
- 宿主機Hyper-V版本:10.0.19041.746
- 宿主機VMware Workstation版本:16.1.0 build-17198959
- 虛擬機器Windows版本:WIndows10 64bit 19042.631 20H2
備註:
- Hyper-V版本檢視命令
wmic datafile where name="c:\\windows\\system32\\vmms.exe" get version
評測結果
宿主機效能對比
如上圖所示,其中
- CPU:開啟Hyper-V CPU約有5.7%的效能損失,實測過程中Cinebench跑分最久,多次跑分結果趨向一致,因此該項資料受環境影響小,可信度高。
- GPU:娛樂大師跑分結果,幾乎一致,關閉Hyper-V分值略高,多次跑分資料差別大,資料可能受環境影響,不是Hyper-V導致
- 記憶體讀寫:開啟與關閉Hyper-V,速度幾乎一致,記憶體讀寫受環境影響大
- 硬碟:開啟與關閉Hyper-V,速度幾乎一致
結論:開啟Hyper-V與關閉Hyper-V宿主機效能幾乎一致,CPU效能略有損失,效能不會受到太大影響,平時使用幾乎無感知
Hyper-V對比VMware
Hyper-V裝Windows虛擬機器對比 VMware裝虛擬機器,其中VMware測試時已關閉Hyper-V
如上圖所示(注意,以上測試僅供娛樂),其中
- CPU:VMware略高,因為是2核心4執行緒下測試,所以比宿主機下跑分低
- GPU:GPU沒對比跑分,因為Hyper-V預設是用不了GPU,畫面是用CPU來模擬的,而VMware 16預設是可以使用到GPU的;後來才發現可以用過打patch的方式強制讓Hyper-V虛擬化GPU,後文有介紹
- 記憶體讀取:Hyper-V比VMware低太多,應該受環境因素影響(後來發現開的程式不同對記憶體讀取影響很大,所以測試的時候應該儘量不開啟其他程式)
- 硬碟:硬碟跑分情況也顯示Hyper-V低於VMware
結論:上述跑分僅供娛樂,反映不出Hyper-V與VMware的極限效能差別,但可以確定的是Hyper-V虛擬化GPU需要打patch,整體易用性不如VMware
Hyper-V給虛擬機器打Patch虛擬化GPU教程:
- 建立虛擬機器,並建立檢查點(恢復使用)
- 關閉檢查點功能
- 開啟powershell,執行以下命令
# win10為虛擬機器名字
$vm = "Win10"
Add-VMGpuPartitionAdapter -VMName $vm
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm
釋出於剛剛