一句话:提出 KLOCs 抽象,按热度、复用和存活期分组内核对象,实现异构内存中的高效分层与迁移。
异构内存系统有望带来性能、能效和成本优势,但其数据分层与迁移依赖高效的操作系统机制。现有系统对应用数据分层已有研究,却忽视了文件系统和网络中的内核对象(如 inode、dentry 缓存、journal 块、socket 缓冲区)的管理,给 I/O 密集型负载带来性能挑战。本文量化该挑战,并提出内核级对象上下文(KLOCs)这一 OS 抽象,用于识别并按热度、复用和存活期对内核对象分组,指导跨异构内存的数据放置与迁移。作者在包括 Intel Optane 的多种配置上,用 RocksDB、Redis、Cassandra 和 Spark 评估,结果显示 KLOCs 相比先前工作可将系统吞吐量最高提升 2.7 倍。
Heterogeneous memory systems promise better performance, energy-efficiency, and cost trade-offs in emerging systems. But delivering on this promise requires efficient OS mechanisms and policies for data tiering and migration. Unfortunately, modern OSes are lacking inefficient support for data tiering. While this problem is known for application data, the question of how best to manage kernel objects for filesystems and networking---i.e., inodes, dentry caches, journal blocks, socket buffers, etc.---has largely been ignored and presents a performance challenge for I/O-intensive workloads. We quantify the scale of this challenge and introduce a new OS abstraction, kernel-level object contexts (KLOCs), to enable efficient tiering of kernel objects. We use KLOCs to identify and group kernel objects with similar hotness, reuse, and liveness, and demonstrate their use in data placement and migration across several heterogeneous memory system configurations, including Intel’s Optane systems. Performance evaluations using RocksDB, Redis, Cassandra, and Spark show that KLOCs enable up to 2.7× higher system throughput versus prior art.
DOI 原文 ·
@inproceedings{paperbot6129,
title = {KLOCs: kernel-level object contexts for heterogeneous memory systems},
author = {Sudarsun Kannan and Yujie Ren and Abhishek Bhattacharjee},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446745}
}