docs: add memory ballooning as fallback option
All checks were successful
Run nix flake check / flake-check (push) Successful in 2m5s

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-08 13:29:42 +01:00
parent 67c27555f3
commit 3abe5e83a7

View File

@@ -90,5 +90,27 @@ After a few days (allow auto-upgrades to run on all hosts):
If zram is insufficient: If zram is insufficient:
1. **Increase VM memory** - Update `terraform/vms.tf` to 4GB for affected hosts 1. **Increase VM memory** - Update `terraform/vms.tf` to 4GB for affected hosts
2. **Use remote builds** - Configure `nix.buildMachines` to offload evaluation 2. **Enable memory ballooning** - Configure VMs with dynamic memory allocation (see below)
3. **Reduce flake size** - Split configurations to reduce evaluation memory 3. **Use remote builds** - Configure `nix.buildMachines` to offload evaluation
4. **Reduce flake size** - Split configurations to reduce evaluation memory
### Memory Ballooning
Proxmox supports memory ballooning, which allows VMs to dynamically grow/shrink memory allocation based on demand. The balloon driver inside the guest communicates with the hypervisor to release or reclaim memory pages.
Configuration in `terraform/vms.tf`:
```hcl
memory = 4096 # maximum memory
balloon = 2048 # minimum memory (shrinks to this when idle)
```
Pros:
- VMs get memory on-demand without reboots
- Better host memory utilization
- Solves upgrade OOM without permanently allocating 4GB
Cons:
- Requires QEMU guest agent running in guest
- Guest can experience memory pressure if host is overcommitted
Ballooning and zram are complementary - ballooning provides headroom from the host, zram provides overflow within the guest.