研究人员开发了一种智能平衡工作负载的系统,旨在提高数据中心内闪存存储硬件的效率。
为了提升数据中心效率,多个存储设备通常通过网络池化,以便众多应用共享。但即使采用池化,由于设备间的性能差异,大量设备容量仍未被充分利用。麻省理工学院的研究人员开发了一种系统,通过同时处理三大性能差异源来提升存储设备性能。与传统一次只解决一种差异源的方法相比,该方法带来了显著的速度提升。
该系统采用双层架构:一个中央控制器负责制定整体决策,决定每个存储设备执行哪些任务;每个机器还设有本地控制器,能在设备运行困难时快速重新路由数据。该方法可实时适应变化的工作负载,且无需专用硬件。在对人工智能模型训练、图像压缩等实际任务进行测试时,该系统的性能几乎达到传统方法的两倍。通过智能平衡多个存储设备的工作负载,该系统能提升数据中心的整体效率。
“人们倾向于投入更多资源来解决问题,但这在很多方面是不可持续的。我们希望最大限度地延长这些昂贵且碳密集型资源的使用寿命,” 论文第一作者、电气工程与计算机科学研究生 Gohar Chaudhry 表示,“借助我们的自适应软件解决方案,你仍然可以从现有设备中榨取出大量性能,之后才需要淘汰并购买新设备。”
固态硬盘 (SSD) 是高性能数字存储设备,允许应用读写数据。例如,SSD 可存储海量数据集,并快速将数据发送给处理器用于机器学习模型训练。将多个 SSD 池化以供众多应用共享能提高效率,因为并非每个应用在特定时间都需要使用 SSD 的全部容量。但并非所有 SSD 性能相同,最慢的设备会限制整个池的整体性能。这些低效源于 SSD 硬件及其执行任务的差异性。
为了利用这些未被开发的 SSD 性能,研究人员开发了 Sandook——一个基于软件的系统,可同时解决三种阻碍性能的差异形式。“Sandook” 在乌尔都语中意为 “盒子”,象征 “存储”。
第一种差异源于 SSD 在寿命、磨损程度和容量上的不同,这些 SSD 可能在不同时间从不同供应商处购买。第二种差异由同一 SSD 上读写操作的不匹配造成。要写入新数据,SSD 必须先擦除部分现有数据,这一过程会拖慢同时进行的数据读取。第三种差异源是垃圾回收,即收集并移除过时数据以释放空间的过程。该过程会降低 SSD 操作速度,且由数据中心操作者无法控制的随机间隔触发。
“我无法假设所有 SSD 在整个部署周期中表现完全相同。即使给它们相同的工作负载,部分设备也会成为落后者,损害我所能达到的净吞吐量,” Chaudhry 解释。
为了处理所有三种差异源,Sandook 采用双层结构。一个全局调度器优化整个池中任务的分配,而每个 SSD 上的快速调度器则对紧急事件做出反应,并将操作从拥堵设备转移开。该系统通过轮换应用可用于读写的 SSD 来克服读写干扰造成的延迟,减少了读写在同一台机器上同时发生的几率。
Sandook 还对每个 SSD 的典型性能进行分析,利用这些信息检测垃圾回收是否可能拖慢操作。一旦检测到,Sandook 会转移部分任务来减少该 SSD 的工作负载,直到垃圾回收完成。“如果那个 SSD 正在进行垃圾回收,无法再处理相同的工作负载,我会给它更小的负载,然后慢慢恢复。我们希望找到它仍能完成一些工作的最佳点,并利用那部分性能,” Chaudhry 说。SSD 性能分析还允许 Sandook 的全局控制器以加权方式分配工作负载,考虑每个设备的特性和容量。
由于全局控制器掌控全局,本地控制器即时反应,Sandook 能够同时管理不同时间尺度上发生的差异形式。例如,垃圾回收造成的延迟突然出现,而磨损导致的延迟则是数月累积而成。
研究人员在 10 个 SSD 组成的池上测试了 Sandook,并在四项任务上评估了系统:运行数据库、训练机器学习模型、压缩图像以及存储用户数据。与静态方法相比,Sandook 将每个应用的吞吐量提高了 12% 至 94%,并将 SSD 容量的整体利用率提升了 23%。该系统使 SSD 能够达到其理论最大性能的 95%,且无需专用硬件或特定应用更新。
“我们的动态解决方案能为所有 SSD 解锁更多性能,真正将它们推向极限。在这种规模下,你能节省的每一点容量都很重要,” Chaudhry 说。未来,研究人员希望纳入最新 SSD 上可用的新协议,这些协议能让操作者更好地控制数据放置。他们还希望利用 AI 工作负载中的可预测性来提高 SSD 操作的效率。
这项研究部分由美国国家科学基金会、美国国防高级研究计划局以及半导体研究公司资助。FINISHED
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。