吞吐量测试结果 持续吞吐量测试 测试条件:运行24小时,持续100并发查询 数据库 | 平均QPS | 峰值QPS | 稳定性 | 错误率 Milvus | 12500 | 15800 | 99.7% | 0.01% Qdrant | 18200 | 22100 | 99.9% | 0.005% Weaviate | 9800 | 12500 | 99.5% | 0.02% 批量写入吞吐量 数据库 | 单条写入(ms) | 批量1000条(ms) | 批量10000条(ms) Milvus | 2.1 | 85 | 420 Qdrant | 0.8 | 32 | 180 Weaviate | 3.
测试条件:运行24小时,持续100并发查询
| 数据库 | 平均QPS | 峰值QPS | 稳定性 | 错误率 |
|---|---|---|---|---|
| Milvus | 12500 | 15800 | 99.7% | 0.01% |
| Qdrant | 18200 | 22100 | 99.9% | 0.005% |
| Weaviate | 9800 | 12500 | 99.5% | 0.02% |
| 数据库 | 单条写入(ms) | 批量1000条(ms) | 批量10000条(ms) |
|---|---|---|---|
| Milvus | 2.1 | 85 | 420 |
| Qdrant | 0.8 | 32 | 180 |
| Weaviate | 3.5 | 150 | 780 |
Qdrant在写入吞吐量上表现最为出色,得益于其Rust实现的内存计算架构。Milvus的分布式架构在中等批量时表现良好,而Weaviate的GraphQL层引入了额外的序列化开销。
在100并发查询场景下,各数据库的CPU使用情况:
内存使用量(GB)随向量数量变化趋势: 0向量 → Milvus: 2.1GB Qdrant: 0.8GB Weaviate: 1.5GB 10万向量 → Milvus: 3.2GB Qdrant: 1.5GB Weaviate: 2.8GB 100万向量 → Milvus: 8.5GB Qdrant: 5.2GB Weaviate: 9.1GB 1000万向量→ Milvus: 32GB Qdrant: 28GB Weaviate: 45GB
Qdrant在内存效率上表现最优,尤其在中小规模数据集上。Milvus通过支持磁盘索引(DiskANN)可以大幅降低内存需求。Weaviate的内存消耗在数据量增大时增长最快。
对于支持持久化的部署模式:
Milvus分布式扩展:
# 扩展QueryNode副本数 helm upgrade milvus milvus/milvus --set queryNode.replicas=3 # 观察扩容后的QPS变化 # 1副本: 12500 QPS # 3副本: 35000 QPS (2.8x) # 5副本: 52000 QPS (4.2x)
Milvus的分布式架构支持透明的水平扩展,但扩展效率并非线性。QueryNode的扩展效果最好,DataNode的扩展对写入性能提升明显。
Qdrant集群模式:
# Qdrant集群配置示例 docker-compose.yml: qdrant-node1: environment: - QDRANT__CLUSTER__ENABLED=true qdrant-node2: environment: - QDRANT__CLUSTER__ENABLED=true
Qdrant的集群模式相对简单,通过Raft协议实现一致性。集群节点的查询性能接近线性扩展,但写入性能受Raft共识协议影响。
Weaviate的扩展性:
Weaviate支持通过Kubernetes HPA实现自动扩展,但由于有状态特性,扩展过程需要数据迁移,延迟较高。
| 向量数量 | Milvus延迟增长 | Qdrant延迟增长 | Weaviate延迟增长 |
|---|---|---|---|
| 1万 | 1.0x (基准) | 1.0x (基准) | 1.0x (基准) |
| 10万 | 1.3x | 1.1x | 1.5x |
| 100万 | 2.1x | 1.8x | 2.8x |
| 1000万 | 3.5x | 3.2x | 5.2x |
在数据量增长场景下,Qdrant的延迟增长最为平缓,这得益于其优化的HNSW索引实现和高效的内存管理。
基于以上多维度的性能测试,三个向量数据库的综合评分如下:
| 维度 | Milvus | Qdrant | Weaviate |
|---|---|---|---|
| 查询性能 | ★★★★☆ | ★★★★★ | ★★★☆☆ |
| 写入性能 | ★★★★☆ | ★★★★★ | ★★★☆☆ |
| 内存效率 | ★★★☆☆ | ★★★★★ | ★★★☆☆ |
| 可扩展性 | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| 稳定性 | ★★★★☆ | ★★★★★ | ★★★★☆ |
| 综合评分 | 4.0/5 | 4.8/5 | 3.4/5 |