Abstract:
Methods, systems, and computer programs for managing physical memory in a host of a virtual infrastructure are presented. One method includes an operation for detecting that a guest physical page (GPP) of a virtual machine (VM) is a balloon page. The GPP, previously mapped to a machine page (MP), is re-mapped to a shared page of memory in order to free the MP, such that a read to the GPP causes a read to the shared page of memory. Further, the method includes an operation for detecting a write to the shared page of memory after the re-mapping of the GPP to the shared page, where the write to the shared page is caused by a write to the GPP. After detecting the write, all balloon pages created by the VM are reset in order to reset the balloon application in the VM.
Abstract:
Large pages that may impede memory performance in computer systems are identified. In operation, mappings to selected large pages are temporarily demoted to mappings to small pages and accesses to these small pages are then tracked. For each selected large page, an activity level is determined based on the tracked accesses to the small pages included in the large page. By strategically selecting relatively low activity large pages for decomposition into small pages and subsequent memory reclamation while restoring the mappings to relatively high activity large pages, memory consumption is improved, while limiting performance impact attributable to using small pages.
Abstract:
Memory performance in a computer system that implements large page mapping is improved even when memory is scarce by identifying page sharing opportunities within the large pages at the granularity of small pages and breaking up the large pages so that small pages within the large page can be freed up through page sharing. In addition, the number of small page sharing opportunities within the large pages can be used to estimate the total amount of memory that could be reclaimed through page sharing.
Abstract:
Miss rate curves are constructed in a resource-efficient manner so that they can be constructed and memory management decisions can be made while the workloads are running. The resource-efficient technique includes the steps of selecting a subset of memory pages for the workload, maintaining a least recently used (LRU) data structure for the selected memory pages, detecting accesses to the selected memory pages and updating the LRU data structure in response to the detected accesses, and generating data for constructing a miss-rate curve for the workload using the LRU data structure. After a memory page is accessed, the memory page may be left untraced for a period of time, after which the memory page is retraced.