Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> VMware ESX Server is a thin software layer designed to multiplex hardware resources efficiently among virtual machines running unmodified commodity operating systems. This paper introduces several novel ESX Server mechanisms and policies for managing memory. A ballooning technique reclaims the pages considered least valuable by the operating system running in a virtual machine. An idle memory tax achieves efficient memory utilization while maintaining performance isolation guarantees. Content-based page sharing and hot I/O page remapping exploit transparent page remapping to eliminate redundancy and reduce copying overheads. These techniques are combined to efficiently support virtual machine workloads that overcommit memory. <s> BIB001 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> Virtualization essentially enables multiple operating systems and applications to run on one physical computer by multiplexing hardware resources. A key motivation for applying virtualization is to improve hardware resource utilization while maintaining reasonable quality of service. However, such a goal cannot be achieved without efficient resource management. Though most physical resources, such as processor cores and I/O devices, are shared among virtual machines using time slicing and can be scheduled flexibly based on priority, allocating an appropriate amount of main memory to virtual machines is more challenging. Different applications have different memory requirements. Even a single application shows varied working set sizes during its execution. An optimal memory management strategy under a virtualized environment thus needs to dynamically adjust memory allocation for each virtual machine, which further requires a prediction model that forecasts its host physical memory needs on the fly. This paper introduces MEmory Balancer (MEB) which dynamically monitors the memory usage of each virtual machine, accurately predicts its memory needs, and periodically reallocates host memory. MEB uses two effective memory predictors which, respectively, estimate the amount of memory available for reclaiming without a notable performance drop, and additional memory required for reducing the virtual machine paging penalty. Our experimental results show that our prediction schemes yield high accuracy and low overhead. Furthermore, the overall system throughput can be significantly improved with MEB. <s> BIB002 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> Virtualization is a promising approach to consolidating multiple online services onto a smaller number of computing resources. The adoption of virtualization and mappings between physical and virtual resources can further exacerbate challenges. Stochastic reward net (SRN) is an extension of stochastic Petri nets which provides compact modeling facilities for system analysis. In this paper, we address SRN hierarchical modeling of memory virtualization in cloud computing. Memory overcommit techniques such as ballooning, page swapping, and sharing, are applied and modeled for virtualization as a lower-level model. We propose three memory management policies, combination of ballooning and swapping intended for busy virtual memory (VMEM), to increase virtual memory utilization. These policies are handled by using guard functions of transition in SRN. The hypervisor with these policies can relinquish the memory pages of not so busy VMEM and let the busy VMEM get the pages. Memory availability with failure related behavior is modeled and analyzed as a upper-level model. We combine above two level models together and get performability measures. The upper-level model is the structure state model representing the state of the system with regard to failures and repairs of memory pages (banks). There are $$i$$ i active memory pages in progress. Each state of $$i$$ i is assigned a reward rate equal to the memory utilization from the lower-level performance model. The lower-level model captures the performance of the system, especially several memory utilization measures, within a given structure state. Measures of interest are considered as follows: memory utilization for allocated and actually used memory, memory availability with memory failure/repair behavior. These measures are expressed in terms of the expected values of reward rate functions for SRNs. <s> BIB003 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> Recent advent of manycore system increases needs for larger but faster memory hierarchy. Emerging next generation memories such as on-chip DRAM and nonvolatile memory (NVRAM) are promising candidates for replacement of DRAM-only main memory. Combined with the manycore trends, it gives an opportunity to rethink conventional resource management system with a memory hierarchy for a single cloud node. In an attempt to mitigate the energy and memory problems, we propose MN-MATE, an elastic resource management architecture for a single cloud node with manycores, on-chip DRAM, and large size of off-chip DRAM and NVRAM. In MN-MATE, the hypervisor places consolidated VMs and balances memory among them. Based on the monitored information about the allocated memory, a guest OS co-schedules tasks accessing different types of memory with complementary access intensity. Polymorphic management of DRAM hierarchy accelerates average memory access speed inside each guest OS. A guest OS reduces energy consumption with small performance loss based on the NVRAM-aware data placement policy and the hybrid page cache. A new lightweight kernel is developed to reduce the overhead from the guest OS for scientific applications. Experiment results show that our techniques in MN-MATE platform improve system performance and reduce energy consumption. <s> BIB004 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> Cloud computing by far brings a lot of undeniable advantages. Accordingly, many research works aim to evaluate the characteristics of cloud systems on many aspects such as performance, workload, cost, provisioning policies, and resources management. In order to setup a cloud system for running rigorous experiments, ones have to overcome a huge amount of challenges and obstacles to build, deploy, and manage systems and applications. Cloud simulation tools help researchers to focus only on the parts they are interesting about without facing the aforementioned challenges. However cloud simulators still do not provide accurate models for Virtual Machine (VM) operations. This leads to incorrect results in evaluating real cloud systems. Following previous works on live-migration, we present in this paper an experiment study we conducted in order to propose a first-class VM boot time model. Most cloud simulators often ignore the VM boot time or give a naive model to represent it. After studying the relationship between the VM boot time and different system parameters such as CPU utilization, memory usage, I/O and network bandwidth, we introduce a first boot time model that could be integrated in current cloud simulators. Through experiments, we also confirmed that our model correctly reproduced the boot time of a VM under different resources contention. <s> BIB005 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> Heterogeneous memory management combined with server virtualization in datacenters is expected to increase the software and OS management complexity. State-of-the-art solutions rely exclusively on the hypervisor (VMM) for expensive page hotness tracking and migrations, limiting the benefits from heterogeneity. To address this, we design HeteroOS, a novel application-transparent OS-level solution for managing memory heterogeneity in virtualized system. The HeteroOS design first makes the guest-OSes heterogeneity-aware and then extracts rich OS-level information about applications' memory usage to place data in the 'right' memory avoiding page migrations. When such pro-active placements are not possible, HeteroOS combines the power of the guest-OSes' information about applications with the VMM's hardware control to track for hotness and migrate only performance-critical pages. Finally, HeteroOS also designs an efficient heterogeneous memory sharing across multiple guest-VMs. Evaluation of HeteroOS with memory, storage, and network-intensive datacenter applications shows up to 2x performance improvement compared to the state-of-the-art VMM-exclusive approach. <s> BIB006 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> E. MEMORY PAGES MANAGEMENT <s> Both limited main memory size and memory interference are considered as the major bottlenecks in virtualization environments. Memory deduplication, detecting pages with same content and being shared into one single copy, reduces memory requirements; memory partition, allocating unique colors for each virtual machine according to page color, reduces memory interference among virtual machines to improve performance. In this paper, we propose a coordinate memory deduplication and partition approach named CMDP to reduce memory requirement and interference simultaneously for improving performance in virtualization. Moreover, CMDP adopts a lightweight page behavior-based memory deduplication approach named BMD to reduce futile page comparison overhead meanwhile to detect page sharing opportunities efficiently. And a virtual machine based memory partition called VMMP is added into CMDP to reduce interference among virtual machines. According to page color, VMMP allocates unique page colors to applications, virtual machines and hypervisor. The experimental results show that CMDP can efficiently improve performance (by about 15.8 percent) meanwhile accommodate more virtual machines concurrently. <s> BIB007
In virtualised systems, during the VM boot, the boot manager initialises a guest-VM's memory and adds the VM pages under the control of the OS allocator BIB005 . Often a situation arises when one virtual machine has free memory, while other virtual machines do not have enough memory. The workload of several VM applications changes over time, so memory requirements may suddenly decrease or increase dramatically. However, even if hypervisors have a large number of free memory pages, they cannot reallocate memory to a guest who needs urgent memory to use. When the memory requirements are less than the amount of free memory, the guest will necessarily start the guest paging mechanism, which will lead to a decrease in performance, an imbalance in memory usage caused by a waste of resources. Hypervisors typically already support dynamic allocation of a processor pool between different VM. Therefore, many existing studies focus on exploring how to dynamically adjust memory allocation to meet the changing demand of a VM. The polymorphic memory management proposed in BIB004 performs a periodic procedure of hardware-assisted page monitoring, followed by OS intervention for migration and partitioning. The key assumption here is that the page access pattern during one period is similar to the next pattern during the next period. HeteroOS BIB006 extends the boot allocator to initialise a NUMA node and its related data structures for each memory type. In order to achieve smart memory placement and reduce page migrations, several extensions to the OS allocators were implemented. For instance, the extension allows to use just one partition zone for FastMem nodes and to use only the HeteroOS page allocator for FastMem pages to avoid other general-purpose allocation by the default OS allocators. Reference BIB003 proposed three memory management policies and a combination of ballooning and swapping intended for working virtual memory. The policies are handled by using guard functions of transition in stochastic reward net (SRN) hierarchical model of memory virtualisation. Memory availability with failure related behaviour is modelled and analysed as an upper-level model. The lower-level model captures the performance of the system, especially several memory utilisation measures. Coordinate memory deduplication and partition (CMDP) approach introduced in BIB007 aims at reducing memory requirement and interference simultaneously. CMDP allows mapping hypervisor, VMs and applications running on VMs onto different memory banks, thus eliminating interference. Due to pages that belonged to the memory banks of VMs, especially pages with the same access behaviour, more likely have the same content, the page comparisons in the proposed behaviourbased memory deduplication approach are restricted into the same classification to reduce the overhead of futile comparison. In order to adjust memory size, a quick approximation algorithm was proposed in BIB002 , in contrast to the brute force search. This algorithm recursively for all VMs reduces the memory allocation of one VM, increases the memory allocation of other VM respectively and calculates the total page misses until the total page misses reach a local minimum. Balloon driver BIB001 is a widely used approach to enable memory resource overcommitment. However, the ballooning driver does not move memory fast enough to satisfy the memory requirement, since VM memory swapping could be triggered while the balloon driver is moving the memory across guest VMs. Another challenge is the double paging problem, which is caused by the inefficient swapping activities between the guest OSs and the host OS. The unnecessary disk I/O caused by double paging problem could seriously affect the performance of guest VMs.