VMWare and UTM Performance Benchmark

我在開發時,很習慣用 Linux 當作主要的運行環境,然後用 Windows or macOS 當作作業環境 (IDE)。主要的工作配置是:

  1. VS Code runs on macOS
  2. 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

這次測試的詳細資訊:

測試結果

工具主要以 sysbeanch 為主,測試項目包含 CPU 速度、記憶體讀寫的 IOPS / Throughput、磁碟的 IOPS / Throughput

Intel Core i9 (iMac 2019 LATE)

Apple Sillicon M1 (Macbook Pro)

完整的測試資料請參考 這裡, 有其他像是 EC2, QNAM Virtual Station

摘要

幾個觀察到的結果:

  1. CPU 的效能:
    • Apple Sillicon 跟 Intel Core i9 兩者前後差一年,CPU 效能整整差 2.75 倍。
    • 不管是 VMWare or UTM,兩者 CPU 的效能都只有 Host Machine 的 1% 都不到,這現象值得深入了解。包含 sysbench 的測試方法,以及兩個 CPU 的虛擬化 (Virtualize) 和模擬 (Emulation) 的實作方法
    • 不管在哪個硬體上,VMWare 的效能都比 UTM 好。
  2. 記憶體:
    • VMWare 不管在哪個硬體上,效能居然都比 Host Machine 還要好
    • UTM 在 Intel Core i9 (iMac) 上的記憶體效能完全不行,但在 Apple Sillicon 就跟上了
    • Host Machine 對比,iMac 的 DDR4-2600 居然比 Apple Sillion SoC 還要快
  3. 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 不會有這個現象。

上述兩者,兩者我都連續個別使用超過兩週以上觀察到的。


延伸閱讀


▲ TOP ▲