为了提升数据中心的效率,通常会将多个存储设备通过网络进行资源池化,使多个应用程序能够共享这些设备。然而,即使采用资源池化,由于设备性能的差异,仍有大量存储容量未被充分利用。
麻省理工学院(MIT)的研究人员开发了一种新系统,能够同时处理存储设备性能波动的三大主要因素,从而显著提升存储设备的整体性能。与传统方法仅解决单一性能波动源不同,该系统带来了显著的速度提升。
该系统采用两级架构:中央控制器负责整体任务分配,决定每个存储设备执行的任务;而每台设备配备的本地控制器则能快速响应,实时调整数据流向,避免设备性能瓶颈。
这一方法能够实时适应不断变化的工作负载,无需专用硬件支持。研究人员在人工智能模型训练和图像压缩等实际任务中测试该系统,性能几乎是传统方法的两倍。通过智能负载均衡,多台存储设备的整体效率得以提升,极大增强了数据中心的运行效能。
电气工程与计算机科学研究生、该技术论文的第一作者Gohar Chaudhry表示:“很多时候,人们倾向于通过增加硬件资源来解决问题,但这并不可持续。我们希望最大限度地延长这些昂贵且碳排放高的设备的使用寿命。借助我们的自适应软件解决方案,用户可以在更换设备之前,充分挖掘现有设备的性能。”
论文合作者包括塔夫茨大学助理教授Ankit Bhardwaj、2024届博士Zhenyuan Ruan,以及MIT计算机科学与人工智能实验室的副教授Adam Belay。该研究成果将在USENIX网络系统设计与实现研讨会上发布。
挖掘未被利用的性能
固态硬盘(SSD)作为高性能数字存储设备,支持应用程序快速读写数据。例如,SSD能够存储庞大数据集,并迅速将数据传输给处理器,用于机器学习模型训练。
将多块SSD资源池化,允许多个应用共享,有助于提升效率,因为并非所有应用在同一时间都需使用SSD的全部容量。但不同SSD性能存在差异,最慢设备往往成为整体性能的瓶颈。
这些性能差异主要源于SSD硬件本身和其执行任务的多样性。
为充分利用这些未被挖掘的SSD性能,研究团队开发了名为Sandook的软件系统,能够同时应对三种主要的性能波动因素。“Sandook”在乌尔都语中意为“箱子”,象征“存储”。
第一种性能波动来自SSD的年龄、磨损程度及容量差异,这些设备可能来自不同供应商、采购时间不一。
第二种波动源于读写操作的冲突。SSD在写入新数据时需先擦除部分旧数据,这一过程会影响同时进行的数据读取速度。
第三种波动则是垃圾回收过程,SSD会定期收集并清理过时数据以释放空间,但这一过程随机触发,会暂时降低SSD性能。

Chaudhry解释道:“我不能假设所有SSD在整个使用周期内表现一致。即使给它们相同的工作负载,也会有设备表现落后,影响整体吞吐量。”
全局规划,局部响应
为应对上述三种性能波动,Sandook采用两级调度架构。全局调度器负责优化整个资源池的任务分配,而每个SSD上的本地调度器则快速响应紧急事件,及时调整任务,避免设备过载。
系统通过轮换SSD的读写任务,减少读写操作在同一设备上的冲突,从而缓解读写干扰带来的延迟。
Sandook还会对每个SSD的性能进行动态分析,识别垃圾回收导致的性能下降。一旦检测到垃圾回收,系统会降低该SSD的负载,待回收完成后再逐步恢复任务量。
“当SSD进行垃圾回收时,无法承受原有负载,我们会适当减少其任务量,找到一个既能保持工作又能发挥性能的平衡点。”
此外,SSD的性能分析数据还帮助全局控制器根据设备特性和容量,采用加权方式分配任务。
由于全局控制器掌握整体视图,本地控制器能实时响应,Sandook能够同时管理不同时间尺度上的性能波动。例如,垃圾回收导致的延迟是突发性的,而磨损引起的性能下降则是逐渐累积的。
研究团队在包含10块SSD的资源池上测试了Sandook,评估任务包括数据库运行、机器学习模型训练、图像压缩和用户数据存储。结果显示,Sandook使各应用的吞吐量提升12%至94%,SSD容量利用率提升23%。
该系统使SSD性能达到理论最大值的95%,且无需专用硬件或针对特定应用的更新。
Chaudhry表示:“我们的动态解决方案能够释放所有SSD的潜力,最大限度地发挥其性能。在如此大规模的环境中,每一点容量的节省都至关重要。”
未来,研究团队计划结合最新SSD支持的新协议,赋予运营者更强的数据布局控制能力。同时,他们希望利用人工智能工作负载的可预测性,进一步提升SSD的运行效率。
谷歌软件工程师、即将任职宾夕法尼亚大学助理教授的Josh Fried评价道:“闪存存储是现代数据中心应用的核心技术,但在性能需求差异巨大的工作负载间共享资源仍是重大挑战。这项工作以优雅且实用的方案推动了技术进步,具备实际部署潜力,将闪存存储的性能更好地释放于生产云环境。”
该研究部分由美国国家科学基金会、国防高级研究计划局和半导体研究公司资助。
