计算节点规格与性能对比

更新时间:

本文介绍了向量检索Milvus的计算节点(Query Node)的CU类型及节点数量,旨在帮助用户选择与自身业务场景相符的实例规格。

CU类型介绍

向量检索Milvus的计算节点当前支持以下CU类型,以满足不同的业务场景和需求:

  • 性能型:适用于查询QPS(Query Per Second)高、查询延迟低的场景。对于高并发、大流量及低延迟场景,可以选择性能型实例,例如搜索、推荐系统、生成型AI以及对话机器人等应用。

  • 容量型:适用于数据规模大,但对搜索效率相对要求较低的场景。容量型相对于性能型有4倍的存储容量优势,能够存储和管理更多的向量数据。容量型实例同样具备优秀的技术指标,可满足大部分场景需求。例如特别适合大规模的非结构化数据检索、版权识别、模型数据准备等。

    重要

    目前,容量型CU存在以下限制:

    • 仅支持水平扩缩容,不支持垂直变配。购买前,请您务必仔细确认CU的规格。

    • 仅推荐使用DiskANN索引,且该索引类型仅支持Float类型的向量数据。测量向量之间距离时,仅支持欧氏距离(L2)、内积 (IP)或余弦相似度(COSINE)。

存储容量对比

CU类型

索引类型

CU规格

向量数据容量参考(基于SIFT128维向量数据)

向量数据容量参考(基于GIST960维向量数据)

性能型

HNSW

M:30

efConstruction:360

4 vCPU 16 GiB(4CU)

1600 万

300 万

8 vCPU 32 GiB(8CU)

3200 万

600 万

16 vCPU 64 GiB(16CU)

6400 万

1200 万

32 vCPU 128 GiB(32CU)

1.28 亿

2400 万

容量型

DiskANN

8 vCPU 32 GiB(8CU)

1.2 亿

2300 万

16 vCPU 64 GiB(16CU)

2.4 亿

4600 万

32 vCPU 128 GiB(32CU)

4.8 亿

9200 万

说明
  • 以上数据均通过实际测试验证,可以作为容量评估的参考!

  • 上述用于容量测试的数据中不包含任何标量数据,仅包含主键和向量数据,主键由从零开始自增的正整数转换为字符串。在大多数实际生产场景中,标量字段是不可或缺的,标量数据同样会占用存储空间,这将导致实际存储的向量数量低于上述表格所示。

检索性能对比

CU类型

CU规格

索引类型

topk=50

topk=100

topk=250

topk=1000

QPS

RT_p99

QPS

RT_p99

QPS

RT_p99

QPS

RT_p99

性能型

16 vCPU 64 GiB

(16 CU)

HNSW

M:30 efConstruction:360

2000

< 10 ms

1200

< 10 ms

550

< 15 ms

150

< 30 ms

容量型

16 vCPU 64 GiB

(16 CU)

DiskANN

700

< 15 ms

550

< 20 ms

200

< 30 ms

60

< 50 ms

说明
  • 上述数据基于Cohere数据集(1000768维度)的实测结果。然而,由于不同数据集的数据分布对性能产生影响,因此上述数据仅供参考。

  • RT_p99的测量是通过串行执行1000条查询,并对响应时间进行排序,以获得第99百分位的结果。

  • 上述用于性能测试的数据不包含任何标量数据,仅包含主键和向量数据。主键为从零开始的自增正整数。在性能型中采用的索引类型为HNSW,而在容量型中采用的索引类型为DiskANN。

  • 向量检索Milvus将在后台定期进行向量索引优化,通常在写入完成后的3小时内完成,届时系统性能将达到最优状态。

计算节点数量

向量检索Milvus支持调整计算节点(Query Node)的数量,目前可选范围为1~50。每个节点之间的数据完全相同,节点数量越多,可支持的QPS越高,呈线性关系。同时,节点数量越多,服务的可用性也越高。因此,建议对可用性有较高要求的生产环境选择不少于2个节点。

场景分析

如果您正在构建一个包含2000万个图片的图片检索系统,并且每个图片均用一个768维的向量进行表示,目标是能够快速处理每秒2000次的搜索请求,并在10毫秒内返回前100张相关图片的搜索结果。您可以按照以下内容进行选型评估:

  1. 时延评估:根据时延要求选择合适的CU类型。例如,如果需要10毫秒以内的时延,性能型CU是唯一能够满足此要求的类型。

  2. 容量考量:根据数据量和维度计算所需的CU数量。一个16 vCPU 64GiB(16CU)的性能型CU能够处理1200万个960维向量。为了容纳2000万个768维向量数据,建议至少配置2个此类CU,总计32 CU。

  3. 吞吐量检验:在给定的top-k设置下,验证每个CU的吞吐量。例如,在top-k设置为100的情况下,性能型CU的每秒查询量(QPS)为1200。为保持2000 QPS的持续性能,需要将节点数量增加至2倍。

综上所述,针对该应用场景,建议选择性能型CU,配置4个节点,单节点规格为16 vCPU 64GiB(16CU),以确保性能满足相关标准。