阅读收获
- 理解向量数据库作为AI核心基础设施,其性能瓶颈已从DRAM转向存储I/O,尤其对SSD性能提出新挑战。
- 掌握DiskANN等存储-内存混合架构如何通过将大规模向量索引下沉到SSD,实现成本与可扩展性的平衡,并认识到其对存储带宽和IOPS的极致需求。
- 识别向量数据库工作负载的“4KB小块随机读取”特性,及其对I/O延迟(QoS)的敏感性,这要求SSD具备卓越的随机读性能和一致性。
- 洞察到向量数据库的性能优化不仅依赖底层存储硬件,更需关注上层软件栈(如I/O调度、计算与I/O平衡)的协同优化,以解决“长尾”延迟问题。
全文概览
随着AI大模型时代的到来,我们正经历一场前所未有的数据爆炸。从推荐系统到大语言模型(LLM)的检索增强生成(RAG),向量数据库已成为支撑这些智能应用的核心基础设施。然而,当海量非结构化数据被转化为高维向量,并需要进行极速的“近似最近邻”(ANN)搜索时,传统的存储架构正面临严峻挑战。你是否曾思考,当向量索引规模达到万亿级别,昂贵的内存(DRAM)已无法承载时,我们该如何平衡成本与性能?存储(NAND闪存/SSD)能否接过重担,成为AI时代的新基石?本文将深入探讨向量数据库如何成为一个对存储性能高度敏感的关键AI工作负载,并揭示其对底层存储I/O的极致要求,以及我们应如何应对这些挑战。
👉 划线高亮 观点批注
什么是向量数据库?
PPT旨在从概念、功能、应用和行业趋势四个方面介绍向量数据库。
- 定义与功能: 向量数据库是一种专门用于存储和查询高维向量(Embeddings)的数据库。它的核心功能是执行极速的**“近似最近邻”(Approximate Nearest Neighbor, ANN)搜索**,即快速找到与给定查询向量最相似的数据点。
- 工作原理: 它通过一个“嵌入服务”(Embedding Service)将各种非结构化数据(如文本、图像、音视频)转换为数值向量。在向量空间中,语义相似的数据(如“猫”和“狗”)在空间中的距离会非常近。
- 关键应用: 向量数据库主要用于那些“相关性”比“100%精确性”更重要的场景,最典型的例子是推荐系统和大语言模型(LLM)的检索增强生成(RAG)。
- 对存储行业的核心挑战与机遇: 这是本张PPT的关键洞察(尤其是对Micron这样的存储厂商而言)。随着AI的发展,数据集正逐年(YoY)爆炸式增长,导致向量索引变得异常庞大。传统方案是将索引完全加载到内存(Memory/DRAM) 中以保证速度,但这已变得越来越昂贵且不可持续。因此,行业的主要创新方向是转向使用存储(Storage,如NAND闪存/SSD)来承载这些大型索引,这对存储技术提出了新的要求和机遇。
为什么要在MLPerf中引入向量数据库?
向量数据库(VectorDB)已成为一个对存储性能高度敏感的关键AI工作负载,因此有必要将其纳入MLPerf Storage基准测试中。
这张PPT阐述了这一行动的三个主要驱动因素:
- 行业趋势(存储敏感性): 随着向量数据集的爆炸性增长,向量数据库的性能瓶颈正从内存和计算转向存储I/O。这使其成为一个“存储敏感型”负载,(呼应了上一张PPT中“使用存储替代内存”的观点)。
- 现有基准的局限性: 当前的向量数据库基准测试(如ANN-Benchmarks)主要关注算法的性能和准确性,但它们无法模拟和测试超大规模(“任意规模”)数据集下的性能,而这正是现代AI应用(如RAG)的真实需求,也是存储性能面临考验的地方。
存储的近似最近邻方案
DiskANN 这一关键技术(或算法实现),它是为了解决前几张PPT中提到的“数据集规模超出内存容量”这一挑战而设计的。
DiskANN的核心是一种 “内存-存储混合架构”(Hybrid Approach):
- 解决成本与容量问题: 它将绝大多数(Bulk)的向量数据存储在成本更低、容量更大的磁盘/存储(Storage/SSD) 上。
- 保证查询性能: 同时,它在内存(RAM) 中只保留一个非常小的、高度浓缩的索引子集(或索引图的顶层)。
- 高效I/O: 它通过多线程和异步I/O等技术优化“内存索引”和“磁盘数据”之间的交互,最大限度地减少I/O延迟。
DiskANN的最终目标是在成本(Cost-Effective) 和可扩展性(Scalability) 之间取得平衡,使得在不使用海量昂贵内存的情况下,也能对万亿级别(TB甚至PB级)的向量数据集执行高性能的近似最近邻搜索。
通过实测数据证明,基于DiskANN(存储型)的向量数据库在处理大规模数据集(1亿向量)时,其性能具有良好的可扩展性,但同时也暴露了它对存储带宽的极高依赖性,并伴随着延迟的显著增加。
关键信息点:
- 验证“存储敏感型”负载: 当并发进程从1个增加到64个时,为了实现7.3倍的吞吐量(QPS)提升,系统需要7.4倍的存储读取带宽(高达 46.8 GB/s)。这有力地证明了向量数据库在高并发下是一个“存储敏感型”或“存储I/O密集型”工作负载。
- 吞吐量与带宽的线性扩展: 吞吐量(QPS)的增长(7.3x)与读取带宽(GB/s)的增长(7.4x)几乎呈完美的线性关系,这表明存储带宽是决定系统吞吐量上限的关键瓶颈。
- 延迟的代价: 这种高吞吐量和高带宽利用率是以延迟(Latency) 为代价的。平均延迟从5毫秒猛增到46毫秒,增加了9.2倍。这揭示了在存储型ANN索引中,高并发(64个进程)导致了更严重的I/O排队和资源争抢,使得单次查询的平均响应时间显著变长。
底层存储性能
为上一张PPT的性能结果(吞吐量和带宽)提供了底层的存储I/O证据,证明了DiskANN工作负载的吞吐量与存储IOPS呈线性扩展关系。
- IOPS与吞吐量/带宽的强相关性: 这张图表揭示了上一张PPT中“为什么”能实现性能扩展。当并发负载从1个进程增加到64个进程时,存储设备(NVMe SSD)的读取IOPS也从2.7万线性增长了7.4倍,达到了20万。
- 验证线性扩展: 这个 7.4倍 的IOPS增幅,与上一张PPT中观察到的 7.4倍的读取带宽(GB/s)增幅 和 7.3倍的吞吐量(QPS)增幅 几乎完全一致。
- 负载特性确认: 这强有力地证明了,对于基于DiskANN的大规模向量搜索,其性能表现是I/O密集型的。应用程序能处理的查询吞吐量(QPS)被底层存储系统(SSD)所能提供的IOPS和带宽直接限制。要提高QPS,就必须提高存储的IOPS和带宽性能。
IO Size Distribution” (I/O 大小分布)
IO Size Distribution” (I/O 大小分布)
通过I/O大小分布图,进一步将DiskANN的工作负载特征定性为“纯粹的4KB小块随机读取”。
- 恒定的4KB I/O: 这是最关键的发现。无论负载是低(1个进程)还是极高(64个进程,产生20万IOPS),底层的存储I/O请求大小始终是4KB。
- 随机访问的证据 (No Merged IOs): 在存储系统中,如果I/O是顺序的(sequential),操作系统或驱动程序通常会把小的I/O请求(如多个4KB)合并(merge)成一个大的I/O请求(如64KB, 128KB)来提高效率。而这张图显示,即使在极高并发下,I/O也没有被合并,始终保持4KB。这强有力地证明了这些I/O请求在逻辑和物理上都是完全随机的 (random-access),它们访问的数据块彼此不相邻。
- 对存储系统的意义: 结合前几张PPT,完整的分析链条是:DiskANN为了实现可扩展性(Scalability)将索引放在存储上,导致其性能(QPS)受限于存储的IOPS(如上一张图的7.4x线性增长)。而这张图最终揭示了这种IOPS的 “性质”:它是最考验SSD性能的 “4KB随机读取”。这对存储(尤其是NVMe SSD)的闪存介质和控制器提出了极高的要求。
Note
这么来看,经典NAND追求存储容量主线任务,在小IO高性能场景,并不能满足市场需求,这激发了3D-NAND ,以及新兴存储介质的需求。
参考阅读:KIOXIA:超高IOPS SSD的需求和设计[1]
队列深度随时间的变化
PPT通过分析队列深度(QD),对DiskANN工作负载的瓶颈进行了更深入的诊断,得出了一个反直觉但非常重要的结论:瓶颈并不完全在存储硬件的原始IOPS上,而是在于延迟(QoS)和上层软件的交互。
- 存储未达极限: 尽管应用层并发(64进程)很高,但存储层的平均队列深度(Mean QD)仅为中等水平(~30-40)。这表明NVMe SSD硬件本身并未被充分压榨到其最大QD(如256+)的极限。
- 工作负载对QoS(延迟)敏感: 系统性能(如第4张PPT所示的9.2倍延迟增长)对I/O延迟的波动(QoS)高度敏感。右图中
max QD的剧烈尖峰与高延迟现象相符。这意味着该负载需要的是低延迟、高一致性的I/O响应,而不是单纯的“最大IOPS”。
- 优化方向的转移: 既然存储硬件(SSD)并未在平均QD上达到饱和,那么性能瓶颈和优化机会很可能存在于上层软件。这包括数据库(DiskANN)的I/O调度逻辑、计算资源的利用率(CPU是否在忙于计算或在空闲等待),以及整个系统设计如何平衡计算和I/O。
队列深度随时间的变化-2
通过队列深度的分布直方图,为上一张PPT的“中等负载”和“QoS敏感”的结论提供了决定性证据。
- 揭示“长尾”特性: 高并发负载(64进程)并不会让存储的QD持续保持在高位。相反,它呈现出“长尾”特征:绝大多数I/O的QD都很低,但伴随着少数QD极高(延迟极高)的异常事件。
- 定位瓶颈(非存储): 该图表清晰地证明了存储硬件(SSD)本身并未饱和(“There is still performance left on the disk”)。因为如果存储是瓶颈,这个直方图的峰值应该会向右平移,表示所有I/O都在高QD下排队。
- 指向软件/计算优化: 既然存储有余力,但性能(延迟)却很差,这表明瓶颈在于上层的数据库(DiskANN)软件栈或CPU计算。系统无法产生足够稳定和快速的I/O请求来充分利用底层SSD的性能。
关键总结
PPT是对整个DiskANN工作负载分析的最终定性总结,得出了四个关键洞察:
- 负载定性(1): 向量搜索(DiskANN)是一种 “纯粹的4KB随机读取” (Small, Random I/Os) 工作负载。
- 负载定性(2): 这是一个对I/O延迟和稳定性(QoS)极其敏感的工作负载。系统的性能瓶颈不是存储硬件的最大IOPS(因为硬件远未饱和),而是上层软件栈(数据库/计算)与存储I/O交互的效率,以及对“长尾”延迟的控制能力。
- 行业行动: 基于以上分析,(Micron倡议)向量数据库基准测试应被正式集成到 MLPerf Storage vNEXT 中,以标准化的方式来衡量和优化存储系统在这种新兴AI负载下的QoS和随机读性能。
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
- 面对向量数据库对存储I/O的极致需求,除了DiskANN,您认为未来在存储硬件(如NAND介质、控制器)和软件定义存储(SDS)层面,还有哪些关键的创新方向能够有效平衡性能与成本?
- 文章指出瓶颈可能在上层软件栈,那么在实际部署中,我们应如何优化向量数据库的I/O调度逻辑、计算资源利用率,以及整个系统设计,以实现更低且一致的I/O延迟?
- 随着AI模型和向量数据规模持续膨胀,您认为存储行业应如何与AI框架(如PyTorch、TensorFlow)更紧密地结合,共同推动下一代AI存储架构的演进?
原文标题:Discussion and Analysis of New Vector Database Benchmark in MLPerf Storage[2]
Notice:Human's prompt, Datasets by Gemini-2.5-Pro
#FMS25 #向量存储的IO特征
---【本文完】---
👇阅读原文,搜索🔍更多历史文章。
- /posts/kioxia-ultra-high-iops-ssd-design.md ↩
- https://files.futurememorystorage.com/proceedings/2025/20250806_AIML-203-1_Shirode.pdf ↩