Large Memory Pages

From vwiki
Revision as of 13:14, 17 May 2011 by Sstrutt (talk | contribs) (Added ESX category)
Jump to navigation Jump to search

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 (greater performance) working of applications that use large amounts of memory. This is commonly seen in memory intensive applications such as databases and Java (which seem to generate a large number of TLB misses) and will generally need to be enabled on both the OS and application.

General memory background info http://en.wikipedia.org/wiki/Page_(computer_memory)

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 which means that VM's utilising large pages may need to be backed by more physical RAM than if it wasn't using large pages.

See http://www.vmware.com/files/pdf/large_pg_performance.pdf 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 http://msdn.microsoft.com/en-us/library/aa366720%28v=vs.85%29.aspx for further info.