Memory per VM
Each Firecracker microVM in my current setup appears to consume roughly 100MB of RAM. That figure isn't surprising once you factor in the components. My kernel image is around 30MB, and the entire kernel must reside in memory. Additionally, microVMs do not share memory with one another, so every instance starts with that baseline cost.
Practical limits on a small host
On a 1GB DigitalOcean droplet, I can reliably run about four VMs simultaneously. Pushing beyond that leads to out-of-memory kills from the kernel. More instances might be possible with tighter tuning, but the headroom is clearly small. For any serious workload, a larger host would be necessary.
Why the Firecracker demo mentions 4000 VMs
The official Firecracker demo advertises support for thousands of concurrent VMs, which initially seemed inconsistent with my experience. The arithmetic clears it up: the demo runs on an i3.metal instance with 512GB of RAM, roughly 500 times the memory of my droplet. Dividing 512GB across 4000 VMs lands at about 125MB per VM, which aligns closely with my observed usage of around 100MB per instance.
Next steps
Given these constraints, I am exploring fly.io, which runs on Firecracker VMs, to get more flexibility without managing the underlying host capacity myself.



