Your Proxmox VMs don't need 8GB each and it's easy to see how much RAM they actually use

Your Proxmox VMs don't need 8GB each and it's easy to see how much RAM they actually use

Published Aug 30, 2026, 9:00 AM EDT Richard is the PC Hardware Lead at XDA and has been covering the technology industry for almost two decades. He's been building PCs since young, and when not creating content, you can often find him inside a chassis somewhere. I have an impressive AMD Threadripper home server with 128 GB of DDR5 RAM (the equivalent of flashing stacks of cash at this point), but I find myself tweaking less-capable systems, such as mini PCs and compact business desktops, both of which are often recommended for the home lab. Unlike the extensive memory setup in my primary node, these secondary platforms require careful planning and management when it comes to assigning RAM to virtual instances, or else you'll end up like me and encounter sluggish Proxmox performance. Falling into the Proxmox RAM trap Don't reserve every GB of available memory It's easy to get Proxmox up and running, but what's slightly more challenging is to work out just how many resources will be required for each running instance. Available Linux containers (LXCs) usually come with recommended deployment configurations, especially if you download the package via something like the Proxmox Community Scripts resource. For instance, Jellyfin requires 2 vCPUs and 2 GB of RAM, according to the script page. But if you're not using a resource that clearly outlines a recommended amount of RAM and CPU cores, it's easy to over-provision. This isn't a massive issue for LXCs since these are designed to run on top of the underlying Linux kernel, sharing resources with the host system dynamically, including any external devices like a discrete GPU. Virtual machines (VMs) are a different beast, effectively reserving the configured resources when firing up, so not only are the RAM and CPU cores unavailable to other instances but the host machine too. That means Proxmox would have fewer cores and RAM to work with for running the home lab. I'm sure you can see where this can quickly cause problems. When setting up your first couple of VMs, it may feel worthwhile to simply assign more RAM than required to ensure the application running won't run out of memory. But throwing 8GB at a simple web server or 32GB for media streaming won't magically make these VMs run better. Sure, they will have more memory than they'll know what to do with outside of potential leaks, but using so much RAM for each VM can degrade overall host performance. The Proxmox system is still a server running software after all. It still requires the system resources that LXCs and VMs also need. It's not just the host that can lock up. LXC and VM performance can even see hiccups depending on how much is left for Proxmox to make use of. Why allocating more RAM is bad Proxmox is incredibly smart when managing RAM If you're allocating too much system memory to VMs on your Proxmox node, you're doing your home lab a disservice. If VMs have more RAM than they require, the host's reserves could quickly run out for running all services, causing the Linux kernel to start relying on swap space. Utilizing swap is bad news. It's notably slower than RAM and causes unnecessary wear on the storage drive(s). It's difficult to understand just how severe the performance penalty is with switching to swap until you finally encounter it for the first time. It's as bad with Proxmox as it would be with a gaming PC. So, performance degredation is quick to occur, but even if you don't meet a sluggish-performing Proxmox, it's wasting resources at the very least. Linux is very good at caching and managing memory usage. Allocating more RAM than an LXC or VM requires doesn't make an instance run faster. It simply hoards host resources that could be better used for other workloads. Proxmox has some handy features that actually aid with system resource management, including Kernel Same-page Merging (KSM). KSM consolidates the same pages on RAM, allowing multiple VMs to share physical memory blocks. To enable KSM in Proxmox: # Check KSM statuscat /sys/kernel/mm/ksm/runcat /sys/kernel/mm/ksm/pages_sharedcat /sys/kernel/mm/ksm/pages_sharing# Enable KSMecho 1 > /sys/kernel/mm/ksm/run# Tune scan rate (pages per scan cycle)echo 1000 > /sys/kernel/mm/ksm/pages_to_scanecho 20 > /sys/kernel/mm/ksm/sleep_millisecs Ballooning is another handy system that lets you configure a maximum RAM capacity for a VM, as well as a minimum that can be dynamically adjusted as the VM runs. Should other VMs demand more memory, Proxmox can reclaim idle memory and assign it elsewhere. This can be configured for VMs running Linux and Windows. But it's easier than you think to see just how much RAM is required by LXCs and VMs, allowing you to assign precisely the right amount of system resources. Being more efficient allows for the Proxmox system to run more instances without costly hardware upgrades. How to check how much RAM to allocate Run an instance and see how much is required Before doing anything with RAM, it's vital to work out just how much memory each running instance is actually using. It's easy to check with each instance to see just how much memory is actively used by that running LXC or VM. Depending on what you're running on Proxmox, it can be easy to determine just how much everything should require. For instance, my bin collection web app simply requires around 512 MB RAM and a single CPU core. It's a lightweight PHP site with a single cron job that runs each evening. The demand isn't high, even with Home Assistant hitting the API weekly. Immich is using the most RAM on my Proxmox node. I assigned 12 GB, and it's using around 10 GB. Open WebUI is another LXC that can take up quite the amount of memory. Home Assistant itself is one VM that can gobble up RAM, especially when running countless devices and integrations. It's the central hub of our household, requiring 8GB to comfortably run everything. Don't change everything at once. Alter CPU, memory, and storage allocation separately so tests can be carried out. Solving the issue of sluggish Proxmox performance requires more than simply buying more RAM. It's about better understanding precisely how Proxmox manages system memory within virtual machines and the host itself. The more you get to learn how each of your running services and software handles RAM, the more efficient you'll be able to configure the server to allow for more packages to run simulatenously. Just don't go adding much more than is required from the get-go.

Original Source

Read the full article at Xda-developers →

KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.