Intel Nuc 10th Gen i7 + 2TB NVME initial setup suggestions

I’ll ask you an additional question a bit OT, just to avoid posting something maybe already asked by others. I’ve seen from the guide that you can specify the maximum and minimum amount of ram to assign to the VMs, as in the attached screenshot. From the GUI I can max ram, min ram and the balloon flag. I was looking about the configuration file syntax page and I’ve found two settings, one of which is called balloon but it’s not a flag, it is an amount of memory. Does it correspond to the minimum ram of the GUI or how do the three GUI parameters translate to the config file syntax?
Jup.
II’m looking at the config file params since I’ll configure the VMs with terraform and if possible I’d like to set the minimum amount of ram to avoid allocating a fixed size of ram to all my kubernetes cluster VMs that will maybe use far less than the amount allocated (I’m thinking about minimum 1 and max 2 or 4GB of ram).
You can't really overprovision RAM...using ballooning or not. How ballooning will work is that it slowly steals RAM from the VM no matter if that VM actually needs that RAM or not. So lets say you set the RAM to 2-4 GB and that VM is using 3GB for processes, 0.5GB for cache and 0.5GB free. Ballooning will only kick in when your hosts RAM exceeds 80%. Then it will steal RAM from VMs until either the hosts RAM drop below 80% again or until all VMs reached the minimum RAM assigned. So lets say the hosts RAM will not drop below 80% first. Then ballooning will slowly reduce the VMs RAM from 4 down to 2GB. When shrinking down from 4 to 3.5GB RAM this is no problem as the VM got 0.5GB free RAM. Next from 3.5 to 3GB RAM it is still no problem as the VM can drop cached data. But from 3 to 2GB it will run out of memory and will have to kill 1GB of processes (most likely killing your kubernetes containers) so the VMs OS won't crash.

So in my opinion it is safest to just skip ballooning, buy enough RAM so that guests don't have to fight for ressouces and don't assign your guests more RAM then they actually need to minimize wasted RAM by excessive caching.
 
Last edited:
  • Like
Reactions: MightySlaytanic
Jup.

You can't really overprovision RAM...using ballooning or not. How ballooning will work is that it slowly steals RAM from the VM no matter if that VM actually needs that RAM or not. So lets say you set the RAM to 2-4 GB and that VM is using 3GB for processes, 0.5GB for cache and 0.5GB free. Ballooning will only kick in when your hosts RAM exceeds 80%. Then it will steal RAM from VMs until either the hosts RAM drop below 80% again or until all VMs reached the minimum RAM assigned. So lets say the hosts RAM will not drop below 80% first. Then ballooning will slowly reduce the VMs RAM from 4 down to 2GB. When shrinking down from 4 to 3.5GB RAM this is no problem as the VM got 0.5GB free RAM. Next from 3.5 to 3GB RAM it is still no problem as the VM can drop cached data. But from 3 to 2GB it will run out of memory and will have to kill 1GB of processes (most likely killing your kubernetes containers) so the VMs OS won't crash.

So in my opinion it is safest to just skip ballooning, buy enough RAM so that guests don't have to fight for ressouces and don't assign your guests more RAM then they actually need to minimize wasted RAM by excessive caching.
Again, many thanks for the detailed answers. In my actual K8S test cluster I have VMs with 4GB of ram and less than 1 is used, 2.5 are cache.. So a 2GB of ram could be sufficient for testing purposes’ cluster on my NUC. Maybe it is better to allow the VM to swap a little bit of memory since the underlaying storage is a 3GB/s disk rather than triggering the ballooning mechanisms you described. If everything goes as expected in the future I’ll surely upgrade my nuc from 32 to 64GB of ram (which is the maximum amount it supports). Today is the day, I should get my little new beast at home ;)
 
Jup, Debian LXC and then following this: https://pbs.proxmox.com/docs/installation.html#install-proxmox-backup-server-on-debian

Jup. You can mount that SSD on the host and then bind-mount its mountpoint into the LXC.

You can upgrade them using apt like you would do for a Debian VM.

Yeah, thats not how LXCs work. LXC containerize a full OS, not just an application.
Some questions about PBS on LXC:

1) How much ram should I give to the LXC PBS container? Is it reserved or does it simply work as a maximum amount of memory used by LXC, but when not used is available to the PVE Host?

2) should I install proxmox-backup with custom kernel or proxmox-backup-server with only the server on top of Debian 11 LXC?

3) privileged or unprivileged container in order to be able to write on the bind mount

4) external ssd should be mounted “by hand” in /etc/fstab on PvE host or should I add as storage in PVE GUI too? I think the former
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!