首页/AI/RAG 与向量库速查/向量库容量与内存估算

向量库容量与内存估算

容量估算按“向量数 × 维度 × 每维字节数 × 副本数 + 索引开销”逐项加总:float32 是基线,SQ8 约四分之一,PQ 与二进制量化再降;索引结构(HNSW 图边)也要计入内存。

RAG 与向量库速查AI更新于 2026-10-13

容量估算怎么做

容量按「向量条数 × 维度 × 每维字节数 × 副本数 + 索引结构开销 + 元数据」逐项加总。float32 是基线,SQ8 约四分之一,PQ 与二值量化还能继续降;此外索引结构本身也占内存(例如 HNSW 的图边),元数据与倒排表常被忽略,因此实际内存占用往往明显高于纯向量计算出来的那个数。

基本信息

基线公式向量条数 × 维度 × 4 字节,float32 情况
量化后SQ8 约四分之一,PQ 与二值量化更低
易漏项索引结构、副本倍数、元数据与倒排表
规划方式按原始可放下与量化后可放下两档做方案

典型使用场景

  • 立项预算:向采购或云厂商说明需要多少内存与磁盘
  • 扩容判断:现有集群还能撑多少数据量,何时必须扩容
  • 方案对比:量化、分片、磁盘索引三条路线各自需要多少资源
  • 压测准备:按估算配置资源,避免压测时因内存不足失真
  • 上线前复核:把预估值与实际占用对比,修正估算模型

估算示例

估算示例
float32 原始:10^7 × 1024 × 4 B ≈ 40 GB      # 一千万条 1024 维
SQ8 量化:   ≈ 10 GB                        # 约四分之一
PQ(m=64):   ≈ 0.64 GB                      # 精度损失需评估
元数据与 payload:按实际字段另计
HNSW 图结构:与 M、节点数相关,需预留可观比例
# 再乘副本数,得到集群层面的下限

内存构成拆解

组成部分估算方式备注
原始向量条数 × 维度 × 4 字节float32 基线
量化向量按位数折算SQ8 约为原始的四分之一
索引结构与算法和参数相关HNSW 图边常占可观比例
副本倍数按副本数整体放大高可用与并发都要算进去
元数据按字段长度与数量估算JSONB 类字段容易低估
先按「原始向量可放下」与「量化后能放下」两档做方案,再决定是否上磁盘索引或分片,避免一开始就在精度上做妥协。
留出增长余量:规划只按当前数据量做,半年后就可能因为增量文档被迫紧急扩容,扩容窗口通常比预留内存贵得多。

易错点

  • 只算向量本体不算索引结构与副本,实际内存超出机器容量
  • 规划按当前数据量,未预留后续年度增长的空间
  • 忽略元数据体积,字段多的集合实际占用远超预期
  • 量化方案未做精度评测就上线,召回下降后回头才发现

数据来源与参考

  • FAISS wiki(量化与内存)
  • Milvus 官方文档(容量规划参考)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌