全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

开源工具VectorDBBench测试

最近更新时间:2026-09-11 17:06:40

测试目的

本文档旨在为使用金山云 Milvus 的用户提供性能参考,帮助您根据业务的数据规模、向量维度、召回率要求等指标,选择合适的实例规格。

测试工具

本次测试使用 VectorDBBench(Zilliz 开源向量库基准工具,支持插入、检索、过滤检索、流式压测及 SIFT/GIST/Cohere/OpenAI 等数据集,支持自定义数据),用于复现 Milvus 检索、过滤、写入与加载性能。项目地址:https://github.com/zilliztech/VectorDBBench

测试场景与测试数据集

测试场景

数据集

数据规模

索引

测试规格

TopK

并发度

输出

不同规格存储容量
(受限于QueryNode内存上限)

SIFT 128
GIST 960

-

HNSW
M:30
efConstruction:360
ef:100

4 CU
8 CU

-

-

(规格,数据量)

不同规格的检索性能

Cohere 768

10M

HNSW
M:30
efConstruction:360
ef:100

4 CU
8 CU

10
100
500
1000

1,8,16,32,64,128,256

(规格,检索性能、召回率)

检索性能&向量维度

Cohere 768
Cohere 1024
OpenAI 1536

10M

HNSW
M:30
efConstruction:360
ef:100

8 CU

100

1,8,16,32,64,128,256

(规格,检索性能、召回率)

标量过滤检索性能

Cohere 768

10M

HNSW
M:30
efConstruction:360
ef:100

8 CU

100

1,8,16,32,64,128,256

(过滤比例,检索性能)

检索性能&召回率关系

Cohere 768

10M

调整M、efConstruction和ef控制召回率

4CU

100

256

(召回率,QPS)

数据加载性能

Cohere 768

10M

HNSW
M:30
efConstruction:360
ef:100

4 CU
8 CU

-

8,16,32,64,128,256

(规格,加载性能)

测试规格

CU

QueryNode

StreamingNode

DataNode

Proxy

MixCoord

4

8C32G X 4

4C16G X 1

4C16G X 4

2C8G X 1

2C8G X 1

8

8C32G X 8

4C16G X 2

8C16G X 8

8C32G X 1

8C32G X 1

说明

本文档性能数据基于同可用区内网环境、客户端与实例分离压测测得。实际生产环境中,受网络延迟、数据分布、索引类型、标量字段、参数配置及业务负载等因素影响,性能表现可能有所差异。所有数据仅供参考,请用户结合自身真实场景进行验证。

测试结果

不同规格存储容量

测试条件:

数据集

索引

测试规格

SIFT 128 维
GIST 960维

HNSW
M:30
efConstruction:360
ef:100

4 CU
8 CU

测试结果:

数据集

4CU

8CU

SIFT 128 维

约 1.64 亿

约 3.08 亿

GIST 960维

约 3258 万

约 5896 万

不同规格的检索性能

测试条件:

数据集

索引

测试规格

TopK

并发度

Cohere 768维 1000万数据

HNSW
M:30
efConstruction:360

4 CU
8 CU

10
50
100
250
500
1000

1,8,16,32,64,128,256

测试结果:

Cohere768D topK=10,检索性能对比

Cohere768D topK=50,检索性能对比

Cohere768D topK=100,检索性能对比

Cohere768D topK=250,检索性能对比

Cohere768D topK=500,检索性能对比

Cohere768D topK=1000,检索性能对比

结论:

测试规格

TopK=10

TopK=50

TopK=100

TopK=250

TopK=500

TopK=1000

峰值QPS

峰值QPS

峰值QPS

峰值QPS

峰值QPS

峰值QPS

4CU

约 2603

约 1095

约 668

约 331

约 191

约112

8CU

约 3338

约 1813

约 1109

约 559

约 336

约196

检索性能&向量维度

测试条件:

数据集

索引

测试规格

TopK

并发度

Cohere 768维 1000万数据
Cohere 1024维 1000万数据
OpenAI 1536维 500万数据

HNSW
M:30
efConstruction:360
ef:100

8 CU

100

1,8,16,32,64,128,256

测试结果:

Cohere768D10M/Cohere1024D10M/OpenAI1536D5M topK=100,检索性能对比

召回率:

Cohere 1024

Cohere 768

OpenAI 1536

0.9744

0.9832

0.9975

不同ef召回率对比:

Cohere768D10M 4CU/8CU 不同ef,召回率对比:(32并发)

不同ef平均时延对比:

Cohere768D10M 4CU/8CU 不同ef,平均时延对比:(32并发)

不同ef的QPS对比:

Cohere768D10M 4CU/8CU 不同ef,QPS对比:(32并发)

标量过滤检索性能

测试条件:

数据集

索引

测试规格

TopK

并发度

Cohere 768维 1000万数据

HNSW
M:30
efConstruction:360
ef:100

8 CU

100

1,8,16,32,64,128,256

测试结果:

Cohere768D 10M,不同过滤比例下,不同并发度下的QPS

Cohere768D 10M,不同过滤比例下,不同并发度下的平均时延

检索性能&召回率关系

测试条件:

数据集

索引

测试规格

TopK

并发度

Cohere 768维 1000万数据

M=30
efConstruction=360
ef=10,50,100,250,500,1000

4CU

100

256

测试结果:

Cohere768D 10M,256并发下,HNSW索引ef与QPS、Recall关系

数据加载性能

测试条件:

数据集

索引

测试规格

并发度

Cohere 768维 1000万数据

HNSW
M:30
efConstruction:360
ef:100

4 CU
8 CU

4,8,16

测试结果:

数据集

规格

并发度

insert_duration(ms)

optimize_duration(ms)

load_duration(总和)(ms)

Cohere768D10M

4CU

4

2310.53

9377.98

11688.51

Cohere768D10M

4CU

8

2283.59

9449.64

11733.23

Cohere768D10M

4CU

16

1965.85

9649.08

11614.93

Cohere768D10M

8CU

4

2298.37

5843.25

8141.62

Cohere768D10M

8CU

8

2025.06

2161.74

4186.81

Cohere768D10M

8CU

16

1844.95

2444.61

4289.56

术语说明

  • insert_duration(数据写入耗时):客户端批量发送插入请求,数据经 Proxy 转发至 StreamingNode,写入 WAL 及内存中 Growing Segment 的耗时。此阶段数据可被流式检索,但尚未构建向量索引。

  • optimize_duration(索引构建与合并耗时):数据量达到阈值后,StreamingNode 将 Growing Segment 封存为 Sealed Segment 并持久化;DataNode 拉取数据执行 Compaction(合并小文件)和向量索引(如 HNSW)构建的耗时。此阶段完成后,数据可被 QueryNode 高效检索。

  • load_duration(总耗时):从数据开始写入到索引构建完成的整体耗时,即 insert_duration 与 optimize_duration 之和,代表数据从“可写”到“可提供高性能检索”的完整导入周期。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈