Memory
capacity is generally the limiting factor in a VMware cluster. This is improving as hardware specifically designed to
be a host has become available with plenty of RAM able to be installed, but clusters still generally
have less Memory headroom than CPU.
Memory on VMware is not just a case of monitoring % used. Again like CPU we want to be able to compare
memory utilizations in comparable metrics, so that’s MB or GB. Then we move on
to the specific VMware type metrics.
Reservations
A VM or a resource pool can have a reservation. Which means if it needs that memory, it gets
to use it - no questions asked. However you cannot reserve more memory than
exists in the host server.
Limits. Just because a VM has been configured to have 8GB RAM, doesn’t mean you can’t set
a lower limit of say 4GB RAM. At which point,
if the VM tries to use more than the limit, then some data will be placed into the
Swap file of the OS or VMware may balloon some of the VMs memory to free up
pages that the OS can use.
Ballooning
When
VMware wants to allocate memory to a VM, but there is a shortage of Memory, then a balloon may be inflated
inside the memory of one (or more) VMs. This balloon pins itself into RAM and cannot be swapped
out, thus forcing
the OS to swap some memory out to disk. The
pages pinned into memory are not all actually stored in memory
on the Host, as it knows
the contents of the balloon are not important. This then frees up pages, that
the Host can allocate the VM it wanted to give memory too. One of the reasons
this happens is that an OS will use a page to store
some data, then later the program will no longer need that data, and the
OS puts that page on the free list. However,
the hypervisor has no idea the page is no longer needed. The data in the
page has remained unchanged. In order to identify free pages when the balloon expands and the OS put it into the free pages, the hypervisor
can
identify the balloon memory
pages, and therefore the pages that the OS is not using for other processes.
Shared
pages
Shared
Pages are pages in memory that are identical. Rather than store duplicates of
the same page, the hypervisor will store a single copy, and point the
appropriate VMs to it. This works well where servers are running the same OS
and doing the same job, and therefore much of the memory in use is identical.
Active
Memory
Active
memory is the amount of memory that has been accessed in the last 20 seconds.
Having sufficient memory
to contain the active memory
of the VMs is crucial
to performance.
Memory
Available for VMs
Memory
available to the VMs shows what it says. There is some memory in the cluster
that VMs cannot use as it’s being used by the Hypervisor to support the VMs.
The memory left over is available.
On Friday I'll talk about understanding how memory is
being used by a VM. In the meantime don't forget to sign up for my next webinar 'Top 5 VMware Tips for Performance and Capacity'
Phil Bell
Consultant
No comments:
Post a Comment