Resource Tuning¶
The lab runs on a single Proxmox host. This page covers resource allocation for different host sizes, from a tight 16 GB system to a comfortable 32 GB+ setup.
Minimum Viable (16 GB Host)¶
Cuts every VM to the bare minimum while keeping all services functional. Expect slower Ollama inference and modest Jupyter performance.
| VM | vCPU | RAM | Notes |
|---|---|---|---|
| ailab-dev | 2 | 3 GB | Ollama needs ~1.5 GB for smollm2 |
| ailab-ml | 1 | 2 GB | ChromaDB + MLflow lightweight |
| ailab-ds | 2 | 3 GB | Multiple services but small footprint |
| ailab-app | 1 | 1 GB | LangServe + Streamlit, low resource |
| ailab-attack | 1 | 1 GB | Just CLI tools and SSH |
| Total | 7 vCPU | 10 GB | Leaves ~6 GB for Proxmox + headroom |
Tight on RAM
With 10 GB allocated to VMs and Proxmox needing 2–3 GB, a 16 GB host has very little headroom. Avoid running additional workloads on the host during the demo.
Comfortable (32 GB+ Host)¶
The recommended allocation. Services respond quickly, Ollama inference is noticeably faster, and there's room to experiment.
| VM | vCPU | RAM | Notes |
|---|---|---|---|
| ailab-dev | 4 | 8 GB | Fast inference, comfortable Jupyter |
| ailab-ml | 2 | 4 GB | Room for larger ChromaDB collections |
| ailab-ds | 4 | 8 GB | Weaviate and Qdrant run smoothly |
| ailab-app | 2 | 2 GB | LangServe + Streamlit with headroom |
| ailab-attack | 2 | 2 GB | Parallel scans, faster builds |
| Total | 14 vCPU | 24 GB | Leaves 8+ GB for Proxmox |
Tuning Notes¶
CPU and Ollama Inference¶
Ollama CPU inference with smollm2:135m works on 2 vCPU at roughly 5 tokens/sec. More cores improve throughput linearly up to about 8 cores. For demo purposes, 2 vCPU is sufficient — aipostex extracts system prompts regardless of inference speed.
Disk¶
Each VM uses approximately 10–15 GB of disk after provisioning (OS + installed packages + seeded data). Cloud image templates consume about 3 GB total. Plan for at least 60 GB of free storage on the Proxmox host to be comfortable.
Where to Cut First¶
If the host is constrained, reduce RAM on ailab-ml first — it has the lightest workload. ChromaDB, MLflow, LiteLLM, and Ray are all lightweight Python services that run fine in 2 GB. The attack box can also drop to 1 GB since it only runs CLI tools.
ailab-dev and ailab-ds both run Ollama, which is the most RAM-hungry process. Keep them at 3 GB minimum to avoid OOM kills during model loading.
Overcommit¶
Proxmox allows CPU overcommit by default. Allocating more total vCPUs than physical cores is fine for this lab — the VMs are rarely all CPU-active simultaneously. RAM overcommit is riskier and not recommended; allocate only what the host physically has.