Large Memory Pages

From vWiki
Jump to: navigation, search

Also known as Large Page Support.

Normally memory pages are allocated in 4KB chunks, with large pages (or HugeTLB pages in Unix), memory is allocated in 2MB chunks. This allows for more efficient working (and so greater performance) of applications that use large amounts of memory. This is commonly seen in memory intensive applications such as databases and Java. Which can generate a large number of TLB misses due to the large range of memory addresses that they may need to access. Support for large pages generally needs to be enabled on both the OS and application.

General memory background info

VMware ESX

VM's with large pages are supported by default since ESX 3.5. However large pages can't be shared between VM's using transparent page sharing, which means that VM's utilising large pages may need to be backed by more physical RAM than if they weren't using large pages.

See for further info.

ESX's will generally attempt to back all VM's with large pages (even when the VM only uses normal sized pages) in order to maximise the performance benefits of using hardware-assisted MMU (AMD RVI, ESX 3.5 and above; and Intel EPT, ESX 4.0 and above). This can cause the reported amount of consumed memory on an ESX to appear concerning large, but the amount of active memory will normally be more reassuringly low.

See the following for further info

Windows Systems

In order for an application to be able to allocate portions of RAM as large pages they need to be able to lock portions of memory (as large pages only exist in RAM and can’t be paged out to disk). The “Lock pages in memory” right is disabled for all users by default therefore no systems can use large pages unless the user account for a specific application has been specifically granted the right and is able to acquire the SeLockMemoryPrivilege privilege

See for further info.