Skip to content

Latest commit

 

History

History
65 lines (46 loc) · 3.7 KB

File metadata and controls

65 lines (46 loc) · 3.7 KB

HeMem: Scalable Tiered Memory Management for Big Data Applications and Real NVM

Metadata

Presented in SOSP '21. [ Paper | Video | Code ]

Authors: Amanda Raybuck, Tim Stamler, Wei Zhang, Mattan Erez, Simon Peter

Understanding the paper

Some concepts

  • Tiered Memory Management (i.e., hybrid DRAM-NVM architecture)

DRAM + NVM tiered memory

Existing problems

  1. Hardware tiered memory management systems (i.e., Application <=> Hardware Tiered Memory directly includes DRAM and NVM)
    • Example: Intel Optane DC memory mode
    • Adv.
      • No OS support needed
      • Low overhead
    • Disadv.
      • No visibility into applications
      • Limited to simple management techniques
  2. Existing software-based memory management systems (i.e., Application <=> OS/Library Tiered Memory => DRAM or NVM)
    • Example: HeteroOS, Nimble Page Management
    • Adv.
      • Benefit from the access patterns
      • Support complex policies
    • Disadv.
      • Only evaulate on emulated NVM , current methods cannot scale due to page table overheads (so there indicates this work will adopt another metric?)
      • No support for asymmetric read/write bandwidth (but why these previous works don't consider this?)
      • Limited flexibility (it is so subjective)

Question: How to maximize the performance of big data applications on real NVM?

Key motivation

  • Monitor application memory use by sampling memory access via CPU events, rather than page tables
    • In detailed, previous memory access tracking methods that leverage page table access and dirty bits have high CPU overhead for scanning page tables and TLB shootdowns when bits are cleared
  • Asynchronously use DMA to migrate memory
  • Consider asymmetric NVM read/write bandwidth
  • Improve the flexibility
    • Enable memory management in a user-level library (low overhead to monitor application memory access and allocation patterns)

Main Contributions

This paper presents HeMem, an OS tiered memory management system that dynamically manages tiered memory without the CPU overhead of page access bit tracking, associated TLB shootdowns, and memory copies, but with advanced policy support for various memory access and allocation patterns, as well as performance isolation.

The design of HeMem

Implementation

HeMem is implemented as a user-level library on top of Linux version 5.1.0, with two userfaultfd patches applied.

Related work