Threshold-based scaling
Scale cores and RAM up past a high-water mark and back down below a low one. One step per decision, bounded by limits you set, rate-limited by a per-resource cooldown.
How decisions are made
A small systemd service that watches CPU and RAM on your Proxmox VE guests and adjusts cores and memory through qm over SSH โ with hotplug, host safety limits and notifications.
This service suits a homelab or a small fleet where a handful of VMs have bursty, uncorrelated load and you would rather not over-provision all of them for the peak. It reads usage from the hypervisor, compares it against thresholds you set, and moves one step at a time.
It is deliberately not a cluster scheduler. It does not migrate guests, does not create or destroy VMs, and does not model future load โ see what it does not do before you build anything on top of it.
# Install on a Proxmox node (or any Linux host with SSH access to one)
bash <(curl -s https://raw.githubusercontent.com/fabriziosalmi/proxmox-vm-autoscale/main/install.sh)
# Point it at your hosts and VMs, then start it
sudo nano /usr/local/bin/vm_autoscale/config.yaml
sudo systemctl start vm_autoscale.service
journalctl -u vm_autoscale.service -fRead this before running it in production
The service authenticates to your Proxmox hosts as root and issues qm set against live guests. Read the threat model and the known limitations first โ and start with dry_run: true, which evaluates everything and changes nothing.