Abstract:
A computer implemented method for reducing the latency of an anticipated read of disk blocks from a swap file in a virtualized environment. First, the method identifies a sequence of disk blocks that was written in a guest swap file. The method then detects a first reference within the sequence of blocks that references a first disk block stored in a host swap file and a second reference within the sequence of blocks that references a second disk block stored in the host swap file. The method then moves the second disk block to a location in a host swap file that is adjacent to the first disk block. In some examples, the first block and second block are both moved to a new location in the host swap file where they are adjacent to one another.
Abstract:
One or more embodiments provide techniques for accessing a memory page of a virtual machine for which loading might have been deferred, according to an embodiment of the invention, includes the steps of examining metadata of the memory page and determining that a flag in the metadata for indicating that the contents of the memory page needs to be updated is set, and updating the contents of the memory page.
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:
A system and method are disclosed for improving operation of a memory scheduler operating on a host machine supporting virtual machines (VMs) in which guest operating systems and guest applications run. For each virtual machine, the host machine hypervisor categorizes memory pages into memory usage classes and estimates the total number of pages for each memory usage class. The memory scheduler uses this information to perform memory reclamation and allocation operations for each virtual machine. The memory scheduler further selects between ballooning reclamation and swapping reclamation operations based in part on the numbers of pages in each memory usage class for the virtual machine. Calls to the guest operating system provide the memory usage class information. Memory reclamation not only can improve the performance of existing VMs, but can also permit the addition of a VM on the host machine without substantially impacting the performance of the existing and new VMs.
Abstract:
A process for lazy checkpointing a virtual machine is enhanced to reduce the number of read/write accesses to the checkpoint file and thereby speed up the checkpointing process. The process for saving a state of a virtual machine running in a physical machine to a checkpoint file maintained in persistent storage includes the steps of copying contents of a block of memory pages, which may be compressed, into a staging buffer, determining after the copying if the buffer is full, and upon determining that the buffer is full, saving the buffer contents in a storage block of the checkpoint file.
Abstract:
A method of preserving the contiguity of large pages of a workload during migration of the workload from a source host to a destination host includes the steps of: detecting at the destination host, receipt of a small page of zeros from the source host, wherein, at the source host, the small page is part of one of the large pages of the workload; and upon detecting the receipt of the small page of zeros, storing, at the destination host, all zeros in a small page that is part of one of the large pages of the workload.
Abstract:
A system and method are disclosed for improving operation of a memory scheduler operating on a host machine supporting virtual machines (VMs) in which guest operating systems and guest applications run. For each virtual machine, the host machine hypervisor categorizes memory pages into memory usage classes and estimates the total number of pages for each memory usage class. The memory scheduler uses this information to perform memory reclamation and allocation operations for each virtual machine. The memory scheduler further selects between ballooning reclamation and swapping reclamation operations based in part on the numbers of pages in each memory usage class for the virtual machine. Calls to the guest operating system provide the memory usage class information. Memory reclamation not only can improve the performance of existing VMs, but can also permit the addition of a VM on the host machine without substantially impacting the performance of the existing and new VMs.
Abstract:
A computer implemented method for reducing the latency of an anticipated read of disk blocks from a swap file in a virtualized environment. First, the method identifies a sequence of disk blocks that was written in a guest swap file. The method then detects a first reference within the sequence of blocks that references a first disk block stored in a host swap file and a second reference within the sequence of blocks that references a second disk block stored in the host swap file. The method then moves the second disk block to a location in a host swap file that is adjacent to the first disk block. In some examples, the first block and second block are both moved to a new location in the host swap file where they are adjacent to one another.
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:
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.