SmolVM is optimized for low-latency agent workflows, providing sub-second boot times and minimal overhead for command execution.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/CelestoAI/SmolVM/llms.txt
Use this file to discover all available pages before exploring further.
Benchmark Results
Latest lifecycle timings (p50) on a standard Linux host:| Phase | Time |
|---|---|
| Create + Start | ~572ms |
| SSH ready | ~2.1s |
| Command execution | ~43ms |
| Stop + Delete | ~751ms |
| Full lifecycle (boot → run → teardown) | ~3.5s |
Benchmarks measured on AMD Ryzen 7 7800X3D (8C/16T), Ubuntu Linux, KVM/Firecracker backend.
Running Your Own Benchmarks
You can benchmark SmolVM on your hardware using the included benchmark script:Performance Characteristics
Boot Performance
- MicroVM Creation: SmolVM allocates IP addresses, TAP devices, and network rules in ~572ms
- SSH Ready Time: The VM boots and becomes accessible via SSH in ~2.1s total
- Hardware Virtualization: Uses KVM on Linux and Hypervisor.framework on macOS for near-native performance
Runtime Performance
- Command Execution: ~43ms average latency for running commands via SSH
- Memory Overhead: Minimal host overhead beyond configured VM memory (default 512MB)
- CPU Efficiency: Hardware virtualization provides near-native CPU performance
Teardown Performance
- Graceful Shutdown: Firecracker VMs can be stopped in ~751ms
- Resource Cleanup: Network rules, TAP devices, and disk images are cleaned up automatically
- Fast Path for Ephemeral VMs: SIGKILL-based teardown for sandbox VMs that don’t need state preservation
Optimization Tips
1. Reuse VMs for Multiple Commands
Instead of creating a new VM for each command, reuse the same VM:2. Use Appropriate Resource Allocation
Configure CPU and memory based on your workload:3. Pre-built Custom Images
For workloads requiring specific dependencies, build a custom rootfs image with pre-installed packages:4. Shared vs Isolated Disk Mode
Choose the appropriate disk mode for your use case: Isolated Mode (default): Each VM gets its own copy of the rootfs- ✅ Complete isolation between VMs
- ✅ No cross-VM contamination
- ❌ Higher disk usage
- ❌ Copy overhead on first boot
- ✅ No disk copy overhead
- ✅ Lower disk usage
- ❌ Changes persist across VMs
- ❌ Potential cross-VM contamination
5. Backend Selection
SmolVM supports multiple backends with different performance characteristics:- Firecracker (Linux): Fastest boot times, lowest overhead, recommended for production
- QEMU (macOS/Linux): Broader compatibility, slightly higher overhead
Performance Monitoring
Check VM Status
Reconcile Stale VMs
Detect and clean up VMs marked as RUNNING but with dead processes:Scalability Considerations
IP Address Pool
By default, SmolVM allocates IPs from172.16.0.2 to 172.16.0.254, supporting 253 concurrent VMs.
SSH Port Pool
Host-side SSH forwarding uses ports2200-2999, supporting 800 concurrent VMs.