DaxVM: Stressing the Limits of Memory as a File Interface

DaxVM: Stressing the Limits of Memory as a File Interface
复制标题

DOI:
10.1109/micro56248.2022.00037
复制
发表时间:
2022-10
期刊:
2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO)
影响因子:
--
通讯作者:
Chloe Alverti;Vasileios Karakostas;Nikhita Kunati;G. Goumas;M. Swift
Chloe Alverti;Vasileios Karakostas;Nikhita Kunati;G. Goumas;M. Swift
中科院分区:
其他
文献类型:
--
作者:
Chloe Alverti;Vasileios Karakostas;Nikhita Kunati;G. Goumas;M. Swift

文献摘要

被引文献

相似文献

持久内存 (PMem) 是一种连接到处理器内存总线的低延迟存储技术。直接访问 (DAX) 接口可实现对 PMem 的快速访问,将其直接映射到进程的虚拟地址空间。然而,虚拟内存操作(例如分页)限制了其性能和可扩展性。通过对 Linux/x86 内存映射的分析,我们发现当前系统无法满足硬件所能提供的功能,因为操作系统假设内存映射用于 DRAM,导致软件效率低下。在本文中,我们提出了 DaxVM,这是一种利用持久内存属性扩展操作系统虚拟内存和文件系统层的设计,以提供快速且可扩展的 DAX-mmap 接口。 DaxVM 通过预先填充的文件页表消除分页成本,支持更快且可扩展的临时映射虚拟地址空间管理,异步执行取消映射,绕过内核空间脏页跟踪支持,并采用异步块预清零。我们在 Linux 和针对 xS6-64 架构的 ext4 文件系统中实现了 DaxVM。 DaxVM mmap 的吞吐量比 Apache Web 服务器的默认 mmap 高出 4.9 倍,性能比读取系统调用高出 1.5 倍。它为文本搜索提供了类似的好处。对于在碎片 ext4 映像上运行的 PMem 优化键值存储,它还提供快速启动时间和比默认 mmap 高出 2.95 倍的吞吐量。尽管设计用于直接访问字节可寻址存储,但 DaxVM 的各个方面都与高效访问其他高性能存储介质相关。
Persistent memory (PMem) is a low-latency storage technology connected to the processor memory bus. The Direct Access (DAX) interface promises fast access to PMem, mapping it directly to processes’ virtual address spaces. However, virtual memory operations (e.g., paging) limit its performance and scalability. Through an analysis of Linux/x86 memory mapping, we find that current systems fall short of what hardware can provide due to numerous software inefficiencies stemming from OS assumptions that memory mapping is for DRAM. In this paper we propose DaxVM, a design that extends the OS virtual memory and file system layers leveraging persistent memory attributes to provide a fast and scalable DAX-mmap interface. DaxVM eliminates paging costs through pre-populated file page tables, supports faster and scalable virtual address space management for ephemeral mappings, performs unmappings asynchronously, bypasses kernel-space dirty-page tracking support, and adopts asynchronous block pre-zeroing. We implement DaxVM in Linux and the ext4 file system targeting xS6-64 architecture. DaxVM mmap achieves 4.9x higher throughput than default mmap for the Apache webserver and up to 1.5x better performance than read system calls. It provides similar benefits for text search. It also provides fast boot times and up to 2.95x better throughput than default mmap for PMem-optimized key-value stores running on a fragmented ext4 image. Despite designed for direct access to byte-addressable storage, various aspects of DaxVM are relevant for efficient access to other high performant storage mediums.