张大妈

异步 I/O 堆栈:面向超低延迟 SSD 的低延迟内核 I/O 堆栈

源自UP主:USENIX顶会译站

01-23 14:26

面对延迟低于10微秒的超高速SSD,传统内核I/O栈已成为性能瓶颈。本文探讨了一种创新的异步I/O栈(AIOS),它通过重构内核路径,将CPU操作与设备I/O重叠,并简化块层设计,从而极大释放了新一代SSD的潜力,实现了应用性能的显著提升。

异步 I/O 堆栈:面向超低延迟 SSD 的低延迟内核 I/O 堆栈智能速览

  • 超低延迟SSD让内核I/O栈成为新的性能瓶颈。

  • 提出异步I/O栈(AIOS),将CPU操作与设备I/O重叠。

  • 采用轻量级块层,取消I/O调度与合并,减少停留时间。

  • 4KB随机读取延迟降至个位数微秒级,整体延迟降低15%-33%。

  • RocksDB和OLTP等实际应用性能提升11%-44%。

异步 I/O 堆栈:面向超低延迟 SSD 的低延迟内核 I/O 堆栈精华内容

为了彻底解决内核I/O延迟问题,AIOS对传统堆栈进行了哪些关键性改造?其背后的设计哲学和实测效果如何?

性能新挑战

如今,Optane等超低延迟SSD的I/O延迟已能突破10微秒大关。这一速度意味着,过去在存储路径中可以被忽略的内核操作,如锁、中断和上下文切换,如今已成为不可忽视的延迟来源。传统的同步I/O处理模式,使得CPU必须等待设备操作完成后才能继续,这种串行处理方式严重制约了SSD性能的充分发挥,形成了新的性能瓶颈。

异步改造

AIOS的核心思想在于“解耦”与“并行”。它用异步操作全面取代了I/O路径中的同步操作,使得应用程序发起I/O请求后无需等待,CPU可以立即处理其他任务。这种设计让与I/O相关的CPU计算和实际的设备I/O能够并行执行,有效隐藏了内核处理的延迟,从而最大化了硬件的利用效率。

轻量块层

针对专为NVMe SSD设计的场景,AIOS引入了一个轻量级块层。该层直接使用页面缓存,彻底跳过了传统的块I/O调度和I/O合并环节。对于延迟以微秒计的超高速设备而言,这些复杂的调度算法不仅收益甚微,反而增加了不必要的处理开销。通过精简这一层,AIOS显著缩短了I/O请求在内核中的“停留时间”。

实测增益

在Linux内核上构建的AIOS原型表现出色。FIO基准测试显示,在Optane SSD上进行4KB随机读取时,应用层感知的I/O延迟首次降至个位数微秒级别。更重要的是,在不同块大小下,整体I/O延迟实现了15%至33%的降低。这种优势也直接转化为实际应用的性能提升:RocksDB的IOPS提升11%至44%,而Filebench和OLTP工作负载的吞吐量也增加了15%至30%。

AIOS的提出,标志着软件系统正努力跟上硬件发展的步伐。通过异步化和轻量化设计,它成功释放了超低延迟SSD的巨大潜力。未来,随着硬件速度的进一步提升,这种重构系统软件栈的思路是否将成为常态?这为高性能计算领域带来了新的思考方向。

内容由AI生成
1
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章