milvus-logo
LFAI
首页
  • 关于 Milvus

Milvus 2.2 基准测试报告

本报告显示了Milvus 2.2.0的主要测试结果,旨在提供Milvus 2.2.0搜索性能的图片,特别是在扩展和缩小的能力方面。

Milvus Performance Evaluation 2023

我们最近对 Milvus 2.2.3 进行了基准测试,得出了以下主要结果:

  • 搜索延迟降低 2.5 倍
  • QPS 提高 4.5 倍
  • 十亿规模的相似性搜索,性能几乎没有下降
  • 使用多个副本时的线性可扩展性

有关详细信息,请参阅本白皮书相关基准测试代码

总结

  • 与 Milvus 2.1 相比,Milvus 2.2.0 的 QPS 在集群模式下提高了 48%,在独立模式下提高了 75%。
  • Milvus 2.2.0 的扩展和缩小能力令人印象深刻:
    • 当 CPU 内核从 8 个扩展到 32 个时,QPS 呈线性增长。
    • 将 Querynode 复制从 1 个扩展到 8 个时,QPS 呈线性增长。

术语

点击查看测试中使用的术语详情
术语 说明
nq 一次搜索请求中要搜索的向量数
topk 搜索请求中每个向量(以 nq 为单位)的最近向量数
ef HNSW 索引特有的搜索参数
RT 从发送请求到接收响应的响应时间
QPS 每秒成功处理的搜索请求数

测试环境

所有测试均在以下环境下进行。

硬件环境

硬件环境规格
中央处理器英特尔® 至强® Gold 6226R CPU @ 2.90GHz
内存16*/32 GB RDIMM,3200 MT/s
固态硬盘SATA 6 Gbps

软件环境

软件环境版本
Milvusv2.2.0
Milvus GO SDKv2.2.0

部署方案

  • Milvus 实例(独立或集群)通过Helm部署在基于物理机或虚拟机的 Kubernetes 集群上。
  • 不同的测试仅在 CPU 内核数量、内存大小和副本(工作节点)数量上有所不同,这仅适用于 Milvus 群集。
  • 未指定的配置与默认配置相同。
  • Milvus 依赖项(MinIO、Pulsar 和 Etcd)将数据存储在每个节点的本地固态硬盘上。
  • 搜索请求通过Milvus GO SDK 发送到Milvus 实例。

数据集

测试使用ANN-Benchmarks 的开源数据集 SIFT(128 维)。

测试流程

  1. 使用 Helm 启动 Milvus 实例,并按照每个测试中列出的服务器配置进行相应配置。
  2. 通过 Milvus GO SDK 连接到 Milvus 实例,并获取相应的测试结果。
  3. 创建一个集合。
  4. 插入 100 万个 SIFT 向量。建立 HNSW 索引并配置索引参数,将M 设置为8 ,将efConstruction 设置为200
  5. 加载集合。
  6. 使用不同的并发数进行搜索,搜索参数为nq=1, topk=1, ef=64 ,每个并发数的持续时间至少为 1 小时。

测试结果

Milvus 2.2.0 对 Milvus 2.1.0

群集

服务器配置(群集)yaml queryNode: replicas: 1 resources: limits: cpu: "12.0" memory: 8Gi requests: cpu: "12.0" memory: 8Gi

搜索性能

MilvusQPSRT(TP99) / msRT(TP50) / ms故障/秒
2.1.0690459280
2.2.01024863240

Cluster search performance 群集搜索性能

单机

服务器配置(单机)yaml standalone: replicas: 1 resources: limits: cpu: "12.0" memory: 16Gi requests: cpu: "12.0" memory: 16Gi

搜索性能

MilvusQPSRT(TP99) / msRT(TP50) / ms故障/秒
2.1.04287104760
2.2.07522127790

Standalone search performance 独立搜索性能

Milvus 2.2.0 扩展

扩展一个 Querynode 中的 CPU 内核,检查扩展能力。

服务器配置(群集)yaml queryNode: replicas: 1 resources: limits: cpu: "8.0" /"12.0" /"16.0" /"32.0" memory: 8Gi requests: cpu: "8.0" /"12.0" /"16.0" /"32.0" memory: 8Gi

搜索性能

CPU 内核并发数QPSRT(TP99) / msRT(TP50) / ms故障/秒
85007153127830
123001024863240
166001413585420
326002028163280

Search performance by Querynode CPU cores 按 Querynode CPU 内核分列的搜索性能

Milvus 2.2.0 扩展

使用更多 Querynodes 扩展更多副本,以检查扩展能力。

注意:加载集合时,Querynodes 的数量等于replica_number

服务器配置(群集)yaml queryNode: replicas: 1 / 2 / 4 / 8 resources: limits: cpu: "8.0" memory: 8Gi requests: cpu: "8.0" memory: 8Gi

副本并发数QPSRT(TP99) / msRT(TP50) / ms故障/秒
15007153127830
250015903105270
480019281109400
812003065593380

Search performance by Querynode replicas 按 Querynode 复制的搜索性能

下一步

  • 请参考本指南,尝试自行执行 Milvus 2.2.0 基准测试,但应使用本指南中的 Milvus 2.2 和 Pymilvus 2.2。

翻译自DeepLogo

反馈

此页对您是否有帮助?