breaking news

what is memory overhead

November 23rd, 2016 | by Shree H. Niraula
what is memory overhead

Understanding Memory Overhead

Virtualization of memory resources has some associated overhead.

ESXi virtual machines can incur two kinds of memory overhead.

  1. 1. The additional time to access memory within a virtual machine.

  2. 2. The extra space needed by the ESXi host for its own code and data structures, beyond the memory allocated to each virtual machine.

ESXi memory virtualization adds little time overhead to memory accesses. Because the processor’s paging hardware uses page tables (shadow page tables for software-based approach or nested page tables for hardware-assisted approach) directly, most memory accesses in the virtual machine can execute without address translation overhead.

For example, if a page fault occurs in the virtual machine, control switches to the VMM so that the VMM can update its data structures.

The memory space overhead has two components.

  1. a) A fixed, system-wide overhead for the VMkernel.
  2. b)  Additional overhead for each virtual machine.shree niraula memory

For ESXi 5.5, the service console typically uses 272MB and the VMkernel uses a smaller amount of memory. The amount depends on the number and size of the device drivers that are being used.
Overhead memory includes space reserved for the virtual machine frame buffer and various virtualization data structures. Overhead memory depends on the number of virtual CPUs, the configured memory for the guest operating system, and on whether you are using a 32 or 64 bit guest operating system.

In this example the machine has 4 Gb of Memory granted. It’s 4096 + overhead (176 MB)

Host memory = Guest consumed + Overhead

ESXi also provides optimizations such as memory sharing to reduce the amount of physical memory used on the underlying server. These optimizations can save more memory than is taken up by the overhead.

Still a little bit lost on this…

What is Host Memory Usage and what is Guest Memory Usage?

Host Memory usage is how much of the host’s memory is currently being used to run the guest. That includes the memory the guest is consuming and the overhead for managing that memory. This consumed amount varies and can be more than what the guest believes is in use, because the host cannot reclaim memory it has given to the guest directly without ballooning. It has no way to know which pages are no longer in use by the guest. The guest requests memory, and the host gives it, and the guest will mark it in use, and the host will mark it as used. When the guest no longer needs it, it just stops using the specific pages, but does not mark them as unused, so the host has no way to know which pages are in use and which are not. So, the consumed is more than in use.

So Guest Memory is the Amount of memory in megabytes actively used by guest operating system and applications

Also give a look at Administering Memory Resources:

I will update Overhead Memory on Virtual Machines on next post.

Share This