Matt Hentrich
asked on
Am I using XenServer Dynamic Memory Correctly?
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?
Thanks!
Matt
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?
Thanks!
Matt
SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER
OK, that makes sense. Thank you!
Best answers
ASKER
Here's what I want to know (it will be awhile before I have enough VMs running on a XenServer to see for myself): If I have a XenServer with enough VMs running so that memory becomes an issue and the dynamic memory feature kicks in, do the guest OS's become aware that their memory is being reduced? Or is the memory re-allocation transparent to the guest OS's?