Give a VM too little and it crawls; too much and your host starves. Allocation rules for Windows, Linux and macOS guests.
Updated 11 Nov 2026 · 6 min read
Quick answer
Allocate a VM roughly what you’d give a real machine for the same job, while always leaving the host enough: keep at least 4–6GB for a Windows host (2–4GB for Linux). Practical numbers: 4GB for a light Linux guest, 8GB for a Windows 11 guest, 16GB for a development or testing guest. Total allocated across all running VMs should stay below about 75% of your physical RAM.
Contents
Allocation cheat sheet
| Guest | Minimum | Smooth |
|---|---|---|
| Linux desktop (Ubuntu etc.) | 2GB | 4GB |
| Linux server / CLI | 512MB–1GB | 2GB |
| Windows 10/11 guest | 4GB | 8GB |
| Windows dev/test guest | 8GB | 16GB |
| macOS guest (where supported) | 4GB | 8GB |
The host always eats first
The classic beginner error: 16GB host, 12GB given to one VM, then wondering why both are slow. Your host OS, browser and the hypervisor itself need memory, and whatever they cannot get comes from the pagefile — on both sides. On a 16GB host, run one 6–8GB VM comfortably. For multiple simultaneous VMs, 32GB of host RAM is the realistic starting point.
Dynamic memory and ballooning
Hyper-V’s Dynamic Memory and VMware’s ballooning let a VM start small and grow on demand. They work well for server guests with spiky loads, but can cause stutters in interactive desktop guests. For a desktop VM you sit in front of, a fixed sensible allocation is the smoother experience.
Frequently asked questions
Can I allocate more RAM than I physically have?
Technically some hypervisors allow overcommit, but the excess comes from disk swapping and performance collapses. Treat physical RAM as the hard budget.
How much RAM for 3 VMs at once?
Example on a 32GB host: host keeps 8GB, then 8GB + 8GB + 4GB across the guests. On 16GB, run them one or two at a time instead.