- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't think this is doable with 8GB based on the many posts on various sites (reddit, macrumors) where people have been describing their experience with Macs with 8GB of memory. It seems that most of them are using about 2 or 3 vm's. Others with those kind of systems that are using it for development (where you'd use containers; they use less system resources than a full blown vm does) and are running into out of memory messages. From what I have read on the VMware Fusion blog it concerned a machine with more memory, 16GB, and I also recall there being a MacBook Pro with M1 Max and 64GB of memory.
Virtual memory management is at play but it is not the only thing. There is a lot more going on and it happens at 3 different levels:
- host OS
- guest OS
- the virtualisation layer (aka the in-built hypervisor from macOS and VMware Fusion that lays on top of it)
All three do their own memory management and use things like swapping, compression, deduplication and so on to use as little RAM as possible. That, however, does have its limits. There also is memory overcommitting (you assign more memory to the vm(s) than there is actually available) which works fine as long as memory doesn't get fully utalised. Even the faster SSDs on these Apple Silicon Macs will not help you there.
The settings of the vm's also play a huge role. Running 100 vm's that have been set to use no more than 512MB of memory (very doable with operating systems such as Alpine Linux, they can go even lower) is a lot easier to do when you have 16GB of memory (to name something) then it is when they use 2GB of memory.
What is definitely not at play here is Apple's unified memory. They only have that because of how they designed their Apple Silicon. The unified memory allows for having 1 single pool of RAM for all the different types of processing units in the Apple Silicon. If all these processing units were separate (like in the Intel era) they all would have had their own memory pool. As a result when a 4GB chunk of data in the memory needs to be worked on by different processing units that chunk of memory has to be copied over to the respective memory pool. Unified memory negates that because all processing units are using the exact same memory pool and so there is no need for copying things back and forth. That's a gain in time and thus speed but not size. Unified memory has no impact on the size of the objects in memory at all. The processing units may because they do the processing on it but not the unified memory itself.
That said, when you use virtualisation on an Apple Silicon machine and compare it to an Intel Mac you'll very quickly find that memory management is indeed a whole lot better as well as the overall performance. It's like as if Apple Silicon was made with virtualisation in mind. Which is why it is so sad that we don't (yet?) have nested virtualisation support. It would be awesome if we could try out the ESXi for ARM fling inside a VMware Fusion vm. Would make a Mac Studio with the Ultra a very nice homelab solution.