- Kết quả đo lại macOS 26.4.1 VM trên Mac mini M4 Pro cho thấy ngay cả với cấu hình 5 lõi ảo và 16GB vRAM, hiệu năng CPU đơn nhân và GPU vẫn gần sát với máy chủ
- Theo Geekbench 6.7.1, CPU đơn nhân đạt VM 3.855 / host 3.948, GPU Metal đạt VM 106.896 / host 111.970, tương ứng khoảng 98% và 95% so với host
- CPU đa nhân đạt VM 13.222 / host 23.342; do host có 14 lõi (10 P + 4 E) còn VM có 5 lõi ảo nên khó so sánh trực tiếp, nhưng hiệu năng VM vẫn khá tốt
- Phần yếu nhất là Neural Engine ảo; trong các bài thử CoreML half-precision và quantized, nó chậm hơn host đáng kể, và có thể kỳ vọng các tác vụ AI trong VM sẽ được xử lý bằng CPU và GPU
- Trong bài thử cấu hình tối thiểu, chỉ với 2 lõi ảo và 4GB bộ nhớ vẫn xử lý bình thường các tác vụ nhẹ như Safari và phân tích dung lượng lưu trữ trong Cài đặt; nếu tính đến cập nhật macOS thì dung lượng lưu trữ VM tối thiểu phù hợp là 60GB
Bối cảnh thử nghiệm
- Các con số hiệu năng dùng trong bài đánh giá ảo hóa macOS trên Apple silicon là các số đo trước đó, và chưa đề cập đến cấu hình tối thiểu để có một VM đủ dùng
- Trong bối cảnh ngày càng có nhiều quan tâm đến việc chạy VM trên MacBook Neo, bài viết kiểm tra lại hiệu năng và cấu hình tối thiểu theo macOS Tahoe
Đo hiệu năng và cách diễn giải
- Máy host dùng để thử nghiệm là Mac mini M4 Pro, chạy macOS 26.4.1, cấu hình 14 lõi (10 P + 4 E), RAM 48GB, SSD trong 2TB
- Máy khách VM được cấp 5 lõi ảo và 16GB RAM ảo
- Điểm Geekbench 6.7.1 của cả host và VM đều nhanh hơn đôi chút so với trước đây
- Kết quả đo như sau
- CPU đơn nhân: VM 3.855, host 3.948
- CPU đa nhân: VM 13.222, host 23.342
- GPU Metal: VM 106.896, host 111.970
- Neural Engine CoreML: VM 5.291 / 8.577 / 6.877, host 5.973 / 41.251 / 56.616
- Ba con số của Neural Engine CoreML lần lượt là kết quả cho các bài thử đơn chính xác, bán chính xác, lượng tử hóa
- Kết quả CPU đa nhân khó so sánh trực tiếp vì host có số lõi nhiều hơn VM hơn gấp đôi, trong đó có 4 lõi E
- So sánh hiệu năng GPU là kết quả trong điều kiện host không đồng thời cạnh tranh sử dụng GPU
- Khi chạy trong VM, có thể kỳ vọng macOS sẽ xử lý các tác vụ AI bằng CPU và GPU thay vì Neural Engine
Thử nghiệm cấu hình tối thiểu
- Sau khi MacBook Neo xuất hiện, đã có sự quan tâm đến việc liệu thiết bị đó có thể chạy VM hay không
- Với vai trò host Linux thì có vẻ ổn, nhưng việc nó có thể làm được công việc hữu ích với macOS VM hay không từng bị nghi ngờ; tuy nhiên thử nghiệm thực tế cho thấy là có thể
- Để xác nhận cấu hình tối thiểu, cùng VM macOS 26.4.1 đó được chạy trong Viable với mức cấp phát lõi CPU và bộ nhớ giảm dần
- Cửa sổ hiển thị VM được đặt ở chuẩn 1600 × 1000
- Safari được dùng theo nhiều cách khác nhau, cùng với các tác vụ hằng ngày nhẹ bao gồm phân tích dung lượng lưu trữ trong Cài đặt
- Kết quả theo từng cấu hình như sau
- Với 4 lõi ảo và 8GB vRAM, VM chạy hoàn toàn mượt mà, bộ nhớ sử dụng khoảng 5GB
- Với 3 lõi và 6GB, mức dùng bộ nhớ giảm còn 3,9GB và mọi tác vụ đều hoạt động tốt
- Với 2 lõi và 4GB bộ nhớ, chỉ dùng 3,1GB và vẫn tiếp tục xử lý bình thường các tác vụ nhẹ
- Một macOS VM chỉ được cấp 2 lõi ảo và 4GB bộ nhớ cũng có vẻ khả thi trên MacBook Neo, và có thể đáp ứng tốt các công việc hằng ngày
- Đây không phải là nơi để thử chạy LLM, nhưng đủ hữu dụng cho các tác vụ macOS nhẹ
Dung lượng lưu trữ và giới hạn cập nhật
- Khi tạo VM trên các máy Mac có SSD trong dung lượng nhỏ, cần chú ý đến kích thước VM
- macOS VM nhỏ hơn nhiều so với 50GB sẽ không thể thực hiện cập nhật macOS
- Để có dư địa và an toàn, nên nhắm mức tối thiểu 60GB
- Trên APFS, VM được lưu dưới dạng sparse file, nên ngay cả VM mặc định 100GB cũng chỉ cần khoảng 54GB trên đĩa thực tế
- Cấu hình như vậy có thể phù hợp hơn với MacBook Neo có SSD 512GB
1 bình luận
Ý kiến trên Hacker News
Đây là một lời nhắc hữu ích rằng có một lượng bộ nhớ nào đó bị ràng buộc theo từng lõi. Có lẽ chủ yếu liên quan đến page cache hoặc xử lý đồng thời
Không chỉ vì hệ điều hành có thể cấp một phần bộ nhớ cho mỗi luồng, mà còn vì các ứng dụng đa luồng dùng hết mọi luồng, như biên dịch các dự án phần mềm lớn, thường chiếm bộ nhớ làm việc tỷ lệ theo số luồng tác vụ
Tôi cũng đã thấy nhiều ứng dụng đa luồng chỉ chạy ổn khi có tối đa khoảng 2GB cho mỗi luồng, nên với CPU desktop 32 luồng như Ryzen 9 9950X thì 64GB là rất hợp lý
Khi biên dịch các dự án như Chrome/Chromium, nếu CPU 16 lõi/32 luồng chỉ có 32GB RAM thì bạn phải giảm số lượt biên dịch đồng thời bằng tham số phù hợp như
make -j, chấp nhận để một số lõi rảnh. Nếu không, bạn có thể gặp lỗi thiếu bộ nhớKhi có nhiều bộ nhớ, kernel sẽ giữ cache đọc lâu hơn, ưu tiên nén bộ nhớ thay vì swap ra đĩa, và ít dọn dẹp bộ nhớ có thể thu hồi hơn. Kích thước buffer nội bộ và bảng vnode cũng được điều chỉnh theo tổng lượng bộ nhớ
Điều này tốt ở chỗ tận dụng tối đa tài nguyên khả dụng một cách động, nhưng cái giá phải trả là khó nhìn ra mức nền tối thiểu cần cho hoạt động thực tế
Một lệnh thú vị để kiểm tra là
vm_stat, nơi bạn có thể xem các giá trị như free/active/inactive/wired/purgeable pages, compressor, pagein/pageout, swapin/swapout. Chỉnh sửa: không rõ là Markdown không hỗ trợ code fence hay là tôi làm sai gì đóTôi mới mua M5 Air gần đây và đây là lần đầu dùng macOS, nên đang tìm hiểu phần này; nhưng có vẻ gần như không thể đồng thời có
pytorch, tăng tốc GPU và mức cô lập kiểu VM/containerLớp
virtio-gpucó vẻ là thứ gần nhất, nhưng dường như nó chỉ chuyển tiếp GPU đồ họa chứ không phải GPU tính toán, nênpytorchkhông dùng đượcvllm-metal) haypodman libkrun, nhưng cả hai đều không được sao?torchthành công trên instance Cirruslabs TartTrên macOS, thứ duy nhất tôi đã dùng VM với là colima+docker, và nó tương đối đau đớn, kém hiệu quả. Dù vậy vẫn dùng được
colima+dockersang đó khá dễ dànghttps://github.com/apple/container
Việc cô lập thiết lập ký và công chứng khỏi host có vẻ quá khó để xoay xở, kể cả khi dùng agent. Dù vậy, giờ việc build macOS thực sự rất nhanh, còn ký/công chứng thì chỉ mất khoảng 200 dòng Bash
https://github.com/trycua/cua/tree/main/libs/lume đã cho thấy một cách tiếp cận thú vị với vấn đề này
Dù VM chỉ dùng 5GB lúc khởi động, chẳng phải khi chạy ứng dụng bên trong VM thì nó sẽ muốn toàn bộ 8GB đã cấp phát, chứ không chỉ 5GB lúc đầu sao?
Chỉnh sửa: tôi đã nhầm
Có vẻ tôi là người có bản nhỏ nhất.
docker.io/gotson/crossbuild latest d96ea9b7054b 3 years ago 6.71 GB, và tôi đang dùng nó để cross-build cho DarwinThành thật mà nói, macOS có lẽ có thể xuống thấp hơn rất nhiều nếu tắt những thứ không thực sự cần trong VM
Chiếc iPhone đầu tiên chỉ có 128MiB RAM, và theo tôi biết nó chạy một phiên bản macOS Tiger đã bị cắt gọt. Cho đến nay RAM vẫn khá dư dả nên chưa có lý do để tinh giản, nhưng rõ ràng là có thể, và có lẽ cũng không quá khó. Chỉ cần thử lại thôi
Có thể chạy macOS trên PC không? Hoặc ít nhất là có cách nào để phát triển cho Mac trên PC không?
Hơi lạc đề một chút, nhưng có thể đăng ký Intune cho một macOS VM như thiết bị cá nhân không?
Tôi tự hỏi vì sao không ai tạo ra một môi trường agent chuyên cho macOS. Sẽ hay nếu agent có thể được spawn trong một môi trường Mac