XLH: More effective memory deduplication scanners through cross-layer hints

  • Autor:

    Konrad Miller, Fabian Franz, Marc Rittinghaus, Marius Hillenbrand, and Frank Bellosa

  • Quelle:

    Proceedings of the 2013 USENIX Annual Technical Conference, San Jose, CA, June 26-28, 2013

  • Datum: 26.06.2013
  • Abstract:

    Limited main memory size is the primary bottleneck for consolidating virtual machines (VMs) on hosting servers. Memory deduplication scanners reduce the memory footprint of VMs by eliminating redundancy. Our Approach extends main memory deduplication scanners through Cross Layer I/O-based Hints (XLH) to find and exploit sharing opportunities earlier without raising the deduplication overhead.

    Prior work on memory scanners has shown great opportunity for memory deduplication. In our analyses, we have confirmed these results; however, we have found Memory scanners to work well only for deduplicating fairly static memory pages. Current scanners need a considerable amount of time to detect new sharing opportunities (e.g., 5 min) and therefore do not exploit the full sharing potential. XLH’s early detection of sharing opportunities saves more memory by deduplicating otherwise missed short-lived pages and by increasing the time long-lived duplicates remain shared.

    Compared to I/O-agnostic scanners such as KSM, our benchmarks show that XLH can merge equal pages that stem from the virtual disk image earlier by minutes and is capable of saving up to four times as much memory; e.g., XLH saves 290 MiB vs. 75 MiB of main memory for two VMs with 512 MiB assigned memory each.


      author = {Miller, Konrad and Franz, Fabian and Rittinghaus, Marc and Hillenbrand, Marius and Bellosa, Frank},
      title = {{XLH}: More effective memory deduplication scanners through cross-layer hints},
      booktitle = {Proceedings of the 2013 USENIX Annual Technical Conference},
      series = {USENIX ATC'13},
      year = {2013},
      location = {San Jose, CA},
      publisher = {USENIX Association},
      address = {Berkeley, CA, USA},