VMware vSphere has many memory management techniques to efficiently consolidate virtual machines. Rickatron explains two important measures in this blog post.
I’ll admit it, as the vSphere Client has matured over the years. With more data is in the interface, it may be more complicated to look at the usage of memory from a virtual machine (VM) and gauge its impact on the host. There are two numbers to look at in the vSphere Client that will help you, and I’ll explain them in this post.The first measure is the Shared Guest Memory metric, displayed in the vSphere Client on properties of a database server VM, DB1.RWVDEV.INTRA. Shared Guest Memory (see Figure A below, red highlighted section) shows how much memory is provisioned to the VM in total, and how that amount is allocated.
Click to enlarge.
From there, a couple of numbers stick out. The VM is provisioned with 1780 MB of RAM, somewhat of an odd number, but that was by design in my private lab environment. The Shared amount, 1.00 GB, is of particular note. This amount means that this much RAM is shared across other virtual machines on this host through the transparent page sharing technique. This VM also does have both swapped and compressed amounts of RAM, which are the two least desirable states. This makes sense for two reasons: the VM is generally idle and the host is memory constrained. The other figure of note is the private memory of 691 MB. This means that the VM is taking, exclusively, 691 MB of memory for its operation. Adding the swapped, compressed, private, and memory overhead numbers (126 MB for this VM and not shown), the total loosely approaches the host consumption number above.Another situation where this can be interpreted a different way is when other operating systems are in place. The example above, DB1.RWVDEV.INTRA, is like most VMs on this host in that it is running Windows Server 2008 R2, x64 version. Figure B shows a Linux virtual appliance, running some customized version of Linux; you will see that the amount of Shared memory decreases substantially: Figure B
In this case, this VM shares much less RAM with the other VMs on the host. There is one other Linux VM, but most of the VMs are Windows VMs.
Do you find yourself struggling to interpret these numbers in the vSphere Client? How do you verify these or check them periodically? Share your comments below.