面对延迟低于10微秒的超高速SSD,传统内核I/O栈已成为性能瓶颈。本文探讨了一种创新的异步I/O栈(AIOS),它通过重构内核路径,将CPU操作与设备I/O重叠,并简化块层设计,从而极大释放了新一代SSD的潜力,实现了应用性能的显著提升。
智能速览
超低延迟SSD让内核I/O栈成为新的性能瓶颈。
提出异步I/O栈(AIOS),将CPU操作与设备I/O重叠。
采用轻量级块层,取消I/O调度与合并,减少停留时间。
4KB随机读取延迟降至个位数微秒级,整体延迟降低15%-33%。
RocksDB和OLTP等实际应用性能提升11%-44%。
精华内容
为了彻底解决内核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的巨大潜力。未来,随着硬件速度的进一步提升,这种重构系统软件栈的思路是否将成为常态?这为高性能计算领域带来了新的思考方向。