Skip to content

FAQ

What is LXC AutoScale?

A resource management daemon for Proxmox hosts. It monitors LXC container CPU and memory usage and adjusts allocations based on configured thresholds. It supports vertical scaling, horizontal scaling (experimental), tier-based configuration, CPU core pinning by L3 domain, NUMA node, or Intel P/E core, and dual CLI/API backend.

Who should use it?

Proxmox users who want automatic CPU and memory scaling for LXC containers without manual intervention. Suited for homelabs and small production deployments with variable workloads.

What are the prerequisites?

  • Proxmox VE 7.x or 8.x
  • Python 3.10+
  • Root access to the Proxmox host
  • LXC containers already created

How does scaling work?

Each polling cycle (default: 300 seconds), the daemon reads CPU and memory usage for each container via host-side cgroup accounting. If usage exceeds the upper threshold, resources are added. If it drops below the lower threshold, resources are reduced. Changes are applied using pct set.

The first polling cycle stores a raw CPU sample without scaling. Actual scaling decisions begin on the second cycle, when a time delta is available for accurate percentage calculation.

Is LXCFS required?

No. CPU and memory measurement uses host-side cgroup accounting, which works without LXCFS. LXCFS is only needed if the cgroup method is unavailable and the daemon falls back to reading /proc/stat or /proc/meminfo inside containers.

Can I run this remotely?

Yes. Two options:

  • SSH backend: set use_remote_proxmox: true and provide SSH credentials. Host key verification is enforced by default.
  • REST API backend: not connected yet, see below.

Can I use the Proxmox REST API instead of SSH?

No. A REST implementation existed in the tree for a year without ever being connected to the daemon, so backend: api changed nothing while appearing to work. It has been removed, and backend: api is now refused at startup with a message explaining why, rather than silently ignored. Tracked as #56.

Does it support virtual machines (VMs)?

No. LXC AutoScale manages LXC containers only. For VM autoscaling, see proxmox-vm-autoscale.

Can I exclude containers?

Yes. Add container IDs to the ignore_lxc list in the configuration file.

Are my passwords safe in the config file?

Passwords and tokens stored in the YAML file are readable by anyone with access to the file. Mitigations:

  • Set file permissions to chmod 600 (the daemon warns if the file is world-readable).
  • Use ${ENV_VAR} syntax to reference environment variables instead of storing secrets in plaintext.
  • Use the direct environment variable overrides (LXC_AUTOSCALE_SSH_PASSWORD, etc.).
  • All log output is filtered to redact strings matching secret patterns before writing to disk.

How do I update?

Re-run the installation script. Back up your configuration file first.

bash
cp /etc/lxc_autoscale/lxc_autoscale.yaml ~/lxc_autoscale.yaml.backup
curl -sSL https://raw.githubusercontent.com/fabriziosalmi/proxmox-lxc-autoscale/main/install.sh | bash

Existing YAML configuration files are backward-compatible with v2.0. New fields are optional and have safe defaults.

What is LXC AutoScale ML?

A separate project that uses machine learning-based prediction for scaling decisions. Maintained at proxmox-lxc-autoscale-ml.

Released under the MIT License. · Privacy & legal