Hi i'm getting host memory warnings on one of my servers.
The server runs 1 virtual machine
The virtual machine is an SQL server
The physical server has 8GB of ram
I have 7GB of RAM allocated to the virtual machine allowing ESXi to use 1 GB of RAM (only 500MB actually used)
The SQL server is set to only use 6GB of Ram allowing the OS (windows 2k8) to use the remaining 1 GB
If i look under performance for the VM it shows 1-10% memory usage
However the host shows 90% memory usage constantly
Why the difference?
To get a better handle on memory counters and how to read the resource usage:
http://vsential.com/2010/11/vsphere-memory-counters-de-mystified/
Have you reserved 7Gb for this VM?
VM Properties -> Resources -> Memory -> Resource Allocation
It would seem that your VM is consuming all of it's assigned memory but is only actively using 10%. It's pretty commong for the newer OS and SQL to consume all the memory it has been allocated.
So if i understand this right
The host display for used memory shows how much the VM has grabbed
while
the guest display shows how much memory the vm is actively using out of the pool it grabbed.
To get a better handle on memory counters and how to read the resource usage:
http://vsential.com/2010/11/vsphere-memory-counters-de-mystified/
This KB might help you understand the different ways memory is measured:
Understanding the Memory Active and Memory Usage indicators on the Performance tab
You allocated 7GB of RAM to this VM but you may also RESERVED 7GB for this VM. If it is the case all 7GB or RAM will be consumed by VM out of 8GB of host memory.
On the VM side there is a consumed host memory and an active guest memory. The consumed is how much memory the VM has requested from the host and the active is the amount of memory that vSphere think is actively being used by the VM.
The host memory usage would show you total amount of consumed memory by the VM's running on that host.