Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

Professional Opinions
Ask a Question
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

troubleshooting Question

Am I using XenServer Dynamic Memory Correctly?

Avatar of Matt Hentrich
Matt Hentrich asked on
CitrixVMwareVirtualization* Memory
5 Comments1 Solution238 ViewsLast Modified:
I'm admittedly new to XenServer.  I've been more of a VMware guy up until now.  So, I'm trying to make sure I'm understanding how this dynamic memory thing works in XenServer.

In VMware, you set an amount of RAM per VM (say, 4 GB) and the hypervisor will grant it *up to* 4 GB of RAM, but that provisioned memory is thin, and you can grant more memory than you actually have on the hypervisor as long as all the collected VM memory usage doesn't exceed the max physical RAM.  ESX just does all of this automatically, unless you specify you want a certain RAM allocation physically dedicated to a particular VM.

In XenServer, it almost seems to be the opposite, unless I'm confused.  A new VM has a static memory amount that it actually reserves in full from the hypervisor.  So, you can only assign out as much memory to the VMs as you have in the hypervisor, thick provisioning style.  At least, it appears that way to me, because when I assign 4 GB of RAM to a VM that VM says '4 GB used' even when idle, and the total available RAM at the hypervisor is 4 GB less.

But, then, there's the option to 'automatically assign memory within a range'.  This is where I define a minimum and maximum amount of memory for a VM and XenServer decides how much to give that VM depending on it's workload and the total hypervisor workload.

When I assign a memory range to a VM now (2-4 GB), it consumes all of it right away.  But, if I understand this right, as the workload of the hypervisor increases, XenServer will decrease the amount of RAM it gives the VM.  Do I have that right?  Or am I misunderstanding how all of this works on XenServer?