VMWare and UTM Performance Benchmark
我在開發時,很習慣用 Linux 當作主要的運行環境,然後用 Windows or macOS 當作作業環境 (IDE)。主要的工作配置是:
- VS Code runs on macOS
- Application (java, golang, rust, C#) runs on Linux
主要是確保應用程式的 runtime 的 development and production 是一致的。
之前注意到 UTM 是因為想在 iPad Pro 上跑 Linux,但實驗後效果不如預期,所以放棄這個念頭。最近嘗試把執行環境在 Macbook Pro 上,用 UTM 跑 Ubuntu 24.04 Server,運行了差不多一個月左右,感覺還可以。過去我比較熟悉的 Virtualization 是 VMWare,連假期間順手 VMWare 兩者在 Intel 與 Apple Silicon M1 環境的效能差異。
Comparsion Matrix
下表示這次測試的矩陣,分成硬體和軟體,共四個維度:
Virtualization \ Hardware | Intel Core (i9) | Apple Silicon (M1) |
---|---|---|
VMWare Fusion | v | v |
UTM | v | v |
這次測試的詳細資訊:
- Hardware (Host Machine):
- iMac (2020 LATE)
- Intel: 3.6 GHz 8-Core Intel Core i9
- 64 GB 2667 MHz DDR4
- MacBook Pro
- M1 Max
- 64 GB
- iMac (2020 LATE)
- Software:
- Host Machine OS: macOS 15.0.1 (24A348)
- UTM: Version 4.5.4 (100)
- VMWare Fusion: Player Version 12.2.5 (20904517)
- Guest OS & Tools
測試結果
工具主要以 sysbeanch 為主,測試項目包含 CPU 速度、記憶體讀寫的 IOPS / Throughput、磁碟的 IOPS / Throughput
Intel Core i9 (iMac 2019 LATE)
Apple Sillicon M1 (Macbook Pro)
完整的測試資料請參考 這裡, 有其他像是 EC2, QNAM Virtual Station
摘要
幾個觀察到的結果:
- CPU 的效能:
- Apple Sillicon 跟 Intel Core i9 兩者前後差一年,CPU 效能整整差 2.75 倍。
- 不管是 VMWare or UTM,兩者 CPU 的效能都只有 Host Machine 的 1% 都不到,這現象值得深入了解。包含 sysbench 的測試方法,以及兩個 CPU 的虛擬化 (Virtualize) 和模擬 (Emulation) 的實作方法
- 不管在哪個硬體上,VMWare 的效能都比 UTM 好。
- 記憶體:
- VMWare 不管在哪個硬體上,效能居然都比 Host Machine 還要好
- UTM 在 Intel Core i9 (iMac) 上的記憶體效能完全不行,但在 Apple Sillicon 就跟上了
- Host Machine 對比,iMac 的 DDR4-2600 居然比 Apple Sillion SoC 還要快
- Storage:
- VMWare 在 Intel Core i9 上,IOPS / Througpht 都超過 Host Machine,在 M1 上就沒那麼好了
- UTM 不管在 Intel or M1 上都很慘 …
個人推薦
單純以效能來看,VMWare 的效能相當不錯,但是實際上使用起來,我個人偏好使用 UTM。我的使用情境是在 Host Machine 跑 VS Code,然後 Remote to VM (Linux)。
我這個使用情境 VMWare 的 VM 跑起來後,只要電腦休眠,不管是 Macbook 盒蓋,還是 iMac 用 Sleep 的方式,下次喚醒的時候 VMWare 的網路就會從 VS Code 斷掉,然後 VS Code 連回去之後,就會重新跑新的 VS Server on Linux,但是舊的 Process 並沒有被收走。換言之,反覆幾次之後,VM 的記憶體就會被吃完。UTM 不會有這個問題,喚醒後,連線都很正常。
VMWare 還有另一個問題 (以前就有的),不管是在 macOS or Windows 上跑的 VM,都會很容易超用指定的記憶體,開越久,暫約多。而 UTM 不會有這個現象。
上述兩者,兩者我都連續個別使用超過兩週以上觀察到的。