指引 (Reference)
基准测试(Benchmark)

Milvus 2.2 基准测试报告

这份报告展示了 Milvus 2.2.0 的主要测试结果。它旨在展示 Milvus 2.2.0 的搜索性能,特别是在扩展能力方面的表现。

总结

  • Milvus 2.2.0 在群集模式下与 Milvus 2.1 相比,QPS 提升超过 48%,在独立模式下提升超过 75%。
  • Milvus 2.2.0 具备出色的扩展能力:
    • 当 CPU 核心数从 8 扩展到 32 时,QPS 线性增长。
    • 当 Querynode 副本数从 1 扩展到 8 时,QPS 线性增长。

术语

测试环境

所有测试都是在以下环境下进行的。

硬件环境

硬件规格
CPUIntel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz
内存16*\32 GB RDIMM, 3200 MT/s
SSDSATA 6 Gbps

软件环境

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

部署方案

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

数据集

这个测试使用了来自 ANN-Benchmarks (opens in a new tab) 的开源数据集 SIFT(128 维)。

测试流程

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

测试结果

Milvus 2.2.0 对比 Milvus 2.1.0

集群

queryNode:
  replicas: 1
  resources:
    limits:
      cpu: "12.0"
      memory: 8Gi
    requests:
      cpu: "12.0"
      memory: 8Gi

搜索性能

MilvusQPSRT(TP99) / msRT(TP50) / ms失败/s
2.1.0690459280
2.2.01024863240

集群搜索性能

独立服务器

standalone:
  replicas: 1
  resources:
    limits:
      cpu: "12.0"
      memory: 16Gi
    requests:
      cpu: "12.0"
      memory: 16Gi

搜索性能

MilvusQPSRT(TP99) / msRT(TP50) / ms失败/s
2.1.04287104760
2.2.07522127790

独立服务器搜索性能

Milvus 2.2.0 扩展

将一个 Querynode 中的 CPU 核心扩展以检查其扩展能力。

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 核心并发数QPS响应时间(TP99) / 毫秒响应时间(TP50) / 毫秒失败/s
85007153127830
123001024863240
166001413585420
326002028163280

按 Querynode CPU 核心的搜索性能

Milvus 2.2.0 扩展

扩展更多的副本以检查其扩展能力。

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

queryNode:
  replicas: 1 / 2 / 4 / 8      
  resources:
    limits:
      cpu: "8.0"
      memory: 8Gi
    requests:
      cpu: "8.0"
      memory: 8Gi
副本数并发数QPS响应时间(TP99) / 毫秒响应时间(TP50) / 毫秒失败/s
15007153127830
250015903105270
480019281109400
812003065593380

按 Querynode 副本数的搜索性能

下一步