Large Memory Pages: Difference between revisions
(Initial creation) |
m (Minor rewording) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
Large Page Support | 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 (greater performance) | |||
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 [[Acronyms#T|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 http://en.wikipedia.org/wiki/Page_(computer_memory) | General memory background info http://en.wikipedia.org/wiki/Page_(computer_memory) | ||
== VMware ESX == | == 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 | 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 http://www.vmware.com/files/pdf/large_pg_performance.pdf for further info. | See http://www.vmware.com/files/pdf/large_pg_performance.pdf for further info. | ||
Line 21: | Line 22: | ||
[[Category:VMware]] | [[Category:VMware]] | ||
[[Category:ESX]] |
Latest revision as of 06:48, 15 June 2012
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 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 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 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
- VMware KB 1021896 - Use of large pages can cause memory to be fully allocated
- http://www.yellow-bricks.com/2011/04/29/which-metric-to-use-for-monitoring-memory/
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.