ASPLOS 2023 Paper 论文阅读笔记整理
问题
I/O缓存已在企业存储系统中广泛使用,例如使用固态硬盘(SSD)作为硬盘阵列(HDD)顶部的I/O缓存层。随着超快存储设备的出现,例如P5800X Optane SSD、Intel PM,最近的研究建议在I/O密集型应用程序中,将其用作SSD之上的I/O缓存层。本文分析表明,尽管超快存储设备具有巨大的潜力,但现有的I/O缓存体系结构可能会成为企业存储系统的主要性能瓶颈,从而阻碍充分利用设备的全部性能潜力。
现有方法局限性
现有工作已经研究了用超快设备作为I/O缓存,但它们未能为通用存储区域网络(SAN)中的I/O缓存设计提供足够的见解。一些人考虑特殊的用例,例如通过计算节点缓存加速HPC应用程序[7],或者通过基于PMEM或DRAM[6]的缓冲区缓存加速文件系统同步操作。OrthusCAS[45]考虑了一种有限的场景,其中缓存设备与后端设备相比具有相似的IOPS(但延迟较低),并提出了缓存层负载平衡机制。一些研究涉及后端HDD阵列的SSD缓存[4,8,19,19,25,39,43,46]。但以前的工作都没有研究过I/O缓存的最终性能,也没有对存在超快设备的情况下I/O缓存的行为提供任何见解。
本文方法
-
用于新兴快速存储设备的现有I/O高速缓存的经验分析。本文展示了现有的见解不再适用于具有新兴超快设备(作为I/O缓存)和SSD阵列(作为后端)的现代SAN系统,与传统SAN(HDD阵列顶部的SSD缓存)表现出明显不同的行为。对三个真实I/O缓存的评估表明,在传统SAN中,性能限制为78K IOPS,当切换到现代SAN时,缓存的内部并行性得到释放,可以提供335K到1.5M的IOPS。在传统SAN中,降低缓存命中率会显著降低性能,由于从慢速HDD阵列提供更多请求,但现代SAN中,较低的命中率可能会提供在I/O缓存和快速SSD后端之间负载平衡请求的机会,甚至提高整体性能。
-
为快速存储设备构建I/O缓存的框架。本文提出了一个实验和分析框架,以系统地了解新兴快速设备上I/O缓存的行为,并提出了一种可扩展的I/O缓存体系结构。框架有五个关键特征:(1)依赖企业级I/O缓存模块而不是简单的缓存模型,对具有内在复杂性的真实系统I/O缓存进行评估;(2)真实测量而不是模拟;(3)结合行业级I/O高速缓存的真实测量和源代码,进行深度体系结构分析;(4)生成综合I/O负载,以覆盖企业工作负载的各种I/O模式;(5)框架在分析生产环境中任何I/O缓存的性能行为时具有很高的适用性。
-
I/O缓存的生产级性能度量。展示了三种开源I/O缓存(OpenCAS、EnhanceIO、DM Cache)在快速SAN环境中的真实性能。
-
可扩展的I/O缓存体系结构。通过框架提供了一些如何为新兴的SAN存储系统设计可扩展I/O缓存的发现。(1) 如果I/O缓存查找逻辑是由少量线程(例如EnhanceIO缓存[9])实现的,或者使用许多线程但使用简单的粗粒度锁(例如,在DM缓存[1]中锁定用于标签搜索的完整元数据表),则系统IOPS限制为几十万IOPS。但是,将缓存线程的数量与CPU核心相匹配并使用细粒度锁(例如,如OpenCAS[11],每少量感兴趣的缓存条目一个锁)可以提供数百万IOPS的可扩展性。(2) 缺失块的立即升级可能会导致I/O缓存争用,延迟提升一次或多次访问的块(例如,nhit-2策略)提供了利用快速后端SSD阵列的机会,该阵列在具有中等局部性的工作负载中将IOPS提高了2倍以上,并将读取延迟或服务质量(QoS)(即较低的尾延迟)提高了6倍-76倍。(3) 新兴的超高速缓存设备容量较小,并且由于突发写入而充满脏块。提出了绕过写入未命中到后端,即延迟刷新,可以避免缓存争用,并提高整体IOPS(与后端的负载平衡)。而主动缓存刷新以释放缓存块会导致性能下降,例如,由于在受害者块选择过程中锁定。此外,在高命中率工作负载中,延迟刷新将QoS提高了4.3倍。
在工业级存储系统上的实验表明,通过所提出的框架优化配置的I/O缓存架构比非优化架构提供了1.7×-11倍的IOPS和降低2.6×-30倍的99.99%的尾延迟。
总结
针对使用超快存储设备作为SSD的缓存层场景。本文提出了一个实验评估框架,以系统地检查新兴超快设备的I/O缓存模块的行为。提出了几种增加IOPS降低尾延迟的设计思路:(1)将缓存查找线程的数量和CPU核数量匹配并使用细粒度锁。(2)延迟提升未命中的块可以更好的利用后端SSD阵列。(3)延迟刷新缓存中的脏快,绕过缓存直接写入后端SSD,避免缓存争用。