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 上都很慘 …
上述的測試,VM instance 基本的設定都是 8core, memory 16GiB, storage 80GiB SSD,安裝的作業系統分別是 Ubuntu 24.04 Server (x86_64 and ARM),其他細節設定都是預設,沒有調整。