VMware ESXi provides 2 MB memory pages, commonly referred to as large pages, along with usual 4 KB memory pages. ESXi will always try to allocate 2 M pages for main memory and only on failure try for a 4 or small page. VMs are large pages if 2 M sequences of contiguous are available. The idea is to reduce the amount of page sharing and also increase the memory footprint of the VMs. The biggest benefit is of mitigating TLB-miss (short for Translation Lookaside Buffer), which costs as much as possible for Nested Page Table-enabled servers running ESXi.
However, allocating memory in 2 M chunks may cause the memory allocated to the VM to become fragmented. But as small pages are allocated by a guest and VM, these larger sequences need to be broken up.
So if defragmentation occurs, there could be enough memory to satisfy a large page request even when there is no 2 M contiguous Memory Page Number available. The defragmenter's job is to remap the existing allocated small...