Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3546591.3547523acmconferencesArticle/Chapter ViewAbstractPublication PagesapsysConference Proceedingsconference-collections
research-article
Open access

PMShifter: enabling persistent memory fluidness in Linux

Published: 30 August 2022 Publication History

Abstract

Intel recently released the first commercial server-grade persistent memory (PM), Optane DC Persistent Memory. PM bridges the long-standing gap between volatile and non-volatile storage devices, as its byte-addressability and non-volatility allow it to be used partly as storage and memory simultaneously. One downside of conventional memory management design is that such distinction needs to be made at boot time or explicitly set through a user-level program. This limits the flexibility offered by the device, as data persistence requirements vary over time.
To address this issue, we propose PMShifter, which transparently and dynamically configures PM between memory and storage. To enable this flexible configuration, PMShifter also targets inefficient memory compaction, page migration and PM-oblivious NUMA policies. We evaluate PMShifter on micro-benchmarks and real-life workloads, showing up to 12.3X improved page migration throughput, faster retrieval of up to 12.77X more large physically contiguous memory segments during compaction, while running Redis displayed 64% reduced tail latency and 2.09X improved throughput.

References

[1]
Alexandra Agache, Marc Brooker, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka, and Diana-Maria Popa. 2020. Firecracker: Lightweight Virtualization for Serverless Applications. In 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). USENIX Association, Santa Clara, CA, 419--434. https://www.usenix.org/conference/nsdi20/presentation/agache
[2]
Neha Agarwal and Thomas F. Wenisch. 2017. Thermostat: Application-Transparent Page Management for Two-Tiered Main Memory. SIGPLAN Not. 52, 4 (April 2017), 631--644.
[3]
Santiago Bock, Bruce R. Childers, Rami Melhem, and Daniel Mossé. 2014. Concurrent Page Migration for Mobile Systems with OS-Managed Hybrid Memory. In Proceedings of the 11th ACM Conference on Computing Frontiers (Cagliari, Italy) (CF '14). Association for Computing Machinery, New York, NY, USA, Article 31, 10 pages.
[4]
Thaleia Dimitra Doudali, Sergey Blagodurov, Abhinav Vishnu, Sudhanva Gurumurthi, and Ada Gavrilovska. 2019. Kleio: A Hybrid Memory Page Scheduler with Machine Intelligence. In Proceedings of the 28th International Symposium on High-Performance Parallel and Distributed Computing (Phoenix, AZ, USA) (HPDC '19). Association for Computing Machinery, New York, NY, USA, 37--48.
[5]
Mel Gorman. Online; Accessed May, 2021. Chapter 6 Physical Page Allocation. https://www.kernel.org/doc/gorman/html/understand/understand009.html.
[6]
Mel Gorman. Online; Accessed May, 2021. Foundation for automatic NUMA balancing. https://lwn.net/Articles/523065.
[7]
Intel. Online; Accessed May, 2021. Intel Optane DC Persistent Memory. https://www.intel.com/content/www/us/en/architecture-and-technology/optane-dc-persistent-memory.html.
[8]
Intel. Online; Accessed May, 2021. Intel Optane DC Persistent Memory - Quick Start Guide. https://www.intel.com/content/dam/support/us/en/documents/memory-and-storage/data-center-persistent-mem/Intel-Optane-DC-Persistent-Memory-Quick-Start-Guide.pdf.
[9]
Intel. Online; Accessed May, 2021. Reimagining Memory and Storage in the Data Center. https://www.intel.com/content/www/us/en/architecture-and-technology/intel-optane-technology/reimagine-memory-storage-in-the-data-center.html.
[10]
PMDK Team Intel. Online; Accessed May, 2021. Documentation for ndctl and daxctl. https://pmem.io/ndctl.
[11]
Sudarsun Kannan, Ada Gavrilovska, Vishal Gupta, and Karsten Schwan. 2017. HeteroOS: OS Design for Heterogeneous Memory Management in Datacenter. In Proceedings of the 44th Annual International Symposium on Computer Architecture (Toronto, ON, Canada) (ISCA '17). Association for Computing Machinery, New York, NY, USA, 521--534.
[12]
The kernel development community. Online; Accessed May, 2021. Idle Page Tracking. https://www.kernel.org/doc/html/latest/admin-guide/mm/idle_page_tracking.html.
[13]
Jonghyeon Kim, Wonkyo Choe, and Jeongseob Ahn. 2021. Exploring the Design Space of Page Management for Multi-Tiered Memory Systems. In 2021 USENIX Annual Technical Conference (USENIX ATC 21). USENIX Association, 715--728. https://www.usenix.org/conference/atc21/presentation/kim-jonghyeon
[14]
A. Kokolis, D. Skarlatos, and J. Torrellas. 2019. PageSeer: Using Page Walks to Trigger Page Swaps in Hybrid Memory Systems. In 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA). 596--608.
[15]
Milind Kulkarni, Keshav Pingali, Bruce Walter, Ganesh Ramanarayanan, Kavita Bala, and L. Paul Chew. 2007. Optimistic Parallelism Requires Abstractions. SIGPLAN Not. 42, 6 (June 2007), 211--222.
[16]
Youngjin Kwon, Hangchen Yu, Simon Peter, Christopher J. Rossbach, and Emmett Witchel. 2016. Coordinated and Efficient Huge Page Management with Ingens. In Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (Savannah, GA, USA) (OSDI'16). USENIX Association, USA, 705--721.
[17]
Baptiste Lepers, Vivien Quéma, and Alexandra Fedorova. 2015. Thread and Memory Placement on NUMA Systems: Asymmetry Matters. In Proceedings of the 2015 USENIX Conference on Usenix Annual Technical Conference (Santa Clara, CA) (USENIX ATC '15). USENIX Association, USA, 277--289.
[18]
Jure Leskovec and Andrej Krevl. Online; Accessed May, 2021. SNAP Datasets: Stanford Large Network Dataset Collection. http://snap.stanford.edu/data.
[19]
Felix Xiaozhu Lin and Xu Liu. 2016. Memif: Towards Programming Heterogeneous Memory Asynchronously. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (Atlanta, Georgia, USA) (ASPLOS '16). Association for Computing Machinery, New York, NY, USA, 369--383.
[20]
Theodore Michailidis, Alex Delis, and Mema Roussopoulos. 2019. MEGA: Overcoming Traditional Problems with OS Huge Page Management. In Proceedings of the 12th ACM International Conference on Systems and Storage (Haifa, Israel) (SYSTOR '19). Association for Computing Machinery, New York, NY, USA, 121--131.
[21]
Ashish Panwar, Aravinda Prasad, and K. Gopinath. 2018. Making Huge Pages Actually Useful. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (Williamsburg, VA, USA) (ASPLOS '18). Association for Computing Machinery, New York, NY, USA, 679--692.
[22]
Redis. Online; Accessed May, 2021. Redis benchmark. https://redis.io/topics/benchmarks.
[23]
Jee Ho Ryoo, Lizy K. John, and Arkaprava Basu. 2018. A Case for Granularity Aware Page Migration. In Proceedings of the 2018 International Conference on Supercomputing (Beijing, China) (ICS '18). Association for Computing Machinery, New York, NY, USA, 352--362.
[24]
Nikolay Savvinov. Online; Accessed May, 2021. Memory fragmentation: the silent performance killer. https://savvinov.com/2019/10/14/memory-fragmentation-the-silent-performance-killer.
[25]
Hyeonho Song and Sam H. Noh. 2018. Towards Transparent and Seamless Storage-As-You-Go with Persistent Memory. In 10th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 18). USENIX Association, Boston, MA. https://www.usenix.org/conference/hotstorage18/presentation/song
[26]
Wikipedia contributors. Online; Accessed May, 2021. Exponential Moving Average --- Wikipedia, The Free Encyclopedia. https://en.wikipedia.org/wiki/Moving_average.
[27]
Zi Yan, Daniel Lustig, David Nellans, and Abhishek Bhattacharjee. 2019. Nimble Page Management for Tiered Memory Systems. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (Providence, RI, USA) (ASPLOS '19). Association for Computing Machinery, New York, NY, USA, 331--345.
[28]
Jian Yang, Juno Kim, Morteza Hoseinzadeh, Joseph Izraelevitz, and Steve Swanson. 2020. An Empirical Guide to the Behavior and Use of Scalable Persistent Memory. In 18th USENIX Conference on File and Storage Technologies (FAST 20). USENIX Association, Santa Clara, CA, 169--182. https://www.usenix.org/conference/fast20/presentation/yang

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
APSys '22: Proceedings of the 13th ACM SIGOPS Asia-Pacific Workshop on Systems
August 2022
89 pages
ISBN:9781450394413
DOI:10.1145/3546591
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 August 2022

Check for updates

Author Tags

  1. memory management
  2. non-volatile memory
  3. operating systems
  4. persistent memory

Qualifiers

  • Research-article

Funding Sources

  • SRC/DARPA Center for Research on Intelligent Storage and Processing-in-memory
  • NSF

Conference

APSys '22
Sponsor:
APSys '22: 13th ACM SIGOPS Asia-Pacific Workshop on Systems
August 23 - 24, 2022
Virtual Event, Singapore

Acceptance Rates

Overall Acceptance Rate 169 of 430 submissions, 39%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 416
    Total Downloads
  • Downloads (Last 12 months)116
  • Downloads (Last 6 weeks)12
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media