If I had an XCP-NG server with 16GB RAM, and launched two VMs each with a min of 4GB and a max of 8GB, and internally each is running a Java app with 7GB Heap (which is pre-allocated), does XCP-NG allow more VMs to be created after startup, or will the JVM Heap allocation lock those first two VMs to the max memory ?
I’m basically wondering if I can overprovision the memory, and what happens at the point of too many VMs needing resource. Is it a crash, or just excessive disk paging somewhere ?
The use-case is running Java servers for testing, but also being able to fire up others temporarily when the system isn’t under load, whilst still ensuring things won’t just fallover.
Like many things, I realise this is not good practice and wouldn’t use it in production.
I’m running PROXMOX which has a ballooning feature on the RAM, which allocates RAM dynamically, it simply means that you don’t have to fully pre-allocate ram to the VMs.
XCP probably has a similar feature.
I have never used it, but it is a feature:
In Xen Orchestra the options are on the advanced tab.
It seems it doesn’t allow over-commit but as neogrid mentioned, the ballooning may help:
DMC does not provide a way for the total amount of guest-accessible physical memory to exceed the total amount of physical host memory. “Guest-accessible physical memory” means “physical memory that the guest is free to read from and write to”.
I’m asking up-front as I am planning to reprovision my only server with xcp-ng, and so can’t try out ahead of time. The capability seems as flexible as I’d expected so I’ll look to give it a go.
Thanks for the replies.