Software-controlled heterogeneous memory systems have the potential to improve performance, efficiency, and cost tradeoffs in emerging systems. Delivering on this promise requires an efficient operating system (OS) mechanisms and policies for data management. Unfortunately, modern OSes do not support efficient tiering of data between heterogeneous memories. While this problem is known (and is being studied) for application-level data pages, the question of how best to tier OS kernel objects has largely been ignored. We show that careful kernel object management is vital to the performance of software-controlled tiered memory systems. We find that the state-of-the-art OS page management research leaves considerable performance on the table by overlooking how best to tier, migrate, and manage kernel objects like inodes, dentry caches, journal blocks, network socket buffers, etc., associated with the filesystem and networking stack. In response, we characterize hotness, reuse, and liveness properties of kernel objects to develop appropriate tiering/migration mechanisms and policies. We evaluate our proposal using a real-system emulation framework on large-scale workloads like RocksDB, Redis, Cassandra, and Spark and achieve 1.4X to 4X higher throughput compared to the prior art.
翻译:软件控制的多种记忆系统有可能提高新系统的业绩、效率和成本权衡。 实现这一承诺需要有一个高效的操作系统(OS)机制和数据管理政策。 不幸的是,现代操作系统不支持在不同记忆之间对数据进行高效率的分级。 虽然对应用级数据页来说这个问题已经知道(并正在研究),但如何最好地将OS内核物体分级的问题在很大程度上被忽视。 我们表明,谨慎的内核物体管理对于软件控制的分级存储系统的运作至关重要。我们发现,最先进的OS网页管理研究在桌面上留下相当大的绩效,通过忽略如何最好地分级、迁移和管理与文件系统和网络堆叠相关的内核物体,例如编织物、钻井缓冲、日记、网络套缓冲等等。 对此,我们用内核物体的热度、再利用和活性特性来制定适当的分级/迁移机制和政策。 我们发现,最先进的OS网页管理研究在桌面上留下相当大的绩效,通过高层次的系统模拟框架,如RocksDB、RedandraftX、Cassand Smell 和Smark到前X的更高程度。