Documentation menu

Instance sizes

On this page

lws lxc run --size <name> creates a container with the memory, CPU limit and root disk of a named size. Sizes are defined under instance_sizes in config.yaml; this page lists the ones that ship in config.yaml.example. Edit, remove or add sizes in your own config.yaml: --size accepts exactly the names defined there, and small is the default.

What each value sets

Each size has three keys, passed to pct create when the container is made:

Key Passed as Meaning
memory --memory RAM in MB.
cpulimit --cpulimit CPU time limit, in CPUs. 2 means at most the time of two CPUs. LWS does not pass --cores, so the container still sees every CPU of the host.
storage --rootfs storage:size: the Proxmox storage and the root disk size in GiB. local-lvm:8 is an 8 GiB disk on the local-lvm storage.

The t2-*, m5-*, c5-*, r5-*, x1e-*, i3-* and p3-* names borrow the shape of cloud instance families. They only set the three values above: nothing about the CPU type, disk type or GPUs is configured.

Choosing and overriding a size

# 2 GB of RAM, a 2-CPU limit, a 16 GiB disk
lws lxc run --size mid --image-id local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst

# Change the resources of an existing container later
lws lxc scale 100 --memory 4096 --cpulimit 2

lxc run --storage-size replaces the disk of the chosen size with <default_storage>:<value>, where default_storage comes from config.yaml. Proxmox reads that value as a size in GiB, so give a plain number: --storage-size 24 for a 24 GiB disk.

lxc scale --memory and --cpulimit change a running container’s limits with pct set; they do not change its size name, which LWS does not record.

To add a size, add an entry under instance_sizes with the same three keys:

instance_sizes:
  ci-runner:
    memory: 6144
    cpulimit: 4
    storage: local-lvm:40

Sizes in config.yaml.example

The tables below are checked against config.yaml.example by the test suite, so they list exactly what the example file defines.

Generic sizes

Size Memory CPU limit Root disk
micro 512 MB 1 local-lvm:4
small 1024 MB 1 local-lvm:8
mid 2048 MB 2 local-lvm:16
large 4096 MB 2 local-lvm:32
x-large 8192 MB 4 local-lvm:64
xx-large 16384 MB 8 local-lvm:128

Application sizes

Size Memory CPU limit Root disk Example in config.yaml.example
lws-minio 4096 MB 2 local-lvm:50 MinIO for object storage
lws-postgres 4096 MB 2 local-lvm:40 PostgreSQL for relational database
lws-mysql 4096 MB 2 local-lvm:40 MySQL for relational database
lws-nosql 8192 MB 4 local-lvm:50 MongoDB for NoSQL database
lws-cdn 1024 MB 1 local-lvm:10 Caddy for reverse proxy and CDN
lws-metrics-monitoring 2048 MB 1 local-lvm:20 Prometheus for metrics and monitoring
lws-metrics-visualization 2048 MB 1 local-lvm:20 Grafana for data visualization
lws-mq 2048 MB 1 local-lvm:20 Apache ActiveMQ for messaging queues
lws-firewall 4096 MB 2 local-lvm:20 An nftables firewall and router
lws-search-analytics 8192 MB 4 local-lvm:50 OpenSearch for search and analytics
lws-serverless 2048 MB 2 local-lvm:20 OpenFaaS for serverless functions
lws-email 4096 MB 2 local-lvm:40 Mailcow for email management
lws-machine-learning 8192 MB 4 local-lvm:50 Hugging Face Transformers for machine learning models
lws-identity-management 8192 MB 4 local-lvm:50 Keycloak for identity and access management
lws-file-storage 4096 MB 2 local-lvm:50 Nextcloud for file storage and collaboration
lws-data-warehouse 16384 MB 4 local-lvm:100 ClickHouse for data warehousing
lws-messaging-broker 4096 MB 2 local-lvm:40 RabbitMQ for messaging broker
lws-code-server 2048 MB 2 local-lvm:20 Coder or code-server for online development environment
lws-log-aggregation 8192 MB 4 local-lvm:50 Loki for log aggregation
lws-container-registry 4096 MB 2 local-lvm:50 Harbor for container registry
lws-web 2048 MB 2 local-lvm:20 Nginx for web server
lws-load-balancer 2048 MB 2 local-lvm:20 HAProxy for load balancing
lws-redis 2048 MB 1 local-lvm:10 Redis for in-memory caching
lws-vpn 2048 MB 1 local-lvm:10 OpenVPN for VPN server
lws-backup-system 4096 MB 2 local-lvm:50 Restic or Bacula for backup solutions
lws-static-site-generator 2048 MB 1 local-lvm:10 Hugo for static site generation
lws-dns 1024 MB 1 local-lvm:10 PowerDNS for DNS management

General purpose (t2-*, m5-*)

Size Memory CPU limit Root disk
t2-pico 512 MB 1 local-lvm:8
t2-micro 1024 MB 1 local-lvm:8
t2-small 2048 MB 1 local-lvm:20
t2-medium 4096 MB 2 local-lvm:40
m5-large 8192 MB 2 local-lvm:50
m5-xlarge 16384 MB 4 local-lvm:100
m5-2xlarge 32768 MB 8 local-lvm:200

More CPU (c5-*)

Size Memory CPU limit Root disk
c5-large 4096 MB 2 local-lvm:50
c5-xlarge 8192 MB 4 local-lvm:100
c5-2xlarge 16384 MB 8 local-lvm:200
c5-4xlarge 32768 MB 16 local-lvm:400

More memory (r5-*, x1e-*)

Size Memory CPU limit Root disk
r5-large 16384 MB 2 local-lvm:100
r5-xlarge 32768 MB 4 local-lvm:200
r5-2xlarge 65536 MB 8 local-lvm:400
x1e-xlarge 65536 MB 4 local-lvm:200
x1e-2xlarge 131072 MB 8 local-lvm:400
x1e-4xlarge 262144 MB 16 local-lvm:800

More disk (i3-*)

Size Memory CPU limit Root disk
i3-large 15360 MB 2 local-lvm:500
i3-xlarge 30720 MB 4 local-lvm:1000
i3-2xlarge 61440 MB 8 local-lvm:2000
i3-4xlarge 122880 MB 16 local-lvm:4000

p3-* sizes

Size Memory CPU limit Root disk
p3-large 15360 MB 2 local-lvm:100
p3-xlarge 30720 MB 4 local-lvm:200
p3-2xlarge 61440 MB 8 local-lvm:400
p3-8xlarge 245760 MB 32 local-lvm:1600

The examples in the application table come from comments in config.yaml.example. They are starting points, not tested requirements. Containers share the Linux kernel of the host, so FreeBSD-based software such as OPNsense or pfSense needs a virtual machine instead.