MiniLabHQ
Isometric cube-shaped homelab server with stacked drive bays, green status LEDs and vented side panels on a pale teal background, evoking a Proxmox host
guides

How Much RAM for Proxmox Homelab Use: 8, 16 or 32 GB?

16 GB covers a Proxmox homelab of LXC containers plus two VMs; plan on 32 GB for Windows or big ZFS pools. Per-guest budgets and ARC math.

By MiniLabHQ Editorial · · 9 min read

For most people asking how much RAM for Proxmox homelab duty is enough, the answer is 16 GB: room for the 2 GB Proxmox host, a modest ZFS cache, one or two VMs and a stack of LXC containers. Stay at 8 GB only for a containers-only box; buy 32 GB if Windows, Immich or a second heavy VM is on the list.

Memory decides this, not cores. A VM holds every megabyte you assign it whether it is doing anything or not, while vCPUs are shared and mostly asleep. A small homelab runs out of RAM long before the CPU graph gets interesting, which is the core argument behind how many VMs an N100 can actually run. So size for what you will actually run, not for what might fit.

What each RAM tier actually runs

Installed RAMWhat fits comfortablyVerdict
8 GBProxmox host plus a handful of LXC containers (DNS filter, reverse proxy, a Docker LXC); one small Linux VM at mostFine for learning, cramped once Home Assistant OS arrives
16 GBHost, a small ZFS pool, Home Assistant OS, one more VM, a pile of containersThe sweet spot for an N100 or N150 mini PC
32 GBAll of the above plus a Windows VM, Immich with machine learning, or a multi-terabyte ZFS poolWhere four or more VMs stop being a negotiation
64 GB+Nested labs, a Kubernetes cluster built from VMs, several Windows guestsNot a single-SODIMM mini PC question

The usual story with 8 GB: it is fine right up until the week you discover Home Assistant OS wants to be a full VM. If you are buying new, skip the 8 GB configuration unless the price gap is absurd.

How do you calculate the RAM a Proxmox host needs?

Add four things: 2 GB for Proxmox VE itself, roughly 1 GB per TB of ZFS storage, the full assigned memory of every VM, and the real working set of each container. Then keep the total under about 80% of installed RAM, which is also the default target Proxmox’s own ballooning logic aims for.

The first two numbers come straight from the Proxmox VE system requirements. The 80% figure is the default ballooning target in the Proxmox VM documentation, which adds a blunter rule of thumb: always leave 1 GB of RAM available to the host.

host RAM needed = 2 GB              (Proxmox VE + services)
                + ~1 GB per TB      (ZFS ARC, if you use ZFS)
                + sum of VM memory  (fixed allocations)
                + container usage   (actual use, not the limit)
                then stay under ~80% of installed RAM

A worked example on a 16 GB N100 with a 1 TB NVMe drive formatted as ZFS:

  • Proxmox VE host: 2 GB
  • ZFS ARC at the installer default (10% of 16 GB): about 1.6 GB
  • Home Assistant OS VM: 4 GB (documented minimum is 2 GB; add-ons eat the rest)
  • Docker LXC for small apps: 2 GB
  • Jellyfin LXC: 2 GB
  • Pi-hole LXC: 512 MB

That is about 12 GB, roughly 76% of the box. Add a 4 GB Windows VM and you are over 100% on paper, which is usually when people start reading about ballooning.

The guests that quietly eat the budget

These are the figures each project documents. Treat them as floors, not comfortable allocations:

GuestDocumented memoryHas to be a VM?
Pi-hole512 MBNo
Home Assistant OS2 GB RAM, 2 vCPUsYes, it is a full appliance image
Windows 114 GB minimumYes
Immich6 GB minimum, 8 GB recommendedNo, Docker in an LXC or VM
Proxmox Backup Server4 GiB plus 1 GiB per TiB of storageNo, but it belongs on another machine

Immich is the one that ambushes people. It is “just a photo app,” and its own docs ask for more memory than Home Assistant OS and Windows 11’s minimum. On a 16 GB box, Immich plus Home Assistant OS plus the host is already 10 GB before anything else gets a turn.

Windows 11’s 4 GB is the number that boots, not the number you will enjoy over RDP. And Proxmox Backup Server on the host it backs up is a convenience, not a backup; putting it on the NAS or a second box also takes its 4 GiB off the mini PC.

Does ZFS need a lot of RAM on Proxmox?

Not as much as its reputation suggests. Since Proxmox VE 8.1, the installer limits the ZFS ARC to 10% of host memory, clamped to 16 GiB, and writes that limit to /etc/modprobe.d/zfs.conf. On a 16 GB mini PC that is about 1.6 GB. The catch is hosts installed before 8.1.

According to the Proxmox ZFS documentation, installs older than 8.1 never had that limit written, so the ARC falls back to ZFS’s own default: 50% of RAM, or 62.5% from ZFS 2.3.0 onward. If your host predates 8.1 and was upgraded in place, check whether that file exists; half of a 16 GB box going to cache is exactly what makes VMs feel squeezed.

The same page suggests 2 GiB base plus 1 GiB per TiB of storage and warns that enough ARC is crucial for I/O performance, so cut it with care. To pin the cap:

# /etc/modprobe.d/zfs.conf: cap the ARC at 4 GiB
options zfs zfs_arc_max=4294967296

If root is on ZFS, run update-initramfs -u -k all and reboot for the change to take effect.

The other option is not running ZFS on the boot drive at all. On a single-NVMe mini PC, ext4 with LVM-thin costs no ARC and still gives you guest snapshots. ZFS earns its memory once you want a mirror with checksums, or replication to a NAS with zfs send. Storage options for a mini PC homelab walks through that trade.

Containers are the cheapest RAM upgrade

An LXC container’s memory setting is a limit, not a reservation. The Proxmox container documentation describes container memory as controlled by the cgroup memory controller, so a container capped at 1 GB that uses 150 MB leaves the other 850 MB available to everything else. A VM given 4 GB tends to fill all 4 GB with its own kernel’s page cache over time.

So the rule that saves the most RAM is boring: use a container unless something forces a VM. The forcing reasons are a different kernel (Windows, BSD-based firewalls, Home Assistant OS), a hard isolation boundary, or a device that needs full PCIe passthrough. Hardware transcoding is not one of them; Plex in an LXC can reach the iGPU through a device node, no VM required. The LXC vs VM breakdown for Proxmox on a mini PC covers the rest of that decision.

Ballooning and KSM: overcommit with your eyes open

Ballooning. Set a VM’s minimum memory below its maximum and Proxmox guarantees the minimum, then hands out more up to the maximum while host usage stays under the 80% target. Two caveats from the Dynamic Memory Management wiki: ballooning does not work with passed-through PCIe devices, because their memory is mapped to fixed addresses, and set too aggressively it can leave applications inside the guest out of memory. Windows guests need the balloon driver added manually, and the VM docs advise against using it on critical systems.

KSM. Kernel Samepage Merging scans VM memory and merges identical pages, which pays off most when several VMs run the same OS. The Proxmox wiki credits it with improving VM density “by as much as 300%,” which is a best case, not a planning number. The KSM page also flags side-channel risk between VMs. If you host anything for other people, disable it with systemctl disable --now ksmtuned, or per VM with qm set <vmid> --allow-ksm 0.

Treat both as a cushion for spikes, not as capacity. If KSM is sharing gigabytes all day, the honest fix is fewer VMs or more RAM.

Is 32 GB worth it on an N100 or N150?

Only if your guest list genuinely needs it, and only if you accept running outside Intel’s documented spec. Intel’s N100 specification lists a 16 GB maximum on a single memory channel, with DDR4-3200, DDR5-4800 or LPDDR5-4800. Many boards accept a 32 GB SODIMM anyway.

That support comes from each board’s firmware, not from anything Intel documents, and boxes with soldered LPDDR5 cannot be upgraded at all. Single-channel also means a second stick buys nothing for bandwidth; on these boards you are buying capacity in one module.

Try the free upgrades first: convert VMs to containers where the kernel allows, cap the ARC, and move Proxmox Backup Server off the box. If you still need 32 GB, buy hardware that supports it on paper: a used Lenovo ThinkCentre Tiny with a vendor-supported 32 GB ceiling, or an N305 box sold with 32 GB installed (N100 vs N305 vs N97 explains what the extra cores buy). The full ladder is in the best mini PC for a Proxmox homelab.

How do you know you have run out of RAM?

The first sign is swap in use on the Proxmox host itself: free -h showing meaningful swap means the budget is already wrong. After that come KSM sharing gigabytes, ballooned VMs that get slower for no obvious reason, and finally the kernel OOM killer terminating a guest you would not have picked.

Three commands cover most of the diagnosis:

free -h                        # host RAM and swap
arc_summary | head -n 40       # ZFS ARC size and target, if using ZFS
journalctl -k | grep -i oom    # has the OOM killer fired?

Set an alert on host swap usage on day one; it is the cheapest capacity monitor there is.

FAQ

is 8gb ram enough for proxmox

Yes, for a containers-first lab. Proxmox needs about 2 GB for itself, leaving roughly 6 GB for LXC containers such as Pi-hole, a reverse proxy and a Docker host. It gets tight once Home Assistant OS or any Windows VM arrives, and ZFS shaves off more, so treat 8 GB as a learning box.

how much ram does proxmox itself use

Proxmox VE documents a 2 GB minimum for the OS and its services, with guest memory on top. ZFS or Ceph add roughly 1 GB per TB of used storage. The 1 GB figure in the official minimum is for evaluation only, and the VM docs advise always leaving at least 1 GB free for the host.

should i get 16gb or 32gb for a proxmox mini pc

Get 16 GB if your plan is mostly containers plus one or two VMs, the shape of a typical single-box homelab. Get 32 GB if Windows, Immich, a Proxmox Backup Server VM or four-plus VMs are on the list, and buy hardware whose vendor supports 32 GB rather than gambling on an out-of-spec module.

does more ram make proxmox faster

Only up to the point where nothing is swapping. Spare RAM becomes page cache, or ARC if you raise the ZFS cap, which speeds up disk reads, but a host under no memory pressure will not run guests faster with more. Past that point storage and CPU decide performance, and extra memory sits idle.

Sources

  1. Proxmox VE — System Requirements
  2. Proxmox VE Wiki — ZFS on Linux (ARC limits)
  3. Proxmox VE Admin Guide — QEMU/KVM Virtual Machines (Memory)
  4. Proxmox VE Wiki — Dynamic Memory Management
  5. Proxmox VE Wiki — Kernel Samepage Merging (KSM)
  6. Proxmox VE Wiki — Linux Container
  7. Proxmox Backup Server — System Requirements
  8. Intel Processor N100 — Product Specifications
  9. Home Assistant — Alternative Installation (VM requirements)
  10. Immich — Requirements
  11. Microsoft — Windows 11 Specifications
  12. Pi-hole — Prerequisites
#proxmox #ram #homelab #zfs #mini-pc #capacity-planning

Related