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 不會有這個現象。

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


延伸閱讀



Comments

  • 全站索引
  • 關於這裏
  • 關於作者
  • 學習法則
  • 思考本質
  • 一些領悟
  • 分類哲學
  • ▲ TOP ▲