Skip to content

System Requirements

This page details all requirements for running LXC AutoScale ML.

Hardware Requirements

Proxmox Host

ResourceMinimumRecommended
CPU2 cores4+ cores
RAM4 GB8+ GB
Storage20 GB free50+ GB free

The ML model training adds minimal overhead (typically less than 5% CPU during training cycles).

Container Scaling Limits

Default limits that can be adjusted in configuration:

ResourceMinimumMaximum
CPU Cores18
RAM512 MB16 GB

Software Requirements

Proxmox VE

VersionStatus
8.xTested and supported
7.xSupported
6.xSupported
5.x and earlierNot supported

Python

Python 3.x is required. The installation script verifies Python availability.

bash
python3 --version

Required Python Packages

These packages are installed automatically by the installation script:

PackagePurpose
flaskAPI web framework
requestsHTTP client for API calls
scikit-learnMachine learning (IsolationForest)
pandasData manipulation
numpyNumerical operations
aiofilesAsync file operations
pyyamlYAML configuration parsing
psutilSystem metrics collection
aiohttpAsync HTTP client for batch requests

Optional Packages

PackagePurpose
prometheus-clientPrometheus metrics export

Network Requirements

Inbound Ports

PortServiceAccess
5000APILocalhost by default

TIP

The API listens on all interfaces but is protected by API key authentication. For additional security, restrict access using firewall rules.

Outbound Connections

The installation script requires internet access to download packages and source files.

Filesystem Requirements

Required Directories

DirectoryPurposePermissions
/etc/lxc_autoscale_ml/Configuration filesroot:root 755
/var/log/Log filesroot:root 755
/var/lock/Lock filesroot:root 755
/usr/local/bin/lxc_autoscale_ml/Application coderoot:root 755

Disk Space for Logs

FileTypical SizeNotes
lxc_metrics.json2 MB maxLimited to 1000 entries
lxc_autoscale_ml.logVariesUse logrotate
autoscaleapi.logVariesUse logrotate

Container Requirements

Supported Container Types

  • Standard LXC containers
  • Privileged and unprivileged containers
  • Any Linux distribution inside containers

LXCFS Configuration

For accurate load average reporting inside containers, LXCFS must be configured with the -l flag:

bash
# Check current configuration
grep ExecStart /lib/systemd/system/lxcfs.service

# Should include -l flag:
# ExecStart=/usr/bin/lxcfs /var/lib/lxcfs -l

Verification Commands

Run these commands to verify your system meets requirements:

bash
# Check Proxmox version
pveversion

# Check Python version
python3 --version

# Check available disk space
df -h /var/log

# Check if required commands exist
which pct pvesh

# Verify LXCFS is running
systemctl status lxcfs

Known Limitations

Container ID Range

The API validates container IDs between 100 and 999999. IDs outside this range are rejected.

Maximum Containers

Tested with up to 200 containers. Performance remains stable with batch async processing.

Metrics Storage

The metrics file is limited to 1000 entries (configurable). Older entries are automatically removed.

Next Steps

Released under the MIT License.