Abstract
With the rapid increase of data set size of cloud and big data applications, conventional regular 4KB pages can cause high pressure on hardware address translations. The pressure becomes more prominent in a virtualized system, which adds an additional layer of address translation. Virtual to physical address translations reply on a hardware Translation Lookaside Buffer (TLB) to cache address mappings. However, even modern hardware offers a very limited number of TLB entries. Meanwhile, TLB misses can cause significant performance degradation. Using 2MB or 1GB hugepages can improve TLB coverage and reduce TLB miss penalty. Therefore, recent operation systems, such as Linux, start to adopt hugepages. However, using hugepages bring new challenges, among which is working set size prediciton. In a virtualized system, working set size (WSS) estimation, which predicts the actual memory demand of a virtual machine, is often applied to guide virtual machine memory management and memory allocation. We find that traditional WSS estimation methods with regular pages cannot be simply ported to a system adopting hugepages. We estimate the working set size of a virtual machine by constructing a miss ratio curve (MRC), which relates page miss ratio to the virtual machine memory allocation. Using hugepages increases the overhead to track page accesses for MRC construction and also demands much higher precision in representing the miss ratios as a hugepage miss leads to a much higher penalty than a regular page miss. In this paper, we propose an accurate WSS estimation method in a virtual execution environment with hugepages. We design and implement a low overhead dynamic memory tracking mechanism by utilizing a hot set to filter frequent short-reuse accesses. Our approach is able to output a hugepage miss ratio at high precision. The experimental results show that our method can predict WSS accurately with an average overhead of 1.5%.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have