在我對 Apple Silicon 上 macOS 虛擬化的評測中,我引用了一些較早前取得的效能數據,當時並未考慮可用虛擬機的最低規格。鑒於近期對於在 MacBook Neo 上運行虛擬機的興趣,我認為有必要重新檢視這些數據,並從 macOS Tahoe 開始測試。
使用相同的主機 Mac mini M4 Pro,這次運行 macOS 26.4.1,搭載 14 核心(10 個性能核心 + 4 個效率核心)、48 GB 記憶體和 2 TB 內部 SSD,Geekbench 6.7.1 的分數在主機和分配了 5 虛擬核心及 16 GB 虛擬記憶體的虛擬機上都稍微提升了。
最後的測試結果依序為單精度、半精度和量化測試。
比較 CPU 單核心數據,虛擬機的速度約為主機的 98%。多核心 CPU 的比較較為困難,因為主機的核心數超過虛擬機兩倍以上,且其中四個是效率核心。不過,考慮到主機的性能核心數是虛擬機的兩倍,虛擬機在此測試中表現似乎比主機更好。
GPU 效能則稍遜一籌,虛擬機的表現約為主機的 95%,且主機未同時使用 GPU 時的表現更佳。
唯一令人失望的是虛擬神經引擎,在半精度和量化測試中表現遠低於主機。我們可以期待 macOS 在虛擬機中執行 AI 任務時,會更多依賴 CPU 和 GPU 而非神經引擎。
隨著 MacBook Neo 的推出,有人質疑它是否能運行虛擬機。雖然它應該能很好地作為 Linux 主機,但我曾懷疑它是否能在虛擬機中有效運行 macOS。結果我錯了。
為了評估 macOS 虛擬機能縮小到多小,我在我的虛擬化工具 Viable 上,對 macOS 26.4.1 的虛擬機進行了逐步減少 CPU 核心和記憶體分配的測試。虛擬機的顯示視窗設為標準的 1600 x 1000,並使用 Safari 進行測試,執行一些輕量日常任務,包括設定中的儲存分析。
從 4 虛擬核心和 8 GB 虛擬記憶體開始,虛擬機運行流暢,記憶體使用約 5 GB,接著降至 3 核心和 6 GB,記憶體使用降至 3.9 GB,運作依然良好。再降至 2 核心和 4 GB 記憶體時,實際使用約 3.1 GB,虛擬機仍能正常處理這些輕量任務。
在使用內部 SSD 容量較小的 Mac 建立虛擬機時,唯一需要注意的是虛擬機的大小。任何小於 50 GB 的 macOS 虛擬機都無法更新 macOS,為了舒適與安全,建議至少配置 60 GB。幸運的是,APFS 支援稀疏檔案格式,基本 100 GB 的虛擬機實際佔用磁碟空間約 54 GB,這對配備 512 GB SSD 的 MacBook Neo 來說較為合適。
雖然不適合用來執行大型語言模型,但在 MacBook Neo 上配置 2 虛擬核心和 4 GB 記憶體的 macOS 虛擬機,仍然非常可用且能應付日常任務。期待 Neo 的表現!
我現在正從一台 M1 Pro 的 Viable 虛擬機中撰寫此評論,該虛擬機在 4 GB 記憶體和 2 核心上運行 Tahoe,並使用 taskpolicy 強制虛擬機運行於這台「降級」的 14 吋入門款 Pro 的 2 個效率核心上。我已經想嘗試這個實驗很久了,這篇文章給了我推動力。
網頁載入速度較慢,但並非不可能。輸入框中的 taskpolicy 一詞在不到一秒內即顯示紅色底線,拼寫檢查並未明顯變慢。偶爾會有輕微的輸入延遲。值得注意的是,運行虛擬機時手掌靠墊的溫度明顯較低。
我稍後會在 Mac Mini 上重複此測試,屆時可在 4 個效率核心上運行虛擬機。
做得好——這真是一場冒險。請記住,Neo 的性能核心效能更強,類似 M2 或 M3 的性能核心,應該能輕鬆超越 M1 的效率核心。Howard。
確實如此!僅用效率核心運行虛擬機的使用場景,可能是作為獨立的檔案或媒體伺服器,性能不是重點,但也不會有運行第二個 macOS 性能核心所帶來的功耗負擔。
而且現在,有什麼不被 M1 打敗的呢?我又離題了,但我希望 Apple 能提供更好的舊機換購價格,或者更好的是提供邏輯板更換服務給這台「舊」的 MacBook Pro。XDR 螢幕仍是我見過最美的(除了該死的瀏海),且得益於 Apple 出色的電池管理,這台 4 年半的電池狀況良好,容量報告為 94%。如果 Apple 願意,我很樂意換上 M3 或 M4 的邏輯板。
這樣我就能擁有更多記憶體和更多核心,能做更多虛擬機相關的事情。
我不認為 M1 晶片性能不足,仍有許多人使用 M1 Mac 進行高負載工作。Howard。
我非常同意,99% 的時間我都被兩台基於 M1 的電腦速度震撼,即使已經使用超過五年半。但 M3、M4 和 M5 的存在,讓我在偶爾編碼影片時忍不住想「如果用最新的晶片,速度能快兩倍」。
請原諒我明顯的美式表達,但這就是他們讓你上鉤的方式!
我發現將 macOS 虛擬機大小設定為 100 GB 已經足夠我的需求。Linux 虛擬機通常 32 GB 就夠用,但我通常設定為 64 GB。記憶體分配方面,Linux 虛擬機 2 GB 通常足夠。我使用 Viable 和 Livable,在我的 M1 Mac(16GB 記憶體、1TB 內部 SSD)上運行。因此,配備 512 GB SSD 的 Neo 平台對 macOS 和 Linux 虛擬機來說是可行的。ARM Windows 虛擬機在 Neo 上可能另當別論,但我看到有報告說可用 Parallels Desktop 運行。
謝謝。你可以將虛擬機大小降到 100 GB 以下,甚至在緊急情況下低於 50 GB,但這會影響 macOS 更新能力,而更新通常是虛擬機空間需求最高的部分。Howard。
擁有 512 GB SSD(甚至更小)會比較棘手。經過幾次虛擬機容量不足必須重建的經驗,我建議使用較大的磁碟容量,因為稀疏格式讓虛擬機只佔用實際需要的空間。但你仍需要初始空間來建立映像檔,這在容量較小的硬碟上會比較麻煩。
我想知道你使用什麼軟體來運行虛擬機(UTM、VirtualBox、Fusion),你推薦哪個?
我使用自己開發的 Viable 建立虛擬機,並用 Vimy 運行,兩者皆免費。Howard
VMware Fusion 不支援 Apple Silicon 上的 macOS 虛擬機,且不像 Viable、UTM 或 Parallels 使用 Virtualization Framework。
根據 VirtualBox 文件,Apple Silicon 上似乎也不支援 macOS 虛擬化。
因此,Viable、UTM 和 Parallels 是 Apple Silicon 上運行 macOS 虛擬機的選擇。作為 VMware Fusion 用戶,我需要運行 macOS 虛擬機時會使用 UTM。Fusion 與 UTM 或 Viable 都能免費滿足我的需求。
我很好奇這與 Apple 自家的輕量級虛擬機方案相比如何。
我知道 Apple Container 不支援 macOS 實例,但若能比較 Apple Container 與 Linux 虛擬機(假設測試條件相同)會很有趣。
目前已有針對 Apple Container 的 GitHub GUI,無需命令列操作。
我提到這點是因為兩者在功能上有些重疊,且我們開發團隊中 Docker 安裝數量開始減少,轉而使用 Apple Container 實作。
Apple 從一開始就鼓勵兩種 Linux 虛擬化方式——帶完整 GUI 的和命令列方式。我猜 Apple Container 是從後者演變而來,但我尚未深入研究。由於 macOS 不存在純命令列版本,Apple Silicon 主機上虛擬化 macOS 只有一種方式。Howard。
我之前完全不知道這些存在,謝謝 Raoul 和 Howard!
是否有可能重用主機的 macOS 只讀快照來節省客機磁碟空間?更新可能會很複雜,但或許能將所有變更放在映像檔的資料部分,與不可變(啟用 SIP)的系統部分分開運行?
(我對 macOS 結構了解有限,若說得不清楚請見諒。)
抱歉,不行。而且你也不會想這麼做,因為這會限制客機只能運行與主機完全相同的 macOS,這違背虛擬化的主要目的。Howard。
哈哈,合理。我主要是在思考虛擬化版本的 Perl Golf。但確實有些使用場景,例如需要一個(大部分時間)安全的環境來執行不受信任的程式碼,所以也不是完全沒用;謝謝!
如果你想執行不受信任的程式碼,macOS 最佳方案是使用我免費提供的 ViableS 鎖定虛擬機。它在沙盒中運行,沒有共享資料夾,也可選擇不連網。我經常用它來執行已知惡意軟體。Howard。
我一直在嘗試用 Libvirt 撰寫腳本啟動 macOS 虛擬機,但遇到一個大問題無法解決。
虛擬機安裝並啟動,我能看到 macOS 安裝畫面(不確定是否能完成安裝)。
但滑鼠無法使用!如果有人願意幫忙看,我的程式碼放在 Paste,我用的是 Fedora。
抱歉,我猜你是在 Intel 主機的 Linux 上用 QEMU 虛擬化 Catalina。本文討論的是在 Apple Silicon Mac 上使用 macOS 的 Virtualization Framework 虛擬化 Monterey 及以後版本。這兩者完全不同,我懷疑這裡沒有人懂你在做什麼。建議你向使用 libvirt 的社群求助。Howard。